Копирование разрешений пользователей AD через Powershell


16 сентября 2019


Копирование разрешений пользователей AD с Powershell

Одна из наиболее частых задач в системном администрировании это создание пользователей 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. 

...

Теги: #powershell #ad


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.