Командир Set-ADUser дозволяє змінити значення властивостей (атрибутів) користувача в Active Directory з PowerShell.Традіціонно для зміни параметрів користувачів AD використовується графічна mmc оснащення Active Directory Users and Computers (ADUC). За допомогою цієї оснастки ви можете відредагувати властивості користувача або розширені атрибути на вкладці Attribute Editor. Однак в консолі ADUC ви не зможете виконати операцію масового зміни атрибутів у безлічі користувача (частково це можливо за допомогою збережених запитів). У цій статті ми розглянемо кілька прикладів використання командлет Set-ADUser для редагування властивостей користувачів в AD.

Командлет Set-ADUser входить до складу модуля Active Directory module для Windows PowerShell і вимагає його установки. У Windows Server модуль встановлюється з компонентів, в Windows 10 потрібно встановити модуль з RSAT:

Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”

Як змінити властивості користувача в AD за допомогою PowerShell?

У командлет Get-ADUser є близько 50 параметрів, прив’язаних до атрибутів AD (City, Company, Department, Description, EmailAddress, MobilePhone, Organization, UserPrincipalName і т.д.). Список доступних для використання атрибутів можна вивести командою:

Get-Help Set-ADUser -Parameter *|ft

синтаксис командлет set-aduser

Ім’я користувача, властивості якого потрібно измененить в AD вказується в обов’язковому параметрі Identity (може мати вигляд sAMAccountName, SID, Distinguished Name або objectGUID).

Наприклад, за допомогою командлета Get-ADUser отримаємо значення атрибута Title (посаду) у користувача:

get-aduser -Identity a.novak -properties title|select-object name,title

Тепер змінимо його посаду в AD:

set-aduser a.novak –title “Системный администратор”

set-aduser змінити властивості користувача в active directory

Можна змінити значення відразу декількох атрибутів. Наприклад, задамо новий email адреса та список комп’ютерів, на які дозволено вхід користувачу:

Set-ADUser a.novak –EmailAddress a.novak@winitpro.ru –LogonWorkstations 'msk-PC213,msk-PC165'

Наступна команда відключить обліковий запис користувача в домені:

Set-ADUser a.novak -Enabled $False

Можна змінити фото користувача в AD:

Set-ADUser a.novak -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:psanovak.jpg" -Encoding byte))}

Значення інших атрибутів користувача (в тому числі extensionAttribute, і кастомних атрибутів) в AD можна змінити за допомогою наступних параметрів командлет Get-ADUser:

  • Додати – додати значення атрибута;
  • Замінити – замінити значення атрибута;
  • Ясно – очистити значення атрибута;
  • Видалити – видалити одне зі значень атрибута.

Наприклад, щоб змінити телефон користувача, можна використовувати команду:

Set-ADUser a.novak -MobilePhone $NewNumber

або:

Set-ADUser a.novak -replace @{ 'MobilePhone' = $($Number) }

Додати нове значення в атрибут extensionAttribute10:

Set-ADUser a.novak -Add @{extensionAttribute10 = "Test1"}

Очистити значення атрибута:

Set-ADUser a.novak -Clear "extensionAttribute10"

Можна змінити значення відразу декількох атрибутів:

Set-ADUser a.novak -Replace @{title="Программист";company="ОАО Копыта"}

Також за допомогою цих параметрів можна змінити значення мульти-строкових атрибутів. Наприклад, додамо користувачеві відразу кілька ProxyAddresses:

Set-ADUser a.novak -add @{ProxyAddresses="smtp:a.novak@winitpro.ru, ,SMTP:anton.novak@winitpro.ru" -split ","}

Масове зміна атрибутів користувачів в AD

Ви можете змінити атрибути відразу декількох користувачів. Наприклад, наступна команда змінить значення атрибута UserAccountControl і змусить всіх користувачів з вказаною OU змінити пароль при наступному вході:

Get-ADUser -Filter * -SearchBase "OU=Users,OU=MSK,DC=winitpro,DC=ru" | Set-ADUser -ChangePasswordAtLogon $true

Можна масово оновити параметри користувачів в AD значеннями з CSV файлу. Наприклад, у вас є CSV файл, який містить список облікових записів, посад і телефонів (формат файлу: SamAccountName, Title, MobilePhone).

csv файл з новими параметрами користувачів в active directory

Щоб внести зміни в властивості користувачів з файлу, виконайте PowerShell команду:

Import-Csv "C:psmodifyad_users.csv" | foreach {Set-ADUser -Identity $_.SamAccountName –Title $_.Title -MobilePhone $_.MobilePhone}

Як зберегти ім’я комп’ютера у властивостях користувача в AD?

В одній з попередніх статей ми показували, як додати інформацію про користувача в властивості комп’ютера в AD за допомогою командлета Set-ADComputer. Розглянемо інший підхід – спробуємо записати в властивості користувача інформацію про те, на якому комп’ютері він залягання.

Для реалізації такої схеми досить додати в логон скрипти GPO наступний PowerShell скрипт, який повинен виконуватися при вході користувача в систему (Конфігурація користувача -> Політика -> Налаштування Windows -> Сценарії -> Вхід):

Set-ADUser -identity $env:UserName –Description $env:computername

Це дозволить вам швидко знайти ім’я комп’ютера, на якому в даний момент працює користувач.

ім'я комп'ютера у властивостях користувача AD

У цьому прикладі ми зберігаємо адресу поточного комп’ютера в стандартний атрибут Description (ви можете використовувати інший атрибут, наприклад, один з ExtensionAttribute).

Leave a Reply

Your email address will not be published. Required fields are marked *