如何使用Windows PowerShell控制活動目錄
我們在過去幾個月學習了Windows PowerShell,但是從這個月我們決定跳過基礎的部分,開始寫一系列使用Powershell管理活動目錄(AD)的文章。在這兩篇文章中,我們將介紹不同的供應商他們提供的活動目錄cmdlets以及它們是如何工作的。
在某種程度上,微軟的活動目錄是幾乎所有管理員在工作中都需要用到的事物之一,他們從一個全面的AD管理到一個簡單的AD使用者。無論你對AD的了解有多少,這里有為你所使用的Powershell cmdlet。這些cmdlet由兩個主要的供應商所提供:微軟和Quest software公司。
在我們開始集中深入討論活動目錄的powershell cmdlet之前,對于理解管理員在AD環境中經常遇到的不同的管理范圍內容非常重要。這我們就可以分兩個基本的類別:對象管理和基礎設施管理。
隨著對那些AD管理基礎的理解,我們可以詳細看一看微軟活動目錄cmdlet在Windows 7和2008 R2服務器的運作,其中包括運行它們的條件、工作原理和一些應用實例。
在我們直接埋頭進入cmdlet之前,了解到使用Windows PowerShell管理活動目錄必須具備的條件很重要。首先,你至少要有一個基于web 服務活動目錄的域控制器(AD WS)或是管理網關服務活動目錄的域控器(AD MGS)。這兩種服務基本做同樣的事情,唯一的區別是AD web服務在Windows 2008R2服務器上運行,而AD MGS是一種為Windows 2003和2008域控制器的更新服務。 因為活動目錄cmdlets在使用AD WS或AD MGS與域進行交流,所以這是非常重要的。
其次,因為更新DC定位器過程發現AD Web服務并且沒有移植到老客戶端,所以您必須有Windows 7或windos 服務器2008 R2的客戶端。
下面是活動目錄PowerShell cmdlet查詢流程:
[Client] cmdlet -> AD WS -> Query DC -> AD WS -> cmdlet.
cmdlet或客戶端使用它們自己的協議做域詢問并發送詢問到AD Web服務。 然后域控器(DC)制作反應通過AD Web服務發回到“客戶”,并且這些信息都封裝在網服務協議中。
當我們沒有時間或空間覆蓋微軟提供的所有cmdlets時,我們可以看一看在一些活動目錄管理類別的兩個關鍵部分。
活動目錄cmdlet的對象管理
Get-ADUser——得到一個具體用戶對象或為匹配詢問的用戶對象做一次查詢
例如:
#在sAMAccountName中得到一個bsonposh用戶的賬戶 Get-ADUser bsonposh #得到通過友好過濾器的所有用戶 Get-ADUser -Filter "sn -eq 'shell'" #得到通過LDAP過濾器的所有用戶 Get-ADUser -LDAPFilter "(sn=shell)"
再例如:
Get-help Get-ADUser –example Get-ADComputer ——得到一個具體計算機對象或做一次計算機對象匹配的查尋
例如:
# 得到給定OU中的所有計算機 Get-ADComputer -SearchBase "OU=XenDesktop,DC=Dev,DC=Lab" -filter * # 獲取所有沒有DNS后綴的計算機 Get-ADComputer -filter "dnsHostName -notlike '*.dev.lab'" # 查找登陸時間超過30天的計算機 $lastLogon = (get-date).adddays(-30).ToFileTime() Get-ADComputer -filter {lastLogonTimestamp -gt $lastLogon}
再例如:
Get-help Get-ADComputer -example Get-ADGroup——得到一個具體組對象或做一次組對象匹配的查尋
例如:
# 列出普通組 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
活動目錄的基礎設施cmdlets
Get-ADForest——返回當前林
例如:
# 得到當前林 Get-ADForest # 得到當前用戶所在林 Get-ADForest -Current LoggedOnUser # 得到當前計算機所在林 Get-ADForest -Current LocalComputer
再例如:
Get-help Get-ADForest -example Get-ADDomain – 返回到當前域
例如:
# 得到當前域 Get-ADDomain # 得到一個具體的域 Get-ADDomain dev.lab # 得到用戶域 Get-ADDomain –Current LoggedOnUser
再例如:
Get-help Get-ADDomain -example Get-ADDomainController ——退回匹配通過的參量域控制器對象
例如:
# 得到當前用戶會話的域控器 Get-ADDomainController # 得到只讀的域控器 Get-ADDomainController -Filter {isReadOnly -eq $true} #發現活動目錄web服務的域控主機 Get-ADDomainController -Service ADWS –Discover
注意:以下參量要求并需要發現參量:Service, SiteName, DomainName, NextClosestSite, AvoidSelf和ForceDiscover
再例如:
Get-help Get-ADDomainController-example Get-ADRootDSE——通過發現或被定義的服務器退回RootDSE。您可以將RootDSE作為入口點,提供目標或被發現的服務器駐留目錄粗略的信息。
例如:
# 發現RootDSE Get-ADRootDSE # 在具體的服務器(DC)上得到RootDSE Get-ADRootDSE –server Core.Dev.Lab
再例如:
Get-help Get-ADRootDSE -example
#p#下面列出了在活動目錄模塊下所有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
您能通過查閱活動目錄PowerShell團隊的博客找到更多關于AD cmdlet的信息。 下篇文章將介紹免費可用的Quest Active Directory cmdlet。 我將再次談論cmdlet的運行條件及工作原理,然后提供些例子幫助您開始AD cmdlets的探索。
【編輯推薦】