Powershell атрибуты пользователя. Поиск и изменение.

Powershell атрибуты пользователя.

Одним из часто встречающихся действий, выполняемых системными администраторами, является работа с учетными записями пользователей. Давайте посмотрим, как можно быстро находить и изменять учетные записи пользователей(доменных и локальных) с помощью Powershell.

Поиск пользователей по заданным критериям. Доменные пользователи.

Для поиска доменных пользователей используется командлет Get-ADUser. Данный командлет входит в модуль ActiveDirectory. Он доступен на серверах с установленной ролью AD DS или при установке оснастки RSAT для удаленного администрирования серверов. Модуль, также, может быть установлен и отдельно из репозитория Powershell.

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

Get-ADUser -Filter {Name -eq $Name} -Properties *

 В данном примере производится поиск пользователя с именем, заданным в переменной $Name. Вы можете указать имя пользователя явно, только лучше использовать оператор -like

Get-ADUser  -Filter {Name -like "Семенов*"} -Properties *

Учтите, что под именем здесь имеется ввиду полное имя пользователя.

При поиске, также, можно указать сервер(контроллер домена) и учетные данные пользователя домена, которые будут использоваться для получения сведений о пользователе.

Get-ADUser -Server DC01 -Credential $domaincredential -Filter {Name -like "Семенов*"} -Properties *

Давайте посмотрим вывод команды:

Читайте также:  Скачать книгу "Windows Powershell"

Powershell атрибуты пользователя

Как видно, свойств довольно много, и по ним можно производить поиск, а также менять эти свойства. Для того, чтобы найти пользователя по любому свойству, введите его вместо(или вместе) со свойством Name, по которому мы искали пользователя.

Для того, чтобы изменить атрибуты пользователя используется командлет Set-ADUser.  

Например, чтобы изменить название улицы, указанное в свойствах пользователя Семенов, можно сразу передать результат выполнения команды Get-ADUser командлету Set-ADUser:

Get-ADUser -Server DC01 -Credential $domaincredential -Filter {Name -like "Семенов*"} -Properties * | Set-ADUser -StreetAddress "ул.Мира"

В результате выполнения, получим желаемый результат в свойствах пользователя:

Powershell атрибуты пользователя

Подробнее о модуле Active Directory можно прчитать здесь: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee617195(v=technet.10)

Powershell атрибуты пользователя. Локальные пользователи.

Для работы с учетными записями локальных пользователей используется модуль Local Accounts, доступный в репозитории Powershell Gallery(как установить модули описано здесь).

Найти пользователя можно с помощью командлета Get-LocalUser.

Синтаксис отличается от Get-ADUser. По умолчанию, без параметров Get-LocalUser выводит список всех локальных пользователей на компьютере:

Powershell атрибуты пользователя

Для получения информации по конкретному пользователю, нужно указать его параметры. Чтобы посмотреть доступные параметры используем командлет Get-Member:

Powershell атрибуты пользователя

Как можно видеть, параметров у пользователя намного меньше.

И еще, здесь есть отличие от Get-ADUser, параметр Name, который в Get-ADUser обозначал полное имя пользователя, в Get-LocalUser означает логин пользователя. Убедиться в этом можно на примере конкретного пользователя. Чтобы найти пользователя по атрибуту, отличному от его логина(Name) и SID, нужно задействовать командлет Where-Object:

Читайте также:  Профиль Powershell. Персональные настройки.

Powershell атрибуты пользователя

Изменение атрибутов производится командлетом Set-LocalUser. Например, для изменения срока действия учетной записи с 31.08.2019 на 31.12.2020 команда выглядит так:

Get-LocalUser | Where-Object AccountExpires -like 08*31*2019* | Set-LocalUser -AccountExpires 31.12.2020

Аналогично меняются и другие атрибуты(Description, Fullname и т.д.)

И еще одно замечание. Если доменного пользователя сменить пароль перед первым входом мы можем просто с помощью параметра -ChangePasswordAtLogon, то с локальными пользователями все не так. Вариант, все же есть, и он описан в этой статье.

Данные командлеты(особенно при использовании в скриптах) очень облегчат жизнь системному администратору, если приходится часто или в большом количестве менять атрибуты пользователей. Вы можете создать(получить) список пользователей и атрибуты, которые нужно изменить и «скормив» его скрипту, быстро получить требуемый результат.

Вот такая коротенькая памятка по поиску и изменению атрибутов пользователей получилась.

Еще статьи по использованию Powershell в администрировании можно посмотреть по тегу Powershell.

 

Поделиться ссылкой:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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