Как удалить все группы с исключениями с помощью Powershell? - PullRequest
0 голосов
/ 15 января 2020

Я видел много примеров использования 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] и т. Д.

Чего мне не хватает?

1 Ответ

1 голос
/ 15 января 2020

Чтобы удалить "персона" из всех групп, не входящих в массив keep, вам нужно будет выполнить Foreach для каждой из групп из массива $keep, чтобы выполнить их итерацию.

Кроме того, Remove-ADGroupMember не имеет параметра -Member. Параметр -Members, и это то, о чем спрашивает ваше приглашение powershell, когда вы запускаете командлет без его обязательного параметра.

Следующий скрипт должен выполнить sh то, что вы ищете.

$user = 'Person'
$keep = @(
'CN=nametokeep,OU=group,DC=company,DC=com',
'CN=nametoalsokeep,OU=group,DC=company,DC=com'
)

$groups = get-aduser -Identity $user -properties memberof | select -expand memberof

$groups.Where({$_ -notin ($keep)}) |
% { Remove-ADGroupMember -Identity $_ -Members $user}

Ссылка

Remove-ADGroupMember

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...