Powershell — Удалить-ADGroupMember

Я пытаюсь удалить группы пользователей в другом домене.

Пример: я как администратор хочу отключить пользователя и удалить его группы в другом домене.

Проблема в том, что я не знаю, как использовать Remove-ADGroupMember -Server в цикле Foreach, если я не использую Foreach, я могу использовать опцию -Server.

Ошибка Remove-ADGroupmember:
Ошибка удаления-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=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

person jjquintero245    schedule 29.10.2018    source источник
comment
Почему вы не можете просто добавить -server к существующей команде? Remove-ADGroupMember -server ServerY -identity $group [...]   -  person James C.    schedule 29.10.2018
comment
Нет опции сервера, где можно использовать эту команду в Foreach в Powershell ISE.   -  person jjquintero245    schedule 29.10.2018
comment
Тогда ISE не показывает это правильно... вы можете проверить это -- в новой строке введите Remove-ADGroupMember -Ser, затем нажмите вкладку.   -  person James C.    schedule 29.10.2018
comment
Вы правы, извините за мою путаницу   -  person jjquintero245    schedule 29.10.2018
comment
Не нужно извиняться, все уже застряли с кодом! :)   -  person James C.    schedule 29.10.2018


Ответы (1)


Параметр Server доступен для использования с Remove-ADGroupMember, его использование в foreach не меняет этого.

Не полагайтесь только на автоматические подсказки ISE, ссылаясь на документацию (remove-adgroupmember) всегда покажет вам, какие параметры доступны.

Проблема, которую вы на самом деле видите, заключается в том, что ISE больше не запрашивает/не показывает параметры команд после того, как вы использовали один из Общие параметры (Confirm и ErrorAction в вашем коде, но есть и другие)...

Вы можете увидеть это с помощью самой команды — она будет продолжать запрашивать параметры:

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
}
person James C.    schedule 29.10.2018