0

我正在尝试从其他域中的用户中删除组。

示例:我作为管理员想要禁用用户并删除他在其他域中的组。

问题是我不知道如何Remove-ADGroupMember -ServerForeach循环中使用,如果我不使用Foreach我可以使用该-Server选项。

Remove-ADGroupmember 的错误:
Remove-ADGroupmember 错误

我怎样才能-Server在里面获得财产Foreach

$groups = (Get-Aduser -server ServerY -Identity manusys -Properties MemberOf).memberof

Foreach ($group in $groups) {
    Remove-ADGroupMember -identity $group -Members manusys -Confirm:$false -ErrorAction:SilentlyContinue
}

用户帐户Manusys具有以下组:

CN=NO_CamerasAlertMGR,OU=普通分发列表,OU=分发列表,DC=test,DC=com
CN=NO_CamerasAlertCM,OU=普通分发列表,OU=分发列表,DC=test,DC=com
CN=NO_CamerasReport,OU=普通分发列表,OU=分发列表,DC=test,DC=com
CN=NO_CamerasReport_CM,OU=普通分发列表,OU=分发列表,DC=test,DC=com
CN=NO_CamerasReport_MGR,OU=普通分发列表,OU=分发列表,DC=test,DC=com
4

1 回答 1

0

Server参数可用于 with Remove-ADGroupMember,在其中使用它foreach不会改变这一点。

不要仅仅依赖 ISE 自动提示,参考文档 ( remove-adgroupmember ) 将始终向您显示可用的参数。

您实际看到的问题是,一旦您使用了常用参数之一(代码中的Confirm& ErrorAction,但还有其他参数),ISE 将不再提示/显示命令参数...

您可以通过命令本身看到这一点 - 它会继续提示输入参数:

Remove-ADGroupMember -identity $group -Members manusys

但是添加一个 CommonParam,它将不再提供自己的参数:

Remove-ADGroupMember -identity $group -Members manusys -Confirm:$false

因此,要解决您的原始问题,请将Server参数添加到Remove-ADGroupMember

$groups = (Get-Aduser -server ServerY -Identity manusys -Properties MemberOf).memberof

Foreach ($group in $groups) {
    Remove-ADGroupMember -server ServerY -identity $group -Members manusys -Confirm:$false -ErrorAction:SilentlyContinue
}
于 2018-10-29T11:26:23.460 回答