【问题标题】:Powershell - Remove-ADGroupMemberPowershell - 删除-ADGroupMember
【发布时间】:2018-10-29 19:33:37
【问题描述】:

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

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

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

Remove-ADGroupmember 错误:

如何在Foreach 中获得-Server 属性?

$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

【问题讨论】:

  • 为什么不能在现有命令中添加-serverRemove-ADGroupMember -server ServerY -identity $group [...]
  • Powershell ISE 中的 Foreach 中没有使用此命令的服务器选项
  • 此时 ISE 显示不正确...您可以通过 -- 在新的行类型 Remove-ADGroupMember -Ser 上然后按 Tab 键来测试它。
  • 你是对的,为我的困惑道歉
  • 不用道歉,大家都被代码卡住了! :)

标签: powershell active-directory adgroup


【解决方案1】:

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

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

您实际看到的问题是,一旦您在代码中使用了Common Parameters 之一(ConfirmErrorAction 在您的代码中,但还有其他),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
}

【讨论】:

    猜你喜欢
    • 2019-08-09
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多