2014-10-08 45 views
0

我試圖刪除所有主要組成員身份,以一個特定ou中的所有計算機帳戶的名稱開頭。獲取所有計算機帳戶並刪除-ADPrincipalGroupMembership

我試過用AD提供程序瀏覽OU,輸入gci並獲得ou中所有計算機的列表以找到它們的工作的ADPrincipalGroupMembership。另外,使用get-adcomputer -searchbase <ou> -filter *也可以。但是我不能刪除每臺機器所屬的每個組。

當我然後試圖擴大與remove-ADPrincipalGroupMembership,我的輸入組刪除system.stringremove-ADPrincipalGroupMembership將不會接受。我有這樣的東西到目前爲止/

Get-ADComputer -SearchBase 'OU=blahblah' -Filter * | 
    Remove-ADPrincipalGroupMembership -MemberOf (Get-ADGroup -Filter 'name -like "17"') 

我已閱讀幫助和示例,但我找不到如何做到這一點。我不想放棄,只是使用GUI :)

謝謝

+0

我們展示線的東西。一旦你給我們一些工作,社區將能夠更好地幫助你。 – Matt 2014-10-09 00:32:00

+0

Get-ADComputer -SearchBase'OU = blahblah'-Filter * | Remove-ADPrincipalGroupMembership -MemberOf(Get-ADGroup -Filter'name-like「* 17 *」')似乎適用於ou – bluffalo 2014-10-09 00:48:57

+0

「-MemberOf」中的第一臺計算機,它會接受一個名稱數組,但我不認爲數組對象。 '-MemberOf(Get-ADGroup -Filter'name -like「17 *」'| Select -ExpandProperty Name)'這樣做有效嗎?同樣使用'-like'意味着你有一顆星號或者某個東西可以匹配 – Matt 2014-10-09 00:58:19

回答

0

你可以試試這個...我無法測試,以確認它的工作原理,但我認爲它應該。

$Comps = Get-ADComputer -SearchBase 'OU=blahblah' -Filter * -Prop MemberOf 
Foreach ($Comp in $Comps) 
{ 
    $Groups = $Comp.MemberOf | ? {$_ -like "CN=17*"} 
    if ($Groups) 
    { 
    Remove-ADPrincipalGroupMembership -Identity $Comp -MemberOf $Groups -Whatif #-Confirm $False 
    } 
} 

假設它的工作原理與-whatif聲明,默認情況下,我認爲該命令會提示你,如果你不確定每次取出這可能是一個痛苦,所以你可以取消註釋-confirm $false,試圖避免這種情況。

而且它假定每個組的可分辨名稱將是沿着你已經開始的

CN=17groupA,OU=Computer Groups,OU=Computer,DC=TEST,DC=NET

+0

的計算機謝謝!非常有用,並幫助我瞭解實現這一目標的工作流程 – bluffalo 2014-10-13 22:45:24

+0

不客氣!很高興它有幫助 – 2014-10-15 11:31:23