Одна из наиболее частых задач в системном администрировании это создание пользователей Active Directory. Когда у нас пять групп и у всего отдела они одинаковы можно сделать шаблон и проблем мы испытывать не будем. Проблемы появляются когда есть сильная текучесть кадров, большое количество групп, отсутствие точной принадлежности группы и типов пользователей.
Для примера один сотрудник может уволиться, а другого повысят и нам нужно скопировать его разрешения. Первое что нужно сделать это получить список групп бывшего сотрудника:
# Логин пользователя
$OldUser = 'dmitry'
# Пустой массив
$Groups = @()
# Список групп старого пользователя
$Groups = (Get-ADUser -Identity $OldUser -Properties MemberOf).MemberOf
Есть несколько уточнений:
- Можно обойтись без пустого массива, но в более сложных сценариях его стоит указывать так как это делает код более явным.
- По умолчанию Get-ADUser возвращает несколько стандартных свойств. Что бы получить членство пользователя в группах нужно указывать запрос дополнительного свойства MemberOf.
У нас может быть необходимость удалить старого пользователя из существующих групп или сделать аналогичное с будущим пользователем, что бы список его групп был идентичен со старым. В обоих вариантах процесс одинаковый:
$OldUser = 'dmitry'
$Groups = @()
$Groups = (Get-ADUser -Identity $OldUser -Properties MemberOf).MemberOf
# Удаление из групп
foreach ($Group in $Groups) {
Remove-ADGroupMember -Identity $Group -Members $OldUser
}
В ключе Identity указывается имя группы, в в Members пользователя.
Ну и добавим нового пользователя в список полученных групп с помощью Powershell:
# Логин нового пользователя
$NewUser = 'alex'
# Добавление в группу
foreach ($Group in $Groups) {
Add-ADGroupMember -Identity $Group -Members $NewUser
}
Можно проверить результат выполненной команды:
(Get-ADUser -Identity $NewUser -Properties MemberOf).MemberOf
Мы так же писали о возможностях получения списка пользователей AD в Powershell.
...
Подписывайтесь на наш Telegram канал
Теги: #powershell #ad