我正在尝试从其他域的用户中删除网上论坛。
示例:我作为管理员想禁用一个用户并删除他在其他域中的组。
问题是我不知道如何在Remove-ADGroupMember -Server
循环中使用Foreach
,如果不使用Foreach
,可以使用-Server
选项。 / p>
如何在-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=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com CN=NO_CamerasAlertCM,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com CN=NO_CamerasReport,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com CN=NO_CamerasReport_CM,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com CN=NO_CamerasReport_MGR,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com
答案 0 :(得分:0)
Server
参数可与Remove-ADGroupMember
一起使用,在foreach
中使用它不会改变此情况。
不仅仅是依靠ISE自动提示,参考文档(remove-adgroupmember)总是会向您显示可用的参数。
您实际上看到的问题是,一旦在代码中使用了Common Parameters(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
}