2013-10-17 48 views
0

我想從csv中獲取組的列表,併爲每個組刪除其所有組成員以及它是(嵌套)成員的所有組,我很難過。我的代碼部分工作,如果我只有3或4組在csv它似乎刪除所有成員資格,但是當我在csv有150個組時,它只做第一對夫婦。我也嘗試將「get-content」改爲「import-csv」,但沒有運氣。我很難過。有任何想法嗎?我的嘗試如下所示;刪除組中的所有用戶

get-content "$executingScriptDirectory\groups.csv" | foreach{Get-ADGroupMember -Identity "$_.Name" | Remove-ADPrincipalGroupMembership -MemberOf "$_" -Confirm:$false } 


Groups = import-csv "$executingScriptDirectory\groups.csv" 

ForEach ($Group In $Groups) {get-adgroupmember | remove-adgroupmember -identity $Group -members "$_"} 

回答

0

這裏是一個解決方案,允許您使用System.DirectoryServices.AccountManagement來解決您的問題。它允許您遞歸查找組的所有用戶。我在W2K12服務器上的PowerShell 3.0上測試它。

Add-Type -AssemblyName System.DirectoryServices.AccountManagement 
$ctx = New-Object System.DirectoryServices.AccountManagement.PrincipalContext ([System.DirectoryServices.AccountManagement.ContextType]::Domain, "localhost:389", "OU=MonOU,DC=SILOGIX-ESS01,DC=local", "administrator", "administratorPwd") 
$theGroup = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($ctx, "MonGrp") 
$users = $theGroup.GetMembers($true) 

它也存在使用PowerShell 2.0中使用的System.DirectoryServices和LDAP_MATCHING_RULE_IN_CHAIN另一種解決方案。如果您不能使用此解決方案,我會發布它。

+0

感謝您的代碼,但我沒有powershell 3.0只有2.0。 – user2402045

相關問題