从AD组中删除成员而不使用模块

时间:2019-10-07 14:39:04

标签: powershell active-directory

我在不允许在服务器中安装/使用Powershell模块(例如活动目录模块)的环境中工作。

我想做的是删除存储在数组中的组的成员。

因此,假设包含要删除的成员的数组称为toberemoved:

$toberemoved = @("COMPUTER1","COMPUTER2","COMPUTER5")

该组称为:全球计算机组:

$computergroup = "Global Computer Group"

我试图做的是这样:

$findgroup=[adsi]"LDAP://$computergroup"
foreach($item in $toberemoved) {
    $findgroup.Remove("LDAP://$item")
}

我也尝试过:

$findgroup=[adsi]"LDAP://$computergroup"

foreach($item in $toberemoved) {
     $base = "CN=$item,DC=Domain,OU=Computers,OU=local"
     $findgroup.Remove("LDAP://$item")
}

没有成功。

尝试在PowerShell ISE中运行此程序时,我得到的是我遇到服务器错误。对可能出什么问题的任何想法,或者不使用AD模块就可以做到这一点的其他想法?

1 个答案:

答案 0 :(得分:1)

您是否尝试使用完整的ADsPath名称?看看上面写的这篇很棒的文章。 https://www.petri.com/managing-active-directory-groups-adsi-powershell

TLDR?

您在这里:

[adsi]$Group = "LDAP://CN=GroupName,OU=OrganizationalUnit,DC=Your,DC=Domain,DC=com"
foreach($User in $toberemoved) { #Again, full ADsPaths
    $Group.Remove($User)
}