2014-10-08 74 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

相关问题