如何使用Windows PowerShell控制活動(dòng)目錄
我們?cè)谶^去幾個(gè)月學(xué)習(xí)了Windows PowerShell,但是從這個(gè)月我們決定跳過基礎(chǔ)的部分,開始寫一系列使用Powershell管理活動(dòng)目錄(AD)的文章。在這兩篇文章中,我們將介紹不同的供應(yīng)商他們提供的活動(dòng)目錄cmdlets以及它們是如何工作的。
在某種程度上,微軟的活動(dòng)目錄是幾乎所有管理員在工作中都需要用到的事物之一,他們從一個(gè)全面的AD管理到一個(gè)簡(jiǎn)單的AD使用者。無論你對(duì)AD的了解有多少,這里有為你所使用的Powershell cmdlet。這些cmdlet由兩個(gè)主要的供應(yīng)商所提供:微軟和Quest software公司。
在我們開始集中深入討論活動(dòng)目錄的powershell cmdlet之前,對(duì)于理解管理員在AD環(huán)境中經(jīng)常遇到的不同的管理范圍內(nèi)容非常重要。這我們就可以分兩個(gè)基本的類別:對(duì)象管理和基礎(chǔ)設(shè)施管理。
隨著對(duì)那些AD管理基礎(chǔ)的理解,我們可以詳細(xì)看一看微軟活動(dòng)目錄cmdlet在Windows 7和2008 R2服務(wù)器的運(yùn)作,其中包括運(yùn)行它們的條件、工作原理和一些應(yīng)用實(shí)例。
在我們直接埋頭進(jìn)入cmdlet之前,了解到使用Windows PowerShell管理活動(dòng)目錄必須具備的條件很重要。首先,你至少要有一個(gè)基于web 服務(wù)活動(dòng)目錄的域控制器(AD WS)或是管理網(wǎng)關(guān)服務(wù)活動(dòng)目錄的域控器(AD MGS)。這兩種服務(wù)基本做同樣的事情,唯一的區(qū)別是AD web服務(wù)在Windows 2008R2服務(wù)器上運(yùn)行,而AD MGS是一種為Windows 2003和2008域控制器的更新服務(wù)。 因?yàn)榛顒?dòng)目錄cmdlets在使用AD WS或AD MGS與域進(jìn)行交流,所以這是非常重要的。
其次,因?yàn)楦翫C定位器過程發(fā)現(xiàn)AD Web服務(wù)并且沒有移植到老客戶端,所以您必須有Windows 7或windos 服務(wù)器2008 R2的客戶端。
下面是活動(dòng)目錄PowerShell cmdlet查詢流程:
[Client] cmdlet -> AD WS -> Query DC -> AD WS -> cmdlet.
cmdlet或客戶端使用它們自己的協(xié)議做域詢問并發(fā)送詢問到AD Web服務(wù)。 然后域控器(DC)制作反應(yīng)通過AD Web服務(wù)發(fā)回到“客戶”,并且這些信息都封裝在網(wǎng)服務(wù)協(xié)議中。
當(dāng)我們沒有時(shí)間或空間覆蓋微軟提供的所有cmdlets時(shí),我們可以看一看在一些活動(dòng)目錄管理類別的兩個(gè)關(guān)鍵部分。
活動(dòng)目錄cmdlet的對(duì)象管理
Get-ADUser——得到一個(gè)具體用戶對(duì)象或?yàn)槠ヅ湓儐柕挠脩魧?duì)象做一次查詢
例如:
#在sAMAccountName中得到一個(gè)bsonposh用戶的賬戶 Get-ADUser bsonposh #得到通過友好過濾器的所有用戶 Get-ADUser -Filter "sn -eq 'shell'" #得到通過LDAP過濾器的所有用戶 Get-ADUser -LDAPFilter "(sn=shell)"
再例如:
Get-help Get-ADUser –example Get-ADComputer ——得到一個(gè)具體計(jì)算機(jī)對(duì)象或做一次計(jì)算機(jī)對(duì)象匹配的查尋
例如:
# 得到給定OU中的所有計(jì)算機(jī) Get-ADComputer -SearchBase "OU=XenDesktop,DC=Dev,DC=Lab" -filter * # 獲取所有沒有DNS后綴的計(jì)算機(jī) Get-ADComputer -filter "dnsHostName -notlike '*.dev.lab'" # 查找登陸時(shí)間超過30天的計(jì)算機(jī) $lastLogon = (get-date).adddays(-30).ToFileTime() Get-ADComputer -filter {lastLogonTimestamp -gt $lastLogon}
再例如:
Get-help Get-ADComputer -example Get-ADGroup——得到一個(gè)具體組對(duì)象或做一次組對(duì)象匹配的查尋
例如:
# 列出普通組 Get-ADGroup -Filter {GroupScope -eq 'Universal'} # 得到組成員 Get-ADGroup "domain Admins" -Properties member | select -ExpandProperty member # 如果您使用Get-ADGroupMember,查詢更加容易 Get-ADGroupMember "Domain Admins" # 查找空組 Get-ADGroup -Filter {Member -notlike '*'}
再例如:
Get-help Get-ADGroup -example
活動(dòng)目錄的基礎(chǔ)設(shè)施cmdlets
Get-ADForest——返回當(dāng)前林
例如:
# 得到當(dāng)前林 Get-ADForest # 得到當(dāng)前用戶所在林 Get-ADForest -Current LoggedOnUser # 得到當(dāng)前計(jì)算機(jī)所在林 Get-ADForest -Current LocalComputer
再例如:
Get-help Get-ADForest -example Get-ADDomain – 返回到當(dāng)前域
例如:
# 得到當(dāng)前域 Get-ADDomain # 得到一個(gè)具體的域 Get-ADDomain dev.lab # 得到用戶域 Get-ADDomain –Current LoggedOnUser
再例如:
Get-help Get-ADDomain -example Get-ADDomainController ——退回匹配通過的參量域控制器對(duì)象
例如:
# 得到當(dāng)前用戶會(huì)話的域控器 Get-ADDomainController # 得到只讀的域控器 Get-ADDomainController -Filter {isReadOnly -eq $true} #發(fā)現(xiàn)活動(dòng)目錄web服務(wù)的域控主機(jī) Get-ADDomainController -Service ADWS –Discover
注意:以下參量要求并需要發(fā)現(xiàn)參量:Service, SiteName, DomainName, NextClosestSite, AvoidSelf和ForceDiscover
再例如:
Get-help Get-ADDomainController-example Get-ADRootDSE——通過發(fā)現(xiàn)或被定義的服務(wù)器退回RootDSE。您可以將RootDSE作為入口點(diǎn),提供目標(biāo)或被發(fā)現(xiàn)的服務(wù)器駐留目錄粗略的信息。
例如:
# 發(fā)現(xiàn)RootDSE Get-ADRootDSE # 在具體的服務(wù)器(DC)上得到RootDSE Get-ADRootDSE –server Core.Dev.Lab
再例如:
Get-help Get-ADRootDSE -example
#p#下面列出了在活動(dòng)目錄模塊下所有PowerShell cmdlet名單:
- Add-ADComputerServiceAccount
- Add-ADDomainControllerPasswordReplicationPolicy
- Add-ADFineGrainedPasswordPolicySubject
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Clear-ADAccountExpiration
- Disable-ADAccount
- Disable-ADOptionalFeature
- Enable-ADAccount
- Enable-ADOptionalFeature
- Get-ADAccountAuthorizationGroup
- Get-ADAccountResultantPasswordReplicationPolicy
- Get-ADComputer
- Get-ADComputerServiceAccount
- Get-ADDefaultDomainPasswordPolicy
- Get-ADDomain
- Get-ADDomainController
- Get-ADDomainControllerPasswordReplicationPolicy
- Get-ADDomainControllerPasswordReplicationPolicyUsage
- Get-ADFineGrainedPasswordPolicy
- Get-ADFineGrainedPasswordPolicySubject
- Get-ADForest
- Get-ADGroup
- Get-ADGroupMember
- Get-ADObject
- Get-ADOptionalFeature
- Get-ADOrganizationalUnit
- Get-ADPrincipalGroupMembership
- Get-ADRootDSE
- Get-ADServiceAccount
- Get-ADUser
- Get-ADUserResultantPasswordPolicy
- Install-ADServiceAccount
Move-ADDirectoryServer
- Move-ADDirectoryServerOperationMasterRole
- Move-ADObject
- New-ADComputer
- New-ADFineGrainedPasswordPolicy
- New-ADGroup
- New-ADObject
- New-ADOrganizationalUnit
- New-ADServiceAccount
- New-ADUser
- Remove-ADComputer
- Remove-ADComputerServiceAccount
- Remove-ADDomainControllerPasswordReplicationPolicy
- Remove-ADFineGrainedPasswordPolicy
- Remove-ADFineGrainedPasswordPolicySubject
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADObject
- Remove-ADOrganizationalUnit
- Remove-ADPrincipalGroupMembership
- Remove-ADServiceAccount
- Remove-ADUser
- Rename-ADObject
- Reset-ADServiceAccountPassword
- Restore-ADObject
- Search-ADAccount
- Set-ADAccountControl
- Set-ADAccountExpiration
- Set-ADAccountPassword
- Set-ADComputer
- Set-ADDefaultDomainPasswordPolicy
- Set-ADDomain
- Set-ADDomainMode
- Set-ADFineGrainedPasswordPolicy
- Set-ADForest
- Set-ADForestMode
- Set-ADGroup
- Set-ADObject
- Set-ADOrganizationalUnit
- Set-ADServiceAccount
- Set-ADUser
- Uninstall-ADServiceAccount
- Unlock-ADAccount
您能通過查閱活動(dòng)目錄PowerShell團(tuán)隊(duì)的博客找到更多關(guān)于AD cmdlet的信息。 下篇文章將介紹免費(fèi)可用的Quest Active Directory cmdlet。 我將再次談?wù)揷mdlet的運(yùn)行條件及工作原理,然后提供些例子幫助您開始AD cmdlets的探索。
【編輯推薦】
- IIS服務(wù)器的Windows PowerShell 管理環(huán)境講解
- 使用Windows PowerShell查看系統(tǒng)信硬件信息-1
- Windows PowerShell的12項(xiàng)酷功能