Я видел много примеров использования PS для удаления всех участников (включая Первичное). У меня есть рабочий код следующим образом:
get-aduser person -properties MemberOf | Select -Expand MemberOf | %{Remove-ADGroupMember $_ -member person -confirm:$false}
Это отлично подходит для удаления всего, кроме пользователей домена. Пока проблем нет.
Следующая проблема - оставить указанную группу c, например, лицензирование для O365.
Я попытался создать массив с исключениями и исключить их из удаление:
$user = person
$keep = @(
'CN=nametokeep,OU=group,DC=company,DC=com',
'CN=nametoalsokeep,OU=group,DC=company,DC=com')
$groups = get-aduser person -properties memberof | select -expand memberof
$groups | %{$keep -notcontains $_} | Remove-ADGroupMember -member $user
Идея состоит в том, чтобы определить исключения и удалить все остальное, что не совпадает.
Когда я делаю это, код выполняется, но запрашивает ввод:
Members[0]:
Неважно, какое значение я там ввожу, код просто запрашивает снова с Members [1], Members [2] и т. Д.
Чего мне не хватает?