Set-ADUser: изменить атрибуты пользователя в Active Directory из PowerShell

Командлет 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, UserPrincipalNam e и т.д.). Список доступных для использования атрибутов можно вывести командой:

Get-Help Set-ADUser -Parameter *|ft

Имя пользователя, свойства которого нужно измененить в 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 “Системный администратор”

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

Set-ADUser a.novak –EmailAddress [email protected] –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:

  • Add – добавить значение атрибута;
  • Replace – заменить значение атрибута;
  • Clear – очистить значение атрибута;
  • Remove — удалить одно из значений атрибута.

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

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: [email protected] , ,SMTP: [email protected] " -split ","}

Массовое изменение атрибутов пользователей в AD

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

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

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

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

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

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

Как сохранить имя компьютера в свойствах пользователя в AD?

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

Для реализации такой схемы достаточно добавить в логон скрипты GPO следующий PowerShell скрипт, который должен выполнятся при входе пользователя в систему ( User Configuration -> Policies -> Windows Settings -> Scripts -> Logon ):

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

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

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

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

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago