Powershell – наводим порядок в группах доступа


Когда в инфраструктуре существует несколько лесов, то при настройке доступа к ресурсам нужно придерживаться простого правила: к ресурсу привязывается локальная группа, в которую включаются глобальные группы с пользователями из разных доменов/лесов.

Если этот принцип нарушен, и к ресурсу привязана глобальная группа, то невозможно в нее включить «чужих» пользователей и дать им доступ к ресурсу. Когда администратору надо срочно дать доступ к ресурсу пользователям из другого леса, то обычно в такой ситуации он преобразует глобальную группу в универсальную, затем в локальную и тут же добавляет в нее учетку, т.к. создание глобальной группы в другом лесе может потребовать дополнительных усилий: жалко времени, либо нужно привлечь другого администратора, провести согласование и утверждение и т.д.

Время идет, и инфраструктура засоряется такими мелочами по самую крышу. В один прекрасный момент все понимают, что нужно навести порядок с группами. Искать проблемные группы вручную и тем более вручную переносить пользователей из одной группы в другую это слишком трудоемко. Ниже описано, как использовать для этой задачи Powershell.

Получить список всех локальных групп (в текущем домене):

$LGs = Get-ADGroup -LDAPFilter «(&(&(&(objectCategory=group)(objectClass=group)(grouptype=-2147483644))))»

Получить список групп, у которых в членах группы есть пользователи:

$LGs1 = $LGs | ? { Get-ADGroupMember $_ | ? {$_.ObjectClass -eq «user»} }

Вывести список для анализа:

$LGs1 | % { $_.Name} | sort

После анализа остается переместить пользователей из локальной группы в нужные глобальные.

Скопировать пользователей из одной группы в другую:

Get-ADGroupMember «имя группы ОТкуда» | ? {$_.ObjectClass -eq «user»} | % { Add-ADGroupMember «имя группы КУДА» -Server «TO.domain.ru» -Members $_ -ErrorAction SilentlyContinue }

Здесь:

· «имя группы ОТкуда» — одна из локальных групп найденных выше

· «TO.domain.ru» — соответствующая ей глобальная группа в домене, к которому относятся копируемые пользователи

· -ErrorAction SilentlyContinue помогает нам избежать явной фильтрации учетных записей пользователей: только учетки «того» леса могут быть добавлены в глобальную группу «того же» леса — остальные просто отсеются.

Легкой вам уборки мусора!

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: