1
我正在嘗試編寫一個腳本,它將根據OU的成員更新AD中的組成員資格。PowerShell:將工作AD比較代碼轉換爲函數 - 錯誤
$Group = "GroupA"
$OU = "OU=ContainerA,DC=DC1,DC=ccompany,DC=com"
$users = $(get-aduser -filter "*" -SearchBase $OU)
$groupmembers = Get-ADGroupMember -Identity $Group
switch (Compare-Object -ReferenceObject $groupmembers -DifferenceObject $users -property samaccountname){
{$_.SideIndicator -eq "=>"} {add-adgroupmember -identity $group -member $_.samaccountname}
{$_.SideIndicator -eq "<="} {remove-adgroupmember -identity $group -member $_.samaccountname -confirm:$false} }
}
當然,這是罰款單組和OU,不過,我需要爲做到這一點:當我指定的組名和OU的名稱,然後做的比較小腳本工作正常大約10個組和OU,所以不是把整個東西粘貼10次,我認爲聰明的做法是創建一個函數,然後調用它10次。我改變了代碼爲函數:
Function Build ([String]$Group, [String]$OU){
$users = $(get-aduser -filter "*" -SearchBase $OU)
$groupmembers = Get-ADGroupMember -Identity $Group
switch (Compare-Object -ReferenceObject $groupmembers -DifferenceObject $users -property samaccountname){
{$_.SideIndicator -eq "=>"} {add-adgroupmember -identity $group -member $_.samaccountname}
{$_.SideIndicator -eq "<="} {remove-adgroupmember -identity $group -member $_.samaccountname -confirm:$false} }
}
Build ("GroupA", "OU=ContainerA,DC=DC1,DC=ccompany,DC=com")
Build ('GroupB", "OU=ContainerB,DC=DC1,DC=ccompany,DC=com")
然而,當我運行上面的腳本,我不斷收到以下錯誤:
Get-ADUser : An empty SearchBase is only supported while connected to a GlobalCatalog.
能否請你請指出我所試圖做的錯將第一個代碼轉換爲函數?
感謝
謝謝。就是這樣! – IntroToLogic 2012-07-18 15:00:18