我在PowerShell文件中有以下代码行,旨在从以@符号开头的所有Active Directory组中删除用户;
Get-ADGroup -Filter 'name -like "@*"' | Remove-ADGroupMember -Members $UserID
它实际上工作正常,并成功将它们从正确的组中删除,但是脚本每次运行时都会锁定我的管理员帐户。奇怪的!
从网上拖网一段时间后,我怀疑它与它有什么关系'用完了'我的Kerberos身份验证令牌(它使用太多,因为它以@开头的每个AD组运行),或者它认为我尝试做恶意的事情因为我发送了如此大量的命令很短的时间?
有没有办法让我修改这行代码,以便它不是为Active Directory中的每个@组运行Remove-ADGroupMember,而是只运行用户所属的组?还是其他任何想法?
谢谢。
答案 0 :(得分:0)
试试这个:
$groups = Get-ADPrincipalGroupMembership $user | where {$_.name -like "@*"} | select -expandproperty name
foreach($group in $groups){
Remove-ADGroupMember -identity $group -Members $user
}
它只会查找$ user所属的组,所以你应该做得很好。
请勿忘记使用用户名更改$ user或事先填写变量。
答案 1 :(得分:0)
嗯,我家里没有AD基础设施,但看起来你的例子没有定义$UserID
。