Поиск по сайту:

Set-ADUser: как изменить свойства пользователя в Active Directory с помощью PowerShell


Командлет Set-ADUser позволяет изменять свойства (атрибуты) пользователя в Active Directory с помощью PowerShell. Традиционно графическая оснастка MMC.

dsa.msc

(Active Directory Users and Computers, ADUC) используется для редактирования свойств пользователей AD. Оснастку ADUC можно использовать для изменения свойств пользователя или дополнительных атрибутов на вкладке «Редактор атрибутов». Однако вы не можете массово изменять атрибуты пользователей через консоль ADUC (частично это можно сделать с помощью сохраненных запросов AD). В этой статье мы рассмотрим несколько примеров использования командлета Set-ADUser для изменения свойств пользователя в AD.

Этот

Set-ADUser

Командлет является частью модуля Active Directory для Windows PowerShell, и этот модуль должен быть установлен на вашем компьютере. В Windows Server модуль RSAT-AD-PowerShell устанавливается из компонентов Windows, а в Windows 10 его придется устанавливать из RSAT:

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

Изменение свойств пользователя в Active Directory с помощью PowerShell

Командлет Get-ADUser имеет около 50 опций, связанных с атрибутами AD (Город, Компания, Отдел, Описание, Адрес электронной почты, Мобильный телефон, Организация, UserPrincipalName и т. д.). Вы можете отобразить список доступных атрибутов с помощью следующей команды:

Get-Help Set-ADUser -Parameter *|ft

Имя пользователя, для которого вы хотите изменить атрибуты AD, указывается в обязательном параметре Identity (его можно указать как sAMAccountName, SID, отличительное имя или objectGUID).

Например, давайте получим значение атрибута Title пользователя с помощью командлета Get-ADUser:

Get-ADUser -Identity M.Becker -Properties title|select-object name,title

Затем измените название должности в AD:

Set-ADuser M.Becker -title “Junior DevOps Engineer”

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

Set-ADUser M.Becker -EmailAddress M.Becker@active-directory.ru -LogonWorkstations 'munx32f2r13,munx32f2r15'

Следующая команда отключит учетную запись пользователя в домене:

Set-ADUser M.Becker -Enabled $False

Вы можете изменить фотографию пользователя в AD:

Set-ADUser M.Becker -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\scripts\ad\m.becker.jpg" -Encoding byte))}

Вы можете редактировать значения других пользовательских атрибутов (включая ExtensionAttribute и пользовательские атрибуты) в AD, используя следующие параметры Set-ADUser:

  • Добавить — добавляет значение атрибута.

  • Заменить - заменяет значение атрибута.

  • Очистить - очищает значение атрибута.

  • Удалить — удаляет одно из значений атрибута.

Например, чтобы изменить номер телефона пользователя, вы можете использовать эту команду:

Set-ADUser M.Becker -MobilePhone $NewNumber

Или :

Set-ADUser M.Becker -replace @{'MobilePhone' = $($Number) }

Чтобы добавить новое значение в ExtensionAttribute5:

Set-ADUser M.Becker -Add @{extensionAttribute5 = "Test1"}

Чтобы очистить значение атрибута:

Set-ADUser M.Becker -Clear "extensionAttribute5"

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

Set-ADUser M.Becker -Replace @{title="Senior DevOps";company="XYZ"}

Также с помощью этих опций вы можете изменить многозначные атрибуты. Например, давайте добавим пользователю несколько ProxyAddresses (псевдонимов электронной почты):

Set-ADUser M.Becker -add @{ProxyAddresses="smtp:M.Becker@active-directory.ru, ,SMTP:moritz.becker@active-directory.ru " -split ","}

Как массово изменить атрибуты пользователей Active Directory?

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

Get-ADUser -Filter * -SearchBase "OU=Users,OU=DE,DC=active-directory,DC=loc" | Set-ADUser -ChangePasswordAtLogon $true

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

Чтобы обновить атрибуты пользователя, используя значения из файла CSV, выполните следующую команду PowerShell:

Import-Csv "C:\scripts\ad\update_ad_users.csv" | foreach {Set-ADUser -Identity $_.SamAccountName -Title $_.Title -MobilePhone $_.MobilePhone}

Вы можете делегировать права на обновление пользовательских атрибутов в AD сотруднику отдела кадров и даже научить его работать с такими файлами CSV/Excel из PowerShell.

Как показать имя пользователя, вошедшего в систему, в ADUC?

В одной из предыдущих статей мы показали, как добавить информацию о пользователе в свойства компьютера в AD с помощью командлета Set-ADComputer. Теперь рассмотрим другой подход и попробуем добавить информацию о компьютере, на котором пользователь вошел в систему, в свойства пользователя в Active Directory.

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

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

Скрипт предполагает, что на компьютерах пользователей установлен модуль PowerShell для Active Directory. Если вы не хотите устанавливать RSAT на все компьютеры, вы можете использовать модуль AD PowerShell без установки, скопировав его файлы на все компьютеры с помощью GPO или сценария входа.

Это позволит вам быстро найти имя компьютера, на котором находится пользователь.

В этом примере мы сохраняем имя текущего компьютера в стандартном атрибуте Description. Вы можете использовать другой атрибут, скажем, один из ExtensionAttributes.

Статьи по данной тематике