获取所有计算机帐户并删除-ADPrincipalGroupMembership

时间:2014-10-08 23:42:21

标签: powershell

我正在尝试从一个特定的ou中删除所有主要组成员身份,以所有计算机帐户的名称开头。

我尝试使用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:)

谢谢

1 个答案:

答案 0 :(得分: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以避免这种情况。< / p>

此外,它假设每个组的可分辨名称将是

的行

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