[PowerShell] Обновление данных учетных записей в ActiveDirectory
Есть XML файл с актуальными данными сотрудников, из которого нужно обновить некоторые данные у учетных записей в ActiveDirectory (далее – AD). Уникальным индификатором является GUID (Как получить GUID и objectGUID из ActiveDirectory), которые уже выгружены из AD. Как прочитать данные из XML файла с помощью PowerShell я уже писал, поэтому здесь опишу часть скрипта, которая непосредственно вносит изменения в AD. Для работы с AD использую командлеты Quest Powershell.
XML файл имеет следующую структуру:
Последовательно считываем все учетки, берем GUID и остальные данные. В AD изменения вносятся следющей командой:
Set-QADUser $xmluser.GUID -Title $xmluser.title -Description $xmluser.title -Department $xmluser.department.Trim() -Notes $xmluser.info | Out-Null
Казалось бы вопрос решен, но в AD не есть не только пользователи, но и контакты. А командлет Set-QADUser работает только с учетными записями. Если необходимо взаимодействовать с учетными записями и контактами, как в моем случае, то используем командлет Set-QADObject:
Set-QADObject $xmluser.GUID -ObjectAttributes @{title=$xmluser.title;description=$xmluser.title;department=$xmluser.department.Trim();info=$xmluser.info} | Out-Null
Trim () – удаляет пробелы в строке.
Полное описание командлетов Set-QADObject и Get-QADObject с примерами.
Можно также отключать и включать учетные записи в AD с помощью командлета Set-QADObject:
Set-QADObject $xmluser.GUID -ObjectAttributes @{userAccountControl='512'} | Out-Null
512 – вкл, 514 – выкл.
Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!
Хотите поблагодарить автора за эту заметку? Вы можете это сделать!