如何使用Windows PowerShell控制活動(dòng)目錄
我們?cè)谶^(guò)去幾個(gè)月學(xué)習(xí)了Windows PowerShell,但是從這個(gè)月我們決定跳過(guò)基礎(chǔ)的部分,開(kāi)始寫(xiě)一系列使用Powershell管理活動(dòng)目錄(AD)的文章。在這兩篇文章中,我們將介紹不同的供應(yīng)商他們提供的活動(dòng)目錄cmdlets以及它們是如何工作的。
在某種程度上,微軟的活動(dòng)目錄是幾乎所有管理員在工作中都需要用到的事物之一,他們從一個(gè)全面的AD管理到一個(gè)簡(jiǎn)單的AD使用者。無(wú)論你對(duì)AD的了解有多少,這里有為你所使用的Powershell cmdlet。這些cmdlet由兩個(gè)主要的供應(yīng)商所提供:微軟和Quest software公司。
在我們開(kāi)始集中深入討論活動(dòng)目錄的powershell cmdlet之前,對(duì)于理解管理員在AD環(huán)境中經(jīng)常遇到的不同的管理范圍內(nèi)容非常重要。這我們就可以分兩個(gè)基本的類(lèi)別:對(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定位器過(guò)程發(fā)現(xiàn)AD Web服務(wù)并且沒(méi)有移植到老客戶端,所以您必須有Windows 7或windos 服務(wù)器2008 R2的客戶端。
下面是活動(dòng)目錄PowerShell cmdlet查詢流程:
[Client] cmdlet -> AD WS -> Query DC -> AD WS -> cmdlet.
cmdlet或客戶端使用它們自己的協(xié)議做域詢問(wèn)并發(fā)送詢問(wèn)到AD Web服務(wù)。 然后域控器(DC)制作反應(yīng)通過(guò)AD Web服務(wù)發(fā)回到“客戶”,并且這些信息都封裝在網(wǎng)服務(wù)協(xié)議中。
當(dāng)我們沒(méi)有時(shí)間或空間覆蓋微軟提供的所有cmdlets時(shí),我們可以看一看在一些活動(dòng)目錄管理類(lèi)別的兩個(gè)關(guān)鍵部分。
活動(dòng)目錄cmdlet的對(duì)象管理
Get-ADUser——得到一個(gè)具體用戶對(duì)象或?yàn)槠ヅ湓儐?wèn)的用戶對(duì)象做一次查詢
例如:
#在sAMAccountName中得到一個(gè)bsonposh用戶的賬戶 Get-ADUser bsonposh #得到通過(guò)友好過(guò)濾器的所有用戶 Get-ADUser -Filter "sn -eq 'shell'" #得到通過(guò)LDAP過(guò)濾器的所有用戶 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 *
# 獲取所有沒(méi)有DNS后綴的計(jì)算機(jī)
Get-ADComputer -filter "dnsHostName -notlike
'*.dev.lab'"
# 查找登陸時(shí)間超過(guò)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 ——退回匹配通過(guò)的參量域控制器對(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——通過(guò)發(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
 
您能通過(guò)查閱活動(dòng)目錄PowerShell團(tuán)隊(duì)的博客找到更多關(guān)于AD cmdlet的信息。 下篇文章將介紹免費(fèi)可用的Quest Active Directory cmdlet。 我將再次談?wù)揷mdlet的運(yùn)行條件及工作原理,然后提供些例子幫助您開(kāi)始AD cmdlets的探索。
【編輯推薦】
- IIS服務(wù)器的Windows PowerShell 管理環(huán)境講解
 - 使用Windows PowerShell查看系統(tǒng)信硬件信息-1
 - Windows PowerShell的12項(xiàng)酷功能
 















 
 
 


 
 
 
 