Как изменить пароль пользователя active directory

В этой статье мы рассмотрим, как изменить (сбросить) пароль одного или нескольких пользователей Active Directory с помощью графической оснастки Active Directory

В этой статье мы рассмотрим, как изменить (сбросить) пароль одного или нескольких пользователей Active Directory с помощью графической оснастки Active Directory Users and Computers, из командной строки, а также с помощью PowerShell командлета Set-ADAccountPassword.

Содержание:

  • Изменить пароль пользователя домена из графической консоли Active Directory
  • Как сбросить пароль пользователю Active Directory с помощью PowerShell?
  • PowerShell скрипт для сброса пароля нескольких пользователей AD
  • Изменить пароль пользователя в домене из командной строки

Изменить пароль пользователя домена из графической консоли Active Directory

Для сброса пароля пользователя Active Directory можно использовать графическую оснастку
dsa.msc
(Active Directory Users & Computers — ADUC). Воспользуйтесь поиском в консоли ADUC и найдите учетную запись пользователя, которому нужно изменить пароль. Щелкните по нему правой кнопкой и выберите пункт “Смена пароля” (Reset password).

консоль active directory users and computers изменить пароль пользователя

Укажите новый пароль (дважды). Здесь можно включить две опции:

  • User must change password at next logon – если вы хотите, чтобы пользователь сам задал себе новый пароль при следующем входе;
  • Unlock user’s account – включите эту опцию, если вы хотите разблокировать пользователя (если учетная запись заблокирована политикой безопасности AD из-за многократных попыток входа с неверным паролем).

задать новый пароль для пользователя домена

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

Также в свойствах пользователя на вкладке редактора атрибутов AD вы можете найти информацию о дате последней смены пароля. Это значение хранится в атрибуте пользователя pwdLastSet.

атрибут pwdLastSet пользователя AD

Для сброса пароля ваша учетной запись должна обладать соответствующими правами. По-умолчанию обычные пользователи AD не могут сбросить пароль других аккаунтов. Такие права есть только у учетных записей с правами администратора домена (Domain Admins), или Account Operators. Вы можете предоставить другим группам пользователям право на сброс паролей в определенных OU с помощью делегирования. По ссылке доступен пример делегирования прав на сброс паролей и разблокировку пользователей группе HelpDesk.

Чтобы проверить, что у вашей учетной записи есть право на сброс пароля определенного пользователя, откройте его свойства, перейдите на вкладку Security -> Advanced -> Effective Access -> укажите имя своей учетной записи -> убедитесь, что у вас есть разрешение Reset Password.

Active Directory эффективные разрешения на сброс пароля пользователяeffektivnie_rasresheniya_reset_password

Как сбросить пароль пользователю Active Directory с помощью PowerShell?

Вы можете использовать команды PowerShell для сброса пароля пользователя в AD. Для этого можно использовать используется командлет Set-ADAccountPassword, входящий в модуль Active Directory для Windows PowerShell (в десктопых версиях Windows он входит в состав RSAT, а в серверных редакциях устанавливается в виде отдельного компонента AD DS Snap-Ins and Command-Line Tools). Перед использованием модуля его необходимо импортировать в сессию PowerShell:

Import-module ActiveDirectory

Чтобы сбросить пароль для пользователя dakimov и установить новый пароль [email protected], выполните команду:

Set-ADAccountPassword dakimov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “[email protected]” -Force -Verbose) –PassThru

Set-ADAccountPassword сброс пароля в Active Directory из Powershell

alert]Для автоматической генерации сложный паролей пользователям вы можете использовать метод GeneratePassword, описанный в статье Генерация случайных паролей с помощью PowerShell. [/alert]

По умолчанию командлет возвращает объект и ничего не отображает в консоли. Чтобы вывести информацию об объекте пользователя в AD мы используем параметр –PassThru.

В качестве имени пользователя можно указать sAMAccountName (как в нашем случае), objectGUID, SID пользователя, или его DN (Distinguished Name, например CN=Akimov,OU=Users,DC=winitpro,DC=ru).

Если при смене пароля пользователя не указывать параметр –Reset, необходимо указать старый и новый пароль учетной записи.

Примечание. Если при сбросе пароля с помощью командлета Set-ADAccountPassword появляется ошибка:

Set-ADAccountPassword : The password does not meet the length, complexity, or history requirement of the domain.

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

Результирующие настройки парольной политики пользователя в домене можно вывести так:

Get-ADUserResultantPasswordPolicy -Identity a.novak

Если у вас включено ведение истории PowerShell команд, и вы не хотите, чтобы пароли в открытом виде сохранялись в сессии PoSh, пароль как и при создании пользователя нужно преобразовать в безопасную строку (подробнее о защите паролей в скриптах PowerShell здесь):

$NewPasswd=Read-Host "Введите новый пароль пользователя" –AsSecureString

задать новый пароль пользователя в ad из powershell

Теперь можно задать новый пароль пользователю:

Set-ADAccountPassword dakimov -Reset –NewPassword $NewPasswd –PassThru

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

Unlock-ADAccount –Identity dakimov

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

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $true

Вы можете совместить в одной строке команду смены пароля и включение требования сменить пароль (атрибут userAccountControl):

Set-ADAccountPassword dakimov -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

С помощью командлета Get-ADUser вы можете убедиться, что пароль сброшен успешно. Выведите время последней смены пароля аккаунта:

Get-ADUser dakimov -Properties * | select name, pass*

Get-ADUser время последней смены пароля

При сбросе пароля на контроллере домена (DC) регистрируется событие EventID 4724. Это событие помогает определить учетную запись, которая выполнила сброс пароля пользователя.

Вы можете узнать, когда истекает срок действия пароля пользователя согласно текущим настройкам политики паролей с помощью PowerShell команды:

Get-ADUser -Identity avivanov -Properties msDS-UserPasswordExpiryTimeComputed | select-object @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") }}

PowerShell скрипт для сброса пароля нескольких пользователей AD

Выше мы показали, как из PowerShell сбросить пароль одного пользователя в AD. Рассмотрим теперь другой сценарий – когда вам нужно сменить пароли сразу нескольких пользователей.

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

get-aduser -filter "department -eq 'Sales Dept' -AND enabled -eq 'True'" | Set-ADAccountPassword -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

Рассмотрим еще один пример. Допустим, у вас есть CSV/Excel файл, в котором содержится список пользователей, которым нужно сбросить пароли и уникальный пароль для каждого пользователя. Формат файла users.csv:

sAMAccountName;NewPassword
aivanov;PaSSde0r1
bpetrov;New$isde01
ssidorov;[email protected]!223

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

Import-Csv users.csv -Delimiter ";" | Foreach {
$NewPass = ConvertTo-SecureString -AsPlainText $_.NewPassword -Force
Set-ADAccountPassword -Identity $_.sAMAccountName -NewPassword $NewPass -Reset -PassThru | Set-ADUser -ChangePasswordAtLogon $false
}

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

Изменить пароль пользователя в домене из командной строки

Если на компьютере не установлена консоль ADUC, или модуль RSAT-AD-PowerShell, вы можете использовать консольную команду net use для сброса пароля. Чтобы получить информацию о пользователе в домене, выполните команду:

net user a.novak /domain

В командной строке показана базовая информацию о пароле пользователя в домене:

Password last set            4/20/2022 2:10:05 AM
Password expires             Never
Password changeable          4/21/2022 2:10:05 AM
Password required            Yes
User may change password     Yes
Last logon                   4/20/2022 2:58:47 AM
Logon hours allowed   All

net user: команда просмотр информация о пользователе домена и его пароле

Из значения Last Logon можно узнать, когда пользователь входит в домен последний раз. Чтобы получить более подробную информацию об истории входа пользователя в домен, смотри статью.

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

net user a.novak /domain *

net user domain сбросить пароль пользователя

Укажите новый пароль и подтвердите его:

Type a password for the user: xx
Retype the password to confirm: xx
The command completed successfully.

Смена пароля AD

Это руководство описывает процедуру изменения пароля для сервера со службой домена Active Directory

Для этого откройте «Пуск» -> «Администрирование» -> «Пользователи и компьютеры Active Directory»

В новом окне, откройте раздел c именем Вашего домена, на скриншоте это «neo.adminad.ru» и нажмите на папку «Users»

Слева появится список пользователей, выберите одного из пользователей по имени и правой кнопкой мыши откройте пункт «Смена пароля…»

В окне смена пароля,

  1. Введите новый пароль (пароль должен быть не меньше 8 символов)
  2. Установите галочку на пункте «Требовать смену пароля при следующем входе в систему» — если требуется.
  3. Разблокировать учетную запись пользователя — если пользователь был заблокирован системой.

Нажмите «ОК»

Если все данные ввели правильно то появится окно об удачной смене пароля
 

Готово

Теперь мы рассмотрим процедуру изменения срока пароля для сервера со службой домена Active Directory

Срок истечения пароля AD

Откройте «Пуск» -> «Администрирование» -> «Управление групповой политикой»

Далее откроется окно «Управление групповой политикой», в блоке слева откройте дерево
«Лес: Имя Вашего домена»
   -> «Домены»
    -> «Имя Вашего домена»
     -> «Default Domain Policy»

 затем в блоке справа выберите вкладку «Параметры».

Во вкладке «Параметры» откройте вкладки «Политики» -> «Конфигурация Windows» -> «Параметры безопасности» -> «Политика учетных записей / Политика паролей»

В списке «Политика учетных записей / Политика паролей» нажмите правой кнопкой мыши на «Максимальный срок действия пароля  42 дня» и в контекстном меню выберите «Изменить»

Перед Вами откроется «Редактор управления групповыми политиками»

В этом редакторе, в блоке слева откройте дерево:

«Конфигурация компьютера» -> «Политики» -> «Конфигурация Windows» -> «Параметры безопасности» -> «Политики учетных записей» -> «Политика паролей»

В блоке справа откройте «Максимальный срок действия пароля 42 дня»

В открывшемся окне в значении «Срок истечения действия пароля» введите 0 или нужное Вам значение
Значение «0» — говорит системе о том что — функция «Срок истечения действия пароля» — отключена.
В таком режиме срок действия пароля — бесконечный.

И нажмите кнопку «Применить» , готово.

Администратор может изменить пароль локальных пользователей на компьютере, используя графическую оснастку «Локальные пользователи и группы (lusrmgr.msc)».

Чтобы изменить пароль пользователя домена AD, в основном используется консоль GUI для пользователей и компьютеров Active Directory (ADUC).

Однако в некоторых случаях администратору может потребоваться изменить пароль пользователя из командной строки или в каком-либо скрипте.

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

Как изменить пароль пользователя Active Directory с помощью PowerShell?

Чтобы изменить пароль пользователя Active Directory, используйте команду Set-ADAccountPassword из модуля Active Directory для Windows PowerShell.

Конечно, пользователь, выполняющий командлет, должен иметь права администратора домена или должен быть делегирован для сброса паролей пользователей AD.

Перед использованием командлета Set-ADAccountPassword вы должны импортировать этот модуль в сеанс PowerShell:

Import-Module ActiveDirectory

Пароль в памяти компьютера желательно хранить в защищенной форме, поэтому вы можете попросить администратора указать пароль следующим образом:

$newPass=Read-Host "Enter the new user password" -AsSecureString

Введите новый пароль в консоли PowerShell.

Лучше указать имя учетной записи AD в виде имени samAccountname. Например, чтобы изменить пароль для пользователя jkelly, запустите команду:

Set-ADAccountPassword jkelly -NewPassword $newPass

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

Set-ADAccountPassword jkelly–NewPassword (ConvertTo-SecureString -AsPlainText –String "St0ngPwd@d" -force)

Если вы хотите, чтобы пользователь изменил пароль при следующем входе в систему, выполните команду:

Set-ADUser jkelly -ChangePasswordAtLogon $True

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

Используйте этот скрипт:

Get-Content C:PSuser_to_reset.txt | Set-ADAccountPassword -NewPassword $newPass -Reset

Как изменить пароль для локальных учетных записей Windows?

Чтобы изменить пароли локальных пользователей Windows, вы можете использовать API интерфейса ADSI (Active Directory Services Interface), который может использоваться для взаимодействия с Active Directory или с автономными компьютерами.

Откройте командную строку PowerShell и перечислите локальные учетные записи пользователей на текущем компьютере:

get-wmiobject win32_useraccount

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

[adsi]$localPC = "WinNT://."

$localPC.Children | where {$_.Class -eq "user"} | ft name, description –auto

Чтобы сбросить пароль локального пользователя, сначала выберите пользователя (в этом примере имя локальной учетной записи – ConfRoom):

[adsi]$user = "WinNT://./ConfRoom,user"

Задайте пароль:

$user.SetPassword("newP@s32w02rd")

Кроме того, вы можете запросить смену пароля при следующем входе в систему:

$user.Put("PasswordExpired",1)

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

$user.SetInfo()

Эти же команды могут использоваться для изменения пароля пользователя на удаленных компьютерах.

Достаточно заменить [adsi] $ user = “WinNT: //./ConfRoom,user” командой [adsi] $ user = “WinNT: // RemotePCName / ConfRoom, user”.

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

$NewPass = "ThisIsNewP@33"

$localusers = Get-WmiObject -Class Win32_UserAccount -ComputerName $env:COMPUTERNAME -Filter LocalAccount='true' | select -ExpandProperty name

foreach ($user in $localusers)

{

$user

([adsi]"WinNT://$env:COMPUTERNAME/$user").SetPassword("$NewPass ")

}

Изменение пароля пользователя Windows Active Directory и LDS с помощью LDAP

В этой статье описывается изменение пароля пользователя active Directory Windows LDS с помощью LDAP.

Применяется к: Windows Active Directory
Исходный номер КБ: 269190

Сводка

Вы можете установить Windows Active Directory и пароль пользователя LDS с помощью протокола доступа к облегченным каталогам (LDAP) с учетом определенных ограничений. В этой статье описывается настройка или изменение атрибута пароля.

Эти действия также применяются к пользователям ADAM и LDS и объектам userProxy так же, как это делается с пользователями AD.

Эта статья применяется к Windows 2000. Поддержка Windows 2000 заканчивается 13 июля 2010 г. Центр Windows 2000 года является отправной точкой для планирования стратегии миграции с 2000 г. Windows 2000 г. Дополнительные сведения см. в политике жизненного цикла поддержки Майкрософт.

Дополнительные сведения

Пароль хранится в базе данных AD и LDS на объекте пользователя в атрибуте unicodePwd. Этот атрибут можно написать в ограниченных условиях, но его невозможно прочитать. Атрибут можно изменить только; она не может быть добавлена при создании объекта или запрашивается поиском.

Чтобы изменить этот атрибут, клиент должен иметь 128-битную связь с безопасностью транспортного слоя (TLS)/Secure Socket Layer (SSL) на сервере. Зашифрованный сеанс с помощью созданных SSP-ключей сеанса с использованием NTLM или Kerberos также приемлем до тех пор, пока не будет удовлетворены минимальные длины ключей.

Чтобы это подключение было возможным с помощью TLS/SSL:

  • Сервер должен обладать сертификатом сервера для 128-битного подключения RSA.
  • Клиент должен доверять органу сертификации (CA), сгенерированию сертификата сервера.
  • Клиент и сервер должны быть способны к 128-битной шифрованию.

Синтаксис атрибута unicodePwd — octet-string; однако служба каталогов ожидает, что в строке octet-string будет содержаться строка UNICODE (как указывает имя атрибута). Это означает, что любые значения для этого атрибута, переданные в LDAP, должны быть строками UNICODE, кодируемыми BER (Основные правила кодирования) в качестве октета-строки. Кроме того, строка UNICODE должна начинаться и заканчивается кавычками, которые не являются частью нужного пароля.

Существует два возможных способа изменения атрибута unicodePwd. Первый похож на обычную операцию по смене пароля пользователя. В этом случае запрос на изменение должен содержать как операцию удаления, так и операцию добавления. Операция удаления должна содержать текущий пароль с кавычками вокруг него. Операция добавления должна содержать нужный новый пароль с кавычками вокруг него.

Второй способ изменения этого атрибута аналогичен администратору, сбросив пароль для пользователя. Для этого клиент должен связаться как пользователь с достаточными разрешениями, чтобы изменить пароль другого пользователя. Этот запрос на изменение должен содержать одну операцию замены новым нужным паролем, окруженным кавычками. Если у клиента достаточно разрешений, этот пароль становится новым паролем независимо от старого пароля.

Изменение пароля учетной записи Windows Server 2012 с Active Directory

1. Введите новый пароль (пароль должен быть не меньше 8 символов)
2. Установите галочку на пункте «Требовать смену пароля при следующем входе в систему» — если требуется.
3. Разблокировать учетную запись пользователя — если пользователь был заблокирован системой.

Если все данные ввели правильно то появится окно об удачной смене пароля

Теперь мы рассмотрим процедуру изменения срока пароля для сервера со службой домена Active Directory

Срок истечения пароля AD

Откройте «Пуск» -> «Администрирование» -> «Управление групповой политикой»

Далее откроется окно «Управление групповой политикой», в блоке слева откройте дерево
«Лес: Имя Вашего домена»
-> «Домены»
-> «Имя Вашего домена»
-> «Default Domain Policy»

затем в блоке справа выберите вкладку «Параметры».

Во вкладке «Параметры» откройте вкладки «Политики» -> «Конфигурация Windows» -> «Параметры безопасности» -> «Политика учетных записей / Политика паролей»

В списке «Политика учетных записей / Политика паролей» нажмите правой кнопкой мыши на «Максимальный срок действия пароля 42 дня» и в контекстном меню выберите «Изменить»

Перед Вами откроется «Редактор управления групповыми политиками»

В этом редакторе, в блоке слева откройте дерево:

«Конфигурация компьютера» -> «Политики» -> «Конфигурация Windows» -> «Параметры безопасности» -> «Политики учетных записей» -> «Политика паролей»

В блоке справа откройте «Максимальный срок действия пароля 42 дня»

В открывшемся окне в значении «Срок истечения действия пароля» введите 0 или нужное Вам значение
Значение «0» — говорит системе о том что — функция «Срок истечения действия пароля» — отключена.
В таком режиме срок действия пароля — бесконечный.

Сменить пароль пользователя в домене

С помощью следующих способов можно изменить пароль только у учетных записей, от которых известен текущий пароль.

Если срок действия Вашего пароля ещё не истек:

  • Если Ваш рабочий компьютер работает под управлением ОС семейства Windows и является членом домена at.urfu.ru, то Вам требуется воспользоваться первым способом.
  • Если Ваш рабочий компьютер не является членом домена at.urfu.ru, то Вам требуется воспользоваться вторым способом.

Если срок действия Вашего пароля уже истек:

  • Если Ваш рабочий компьютер работает под управлением ОС семейства Windows и является членом домена at.urfu.ru, то при очередной загрузке компьютера форма смены пароля откроется автоматически. Можете сразу переходить к пункту 6 Способа 1.
  • Если Ваш рабочий компьютер не является членом домена at.urfu.ru, то Вам требуется воспользоваться вторым способом. С одним замечанием: при входе в «Профиль пользователя», сразу после ввода текущего логина-пароля, диалоговое окно смены пароля откроется автоматически, значит пункт 3 Способа 2 Вы можете пропустить.

Способ 1.

  1. Включите компьютер.
  2. После загрузки Windows, введите логин и пароль учетной записи, у которой хотите сменить пароль.
  3. Откроется рабочий стол Windows пользователя, соответствующего этой учетной записи.
  4. Нажмите одновременно три кнопки на клавиатуре Ctrl, Alt и Delete.
  5. Выберите пункт «Изменить пароль». В различных версиях ОС Windows этот пункт может называться по-другому: «Сменить пароль пользователя», «Смена пароля».
  6. Откроется форма смены пароля. В первое поле нужно вписать старый пароль текущей учетной записи.
  7. Во второе поле нужно вписать новый(желаемый) пароль. Пароль должен соответствовать минимальным требованиям к паролям учетных записей в домене .
  8. В третье поле нужно вписать новый пароль, т.е. то что Вы вписали во второе поле.
  9. После заполнения полей нажмите на клавиатуре клавишу «Enter».
  10. Будет выдано информационное сообщение об успешности изменения пароля. Старый пароль больше не действителен, после следующей перезагрузке компьютера, для входа нужно использовать новый пароль.

Способ 2.

  1. Зайдите на сайт самообслуживания, в «Профиль пользователя»: https://id.urfu.ru/ProfileManagement/Profile .
  2. Введите логин и пароль учетной записи, у которой хотите сменить пароль.
  3. Откроется профиль пользователя. Нажмите на ссылку смена пароля.
  4. Откроется диалоговое окно смены пароля.
  5. В поле «старый пароль» впишите текущий пароль от учетной записи.
  6. В поле «новый пароль» впишите новый(желаемый) пароль. Пароль должен соответствовать минимальным требованиям к паролям учетных записей в домене .
  7. В поле «подтверждение пароля» впишите новый пароль, т.е. то что Вы вписали в поле «Новый пароль».
  8. Нажмите «Изменить».
  9. Откроется страница «Профиль пользователя». Это значит, Ваш текущий пароль сменен на новый. Старый пароль больше не действителен. Для входа в корпоративные системы используйте новый пароль.
  10. Если Вы используете Outlook для подключения к корпоративной почте, то после смены пароля Outlook, возможно, запросит ввести новый пароль. При следующем запуске Outlook, будет выведено диалоговое окно, в которое надо ввести Ваши логин и новый пароль. После установки галочки «Запомнить пароль», Outlook больше не будет выводить это диалоговое окно.

Минимальные требования к паролям учетных записей в домене

В этой статье мы рассмотрим, как изменить (сбросить) пароль одного или сразу нескольких пользователей Active Directory из командной строки PowerShell с помощью командлета Set-ADAccountPassword.

Большинство администраторов привыкли выполнять смену (сброс) паролей пользователей в AD через графическую оснастку dsa.msc (Active Directory Users & Computers — ADUC). Для этого нужно найти учетную запись пользователя в AD щелкнуть по нему правой кнопкой и выбрать пункт «Смена пароля» (Reset password). Это простой и понятный способ.

Но вам не удастся использовать консоль ADUC, когда необходимо сбросить пароль сразу множеству пользователей, использовать процедуру сброса пароля в качестве одного из действий скрипта. В этом случае можно сбросить пароли в AD из командной строки PowerShell.

Как сбросить пароль пользователю в AD?

Для сброса пароля пользователя в AD используется командлет Set-ADAccountPassword, входящий в модуль Active Directory для Windows PowerShell (в десктопых версиях Windows он входит в состав RSAT, а в серверных редакциях устанавливается в виде отдельного компонента AD DS Snap-Ins and Command-Line Tools). Перед использованием модуля его необходимо импортировать в сессию PowerShell:

Для сброса пароля ваша учетной запись должна обладать соответствующими правами. Естественно, обычные пользователи AD по-умолчанию не могут сбросить пароль других аккаунтов, чтобы эта возможность появилась, пользователю (группе пользователей) нужно делегировать право на сброс пароля на контейнер AD, либо добавить его в доменную группу Account Operators.

Чтобы проверить, что у вашей учетной записи есть право на сброс пароля определенного пользователя, откройте его свойства, перейдите на вкладку Security -> Advanced -> Effective Access -> укажите имя своей учетной записи -> убедитесь, что у вас есть разрешение Reset Password.

Чтобы сбросить пароль для пользователя с учетной записью dakimov и установить новый пароль SuperStr0n@p1, выполните команду:

Set-ADAccountPassword dakimov -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “SuperStr0n@p1” -Force -Verbose) –PassThru

По умолчанию командлет возвращает объект и ничего не отображает в консоли. Чтобы вывести информацию об объекте пользователя в AD мы используем параметр –PassThru.

В качестве имени пользователя можно указать sAMAccountName (как в нашем случае), objectGU >

Если при смене пароля пользователя не указывать параметр –Reset, необходимо указать старый и новый пароль учетной записи.

Set-ADAccountPassword : The password does not meet the length, complexity, or history requirement of the domain.

Это означает что к указанному паролю применяются некоторые требования сложности, длины и т.д., определенные в доменной политике паролей или гранулированной политике паролей, действующей на учетку.

Если у вас включено ведение истории PowerShell команд, и вы не хотите, чтобы пароли в открытом виде отображались в консоли PoSh, пароль как и при создании пользователя нужно преобразовать в безопасную строку (подробнее о защите паролей в скриптах PowerShell здесь):

$NewPasswd=Read-Host «Введите новый пароль пользователя» –AsSecureString

Теперь сбросим пароль:

Set-ADAccountPassword dakimov -Reset –NewPassword $NewPasswd –PassThru

При сбросе пароля можно принудительно снять блокировку ученой записи, даже если она заблокирована (как найти с какого компьютера блокируется учетная запись, смотрите в статье Поиск источника блокировки пользователя в Active Directory):

Unlock-ADAccount –Identity dakimov

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

Set-ADUser -Identity dakimov -ChangePasswordAtLogon $true

Вы можете совместить в одной строке команду смены пароля и включение требования сменить пароль (атрибут userAccountControl):

Set-ADAccountPassword dakimov -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

С помощью командлета Get-ADUser вы можете убедиться, что пароль сброшен успешно, выведя время последней смены пароля аккаунта:

Get-ADUser dakimov -Properties * | select name, pass*

При сбросе пароля на контроллере домена (DC) регистрируется событие EventID 4724. Это событие помогает определить учетную запись, которая выполнила сброс пароля пользователя.

Изменить пароль нескольких пользователей в AD

Выше мы показали, как из PowerShell сбросить пароль одного пользователя в AD. Рассмотрим теперь другой сценарий – когда вам нужно сменить пароли сразу нескольких пользователей.

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

get-aduser -filter «department -eq ‘Sales Dept’ -AND enabled -eq ‘True’» | Set-ADAccountPassword -NewPassword $NewPasswd -Reset -PassThru | Set-ADuser -ChangePasswordAtLogon $True

    Денис Веневитинов 3 лет назад Просмотров:

1 Инструкция по смене пароля пользователя в домене (SEVERSTAL, NORDGOLD, SVEZA, MSK, KARO, OLCON, VRK, GIPRO, CHER, CHSPZ, INVEST, SSMTM, VTORMET, INTER) 1. Описание Для смены пароля пользователя в домене (пароля корпоративной учетной записи) необходимо знать текущий или получить временный пароль (см. п.2), если текущий пароль Вами был забыт. Изменение пароля учетной записи в домене доступно следующими способами в зависимости от используемого устройства: 1. Через web-интерфейс (см. п.3) на мобильном устройстве, подключенном к сети Интернет, 2. На корпоративном ПК/ноутбуке (см. п.4), подключенном к корпоративной сети (КСПД). Если для работы с информационными системами компании Вы используете терминальный сервер, то через него Вы можете сменить только текущий пароль учетной записи, с которой Вы к нему подключаетесь (см. п.5). Если Вы не помните этот текущий пароль, то Вам необходимо получить временный пароль и сменить его через web-интерфейс. 2. Временный пароль Временный пароль присваивается учетной записи в домене при ее создании или при смене текущего пароля по запросу в Каталоге ИТ-услуг, если текущий пароль Вами был забыт. Зарегистрировать запрос на смену забытого пароля можно обратившись к своему коллеге, у которого есть доступ к Каталогу ИТ-услуг, или через Службу поддержки пользователей группы компаний Северсталь (см. п.7). Временный пароль передается через корпоративный SMS-сервис или через ответственное лицо. После получения временный пароль должен быть обязательно изменен перед первым подключением к информационным системам компаний любым из описанных в Инструкции способом. 3. Смена пароля через web-интерфейс Смена пароля к учетной записи в домене через web-интерфейс доступна с любых ПК и мобильных устройств, подключенных к сети Интернет Перейдите по ссылке 1

2 Русский интерфейс Английский интерфейс 1.2. Введите имя своей учетной записи в формате «доменлогин», затем свой текущий (или временный) пароль, и далее свой новый пароль в оба поля «Новый пароль» и «Подтверждение нового пароля» Для завершения операции нажмите кнопку «Отправить». Новый пароль должен соответствовать требованиям информационной безопасности (см. п.6). После успешной смены необходимо авторизовать новый пароль на всех устройствах, на которых Вы подключаетесь с данной учетной записью к информационным системам компании (например, изменить пароль к корпоративной почте на мобильном телефоне/планшете; перезагрузить корпоративный ПК в корпоративной сети и т.д.). Если в момент смены пароля Ваш корпоративный ПК/ноутбук не может быть подключен к корпоративной сети (например, Вы находитесь вне офиса и подключаетесь удаленно), то для входа на устройство необходимо использовать «старый пароль». 4. Смена пароля на ПК, подключенном к корпоративной сети (КСПД) Для выполнения смены пароля убедитесь, что Ваш ПК (ноутбук) подключен к корпоративной сети (КСПД) по кабелю или находится в зоне действия внутренней корпоративной сети WiFi («SSG- Corp») Нажмите одновременно на клавиатуре 3 клавиши Ctrl+Alt+Delete В открывшемся окне нажмите кнопку для смены пароля (в зависимости от операционной системы): Windows 7 Windows 10 Windows XP 2

3 2.3. Введите свой текущий (или временный пароль), затем свой новый пароль в оба поля «Новый пароль» и «Подтверждение»: Windows 7 Windows 10 Windows XP 2.4. Для завершения операции в разных операционных системах нужно нажать разные кнопки: «стрелку» в Windows 7 и Windows 10 или «ОК» в Windows XP. Новый пароль должен соответствовать требованиям информационной безопасности (см. п.6). После успешной смены необходимо авторизовать новый пароль на всех прочих устройствах, на которых Вы подключаетесь с данной учетной записью к информационным системам (например, изменить пароль к корпоративной почте на мобильном телефоне/планшете). 5. Смена текущего пароля при работе на терминальном сервере При работе на терминальном сервере можно изменить только текущий пароль учетной записи в домене Подключитесь к терминальному серверу привычным для Вас способом 3.2. Нажмите одновременно на клавиатуре 3 клавиши Ctrl+Alt+End 3

4 3.3. В открывшемся окне выберите пункт «Сменить пароль» 3.4. Дальнейшие шаги зависят от способа Вашего подключения к текущему терминальному серверу При подключении к терминальному серверу с использованием логина и пароля учетной записи в домене необходимо: В открывшемся окне смены пароля ввести свой текущий пароль, затем свой новый пароль в оба поля «Новый пароль» и «Подтверждение»: Для завершения операции нажмите «стрелку» (на иллюстрации выделена красным) При подключении к терминальному серверу с использованием токена (смарт-карты) необходимо: В открывшемся окне «Ошибка смарт-карты» нажать кнопку «Другие учетные данные» 4

5 Нажать на иконку с Вашим логином: В открывшемся окне смены пароля выполнить действия согласно п Новый пароль должен соответствовать требованиям информационной безопасности (см. п.6). После успешной смены необходимо авторизовать новый пароль на всех прочих устройствах, на которых Вы подключаетесь с данной учетной записью к информационным системам компании (например, изменить пароль к корпоративной почте на мобильном телефоне/планшете). Если при работе на терминальном сервере у Вас закончился срок действия пароля к доменной учетной записи, то может возникнуть ошибка подключения вида: «Вашему компьютеру не удается подключится удаленному компьютеру, так как срок действия вашего пароля истек или необходимо сменить пароль»: или «The system could not log you. Your password has expired and must be changed»: В этом случае Вам необходимо получить временный пароль (см. п.2) и далее сменить его через webинтерфейс (см. п.3). 5

6 6. Обязательные требования к паролю Пароль должен соответствовать политике безопасности и не содержать символов кириллицы. Обязательные требования: должен быть не менее 8 знаков; не должен совпадать с 12 прежними паролями; не должен содержать имени Вашей учетной записи или полного имени; должен содержать знаки трех из четырех перечисленных ниже категорий: o латинские строчные буквы (от a до z); o латинские прописные буквы (от A до Z); o цифры (0 9); o # $ % ^ & * – _ + = [ ] < > . / `

( ). Срок действия нового пароля составляет 120 дней, по истечению которых необходимо заново пройти процедуру изменения пароля. 7. Контактная информация За дополнительной консультацией Вы можете обратится в Службу поддержки пользователей Группы компаний Северсталь с обязательным указанием своих контактных данных: по электронной почте по телефону (702) , +7 (8202)

Администратор может изменить пароль локальных пользователей компьютера с помощью графической оснастки lusrmgr.msc. Чтобы изменить пароль доменного пользователя преимущественно используется графическая консоль Active Directory Users and Computer (ADUC). В некоторых случаях администратору бывает необходимо изменить пароль пользователя из командной строки или скрипта. В этой статье мы покажем, как управлять паролями локальных и доменных (из домена Active Directory) пользователей с помощью PowerShell.

    Содержание:

  • Как изменить пароль пользователя AD с помощью PowerShell?
  • Как из PowerShell изменить пароль локального пользователя Windows?

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

Чтобы сбросить пароль пользователя в AD нужно использовать комадлет Set-ADAccountPassword из модуля PowerShell Active Directory. Естественно у пользователя, который выполняет команду должны быть права администратора домена или ему делегированы полномочия на сброс паролей пользователям AD.

Перед использованием командлета Set-ADAccountPassword необходимо импортировать данный модуль в сессию PowerShell:

import-module activedirectory

Пароль в памяти компьютера желательно хранить в защищенном виде, поэтому можно попросить администратора указать пароль следующим образом:

$newPass=Read-Host "Введите новый пароль" -AsSecureString

Введите новый пароль в консоли.

Лучше всего указывать имя учетной записи в виде samAccountname. Например, чтобы изменить пароль пользователю aaivanov, выполните команду:

Set-ADAccountPassword aaivanov -NewPassword $newPass

Set-ADAccountPassword изменить пароль в ad из powershell

Можно задать новый пароль пользователя прямо в коде скрипта (в открытом виде):

Set-ADAccountPassword aaivanov –NewPassword (ConvertTo-SecureString -AsPlainText –String "Hard6P@ss " -force)

Если нужно, чтобы пользователь сам сменил пароль при следующей авторизации на любом компьютере домена, выполните команду:

Set-ADUser aaivanov -ChangePasswordAtLogon $True

Set-ADUser ChangePasswordAtLogon

Вы можете сбросить пароль сразу нескольким пользователям. Можно сохранить список учетных записей в обычном текстовом файле sbros_parolya_spisok_users.txt (каждая строка – одна учтенная запись). Воспользуйтесь таким скриптом:

Get-Content C:PSsbros_parolya_spisok_users.txt | Set-ADAccountPassword -NewPassword $newPass -Reset

Как из PowerShell изменить пароль локального пользователя Windows?

Для сброса паролей на локальные учтенные записи в Windows можно использовать API ADSI (Active Directory Services Interface), который может применяться как для работы с Active Directory, так и с отдельно стоящими компьютерами.

Откройте командную строку PowerShell и выведите список всех локальных пользователей компьютера:

get-wmiobject win32_useraccount

powershell - получить список локальных учетных записей

Также вы можете вывести список локальных пользователей так:

[adsi]$localPC = "WinNT://."
$localPC.Children | where {$_.Class -eq "user"} | ft name, description –auto

Чтобы сбросить пароль локального пользователя, выберите пользователя (например, учетка root):

[adsi]$user = "WinNT://./root,user"

Установите его пароль:

$user.SetPassword("et0sloshn!yP@r0l")

Дополнительно можете потребовать от пользователя самому сменить пароль при следующем входе в систему:

Задаем смену пароля при следующем входе:

$user.Put("PasswordExpired",1)

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

$user.SetInfo()

сбросить пароль локального пользователя windows из powershell

Эти же команды можно использовать для смены пароля пользователя на удаленных компьютерах. Достаточно заменить [adsi]$user = ″WinNT://./root,user″ на команду вида [adsi]$user = ″WinNT://msk-BuhPC21/local_user_name,user″

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

$NewPass = "NoviyP@r0l"
$localusers = Get-WmiObject -Class Win32_UserAccount -ComputerName $env:COMPUTERNAME -Filter LocalAccount='true' | select -ExpandProperty name
foreach ($user in $localusers)
{
$user
([adsi]"WinNT://$env:COMPUTERNAME/$user").SetPassword("$NewPassW0rd")
}

Джеффери Хикс подготовил статью на Windows IT Pro, посвященную использования PowerShell для администрирования AD. В качестве исходного пункта автор решил взять 10 типичных задач администрирования AD и рассмотреть то, как их можно упростить, используя PowerShell:

  1. Сбросить пароль пользователя
  2. Активировать и деактивировать учетные записи
  3. Разблокировать учетную запись пользователя
  4. Удалить учетную запись
  5. Найти пустые группы
  6. Добавить пользователей в группу
  7. Вывести список членов группы
  8. Найти устаревшие учетные записи компьютеров
  9. Деактивировать учетную запись компьютера
  10. Найти компьютеры по типу

Помимо этого автор ведет блог (по PowerShell, конечно), рекомендуем заглянуть — jdhitsolutions.com/blog. А самое актуальное Вы можете получить из его твиттера twitter.com/jeffhicks.
Итак, ниже приводим перевод статьи “Top 10 Active Directory Tasks Solved with PowerShell”.

Управление Active Directory (AD) с помощью Windows PowerShell – это проще, чем Вы думаете, и я хочу доказать Вам это. Вы можете просто взять приведенные ниже скрипты и с их помощью решить ряд задач по управлению AD.

Требования

Чтобы использовать PowerShell для управления AD, нужно соблюсти несколько требований. Я собираюсь продемонстрировать, как командлеты для AD работают на примере компьютера на Windows 7.
Чтобы использовать командлеты, контроллер домена у Вас должен быть уровня Windows Server 2008 R2, или же Вы можете скачать и установить Active Directory Management Gateway Service на наследуемых контроллерах домена (legacy DCs). Внимательно прочитайте документацию перед установкой; требуется перезагрузка КД.
На стороне клиента, скачайте и установите Remote Server Administration Tools (RSAT) либо для Windows 7, либо для Windows 8. В Windows 7, Вам необходимо будет открыть в Панели управления (Control Panel) раздел Программы (Programs) и выбрать Включить или выключить функции Windows (Turn Windows Features On or Off). Найдите Remote Server Administration Tools и раскройте раздел Role Administration Tools. Выберите подходящие пункты для AD DS and AD LDS Tools, особенно обратите внимание на то, что должен быть выбран пункт Active Directory Module for Windows PowerShell, как показано на рисунке 1. (В Windows 8 все инструменты выбраны по умолчанию). Теперь мы готовы работать.


Рис.1 Включение AD DS и AD LDS Tools

Я вошел в систему под учетной записью с правами доменного администратора. Большинство командлетов, которые я буду показывать, позволят Вам уточнить альтернативные полномочия (credentials). В любом случае я рекомендую прочитать справку (Get-Help) и примеры, которые я буду демонстрировать ниже.
Начните сессию PowerShell и импортируйте модуль:

PS C:> Import-Module ActiveDirectory

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

PS C:> get-command -module ActiveDirectory

Прелесть этих команд в том, что если я могу использовать команду для одного объекта AD, то ее можно использовать для 10, 100 и даже 1000. Посмотрим, как некоторые из этих командлетов работают.

Задача 1: Сброс пароля пользователя

Давайте начнем с типичной задачи: сброс пароля пользователя. Сделать это легко и просто можно через командлет Set-ADAccountPassword. Сложная часть заключается в том, что новый пароль должен быть уточнен как защищенная строка: фрагмент текста, который зашифрован и хранится в памяти на протяжении PowerShell сессии. Во-первых, создадим переменную с новым паролем:

PS C:> $new=Read-Host "Enter the new password" -AsSecureString

Затем, введем новый пароль:

PS C:>

Теперь мы можем извлечь учетную запись (использование samAccountname – лучший вариант) и задать новый пароль. Вот пример для пользователя Jack Frost:

PS C:> Set-ADAccountPassword jfrost -NewPassword $new

К сожалению, в случае с этим командлетом наблюдается баг: -Passthru, -Whatif, и –Confirm не работают. Если Вы предпочитаете короткий путь, попробуйте следующее:

PS C:> Set-ADAccountPassword jfrost -NewPassword
(ConvertTo-SecureString -AsPlainText -String
"P@ssw0rd1z3" -force)

В итоге мне необходимо, чтобы Jack сменил пароль при следующем входе в систему, и я модифицирую учетную запись используя Set-ADUser.

PS C:> Set-ADUser jfrost -ChangePasswordAtLogon $True

Результаты выполнения командлета не пишутся в консоль. Если это необходимо сделать, используйте –True. Но я могу узнать, успешно или нет прошла операция, произведя извлечения имени пользователя с помощью командлета Get-ADUser и уточнив свойство PasswordExpired, как показано на рисунке 2.


Рис. 2. Результаты работы командлета Get-ADUser Cmdlet со свойством PasswordExpired

Итог: сбросить пароль пользователя с помощью PowerShell совсем не сложно. Признаюсь, что сбросить пароль также просто через оснастку Active Directory Users and Computers консоли Microsoft Management Console (MMC). Но использование PowerShell подходит в том случае, если Вам необходимо делегировать задачу, Вы не хотите разворачивать вышеупомянутую оснастку или сбрасываете пароль в ходе большого автоматизированного ИТ-процесса.

Задача 2: Активировать и деактивировать учетные записи

А теперь давайте деактивируем учетную запись. Продолжим работать с Jack Frost. Этот код использует параметр –Whatif, который Вы можете встретить в других комадлетах, которые осуществляют изменения, чтобы проверить мою команду не запуская ее.

PS C:> Disable-ADAccount jfrost -whatif
What if: Performing operation "Set" on Target "CN=Jack Frost,
OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local".

А теперь деактивируем по-настоящему:


PS C:> Disable-ADAccount jfrost

А когда настанет время активировать учетную запись, какой командлет нам поможет?

PS C:> Enable-ADAccount jfrost

Эти командлеты могут быть использованы в конвейерном выражении (pipelined expression), позволяя активировать или деактивировать столько учетных записей, сколько душе угодно. Например, этот код деактивирует все учетные записи в отделе продаж (Sales)

PS C:> get-aduser -filter "department -eq 'sales'" |
disable-adaccount

Конечно, писать фильтр для Get-ADUser довольно-таки сложно, но именно здесь использование параметра –Whatif вместе с командлетом Disable-ADAccount приходит на помощь.

Задача 3: Разблокировать учетную запись пользователя

Рассмотрим ситуацию, когда Jack заблокировал свою учетную запись, пытаясь ввести новый пароль. Вмест того, чтобы пытаться найти его учетную запись через GUI, процедуру разблокировки можно осуществить с помощью простой команды.

PS C:> Unlock-ADAccount jfrost

Командлет также поддерживает параметры -Whatif и -Confirm.

Задача 4: Удалить учетную запись

Неважно, сколько пользователей Вы удаляете, — это просто осуществить с помощью командлета Remove-ADUser. Мне не хочется удалять Jack Frost, но если бы я захотел, то использовал бы такой код:

PS C:> Remove-ADUser jfrost -whatif
What if: Performing operation "Remove" on Target
"CN=Jack Frost,OU=staff,OU=Testing,DC=GLOBOMANTICS,DC=local".

Или я могу ввести несколько пользователей и удалить их с помощью одной простой команды:

PS C:> get-aduser -filter "enabled -eq 'false'"
-property WhenChanged -SearchBase "OU=Employees,
DC=Globomantics,DC=Local" | where {$_.WhenChanged
-le (Get-Date).AddDays(-180)} | Remove-ADuser -whatif

С помощью этой команды будут найдены и удалены все деактивованные учетные записи подразделения (OU) Employees, которые не менялись в течение 180 и более дней.

Задача 5: Поиск пустых групп

Управление группами – занятие бесконечное и неблагодарное. Существует множество способов найти пустые группы. Некоторые выражения могут работать лучше, чем другие, в зависимости от Вашей организации. Код, приведенный ниже, позволит найти все группы в домене, включая встроенные (built-in).

PS C:> get-adgroup -filter * | where {-Not
($_ | get-adgroupmember)} | Select Name

Если у Вас есть группы с сотнями членов, тогда использование этой команды может занять много времени; Get-ADGroupMember проверяет каждую группу. Если Вы можете ограничить или настроить, это будет лучше.
Вот еще один подход:

PS C:> get-adgroup -filter "members -notlike '*'
-AND GroupScope -eq 'Universal'" -SearchBase
"OU=Groups,OU=Employees,DC=Globomantics,
DC=local" | Select Name,Group*

Эта команда находит все универсальные группы (Universal groups), которые не имеют членство в OU Groups и выводит некоторые из свойств. Результат приведен на рисунке 3.

Рис. 3. Поиск и фильтрация универсальных групп

Задача 6: Добавление пользователей в группу

Давайте добавим Jack Frost в группу Chicago IT:

PS C:> add-adgroupmember "chicago IT" -Members jfrost

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

PS C:> Add-ADGroupMember "Chicago Employees" -member
(get-aduser -filter "city -eq 'Chicago'")

Я использовал вводное конвейерное выражение (parenthetical pipelined expression), чтобы найти всех пользователей, у которых имеется свойство City в Chicago. Код в скобках выполняется, и полученные объекты передаются в параметр –Member. Каждый пользовательский объект добавляется в группу Chicago Employees. Неважно, имеем ли мы дело с 5 или 5000 пользователей, обновление членства в группах занимает всего несколько секунд. Это выражение может также быть написано с использованием ForEach-Object, что может быть удобнее:

PS C:> Get-ADUser -filter "city -eq 'Chicago'" | foreach
{Add-ADGroupMember "Chicago Employees" -Member $_}

Задача 7: Выводим список членов группы

Вы возможно захотите узнать, кто находится в определенной группе. Например, Вы должны периодически узнавать, кто входит в группу доменных администраторов (Domain Admins):

PS C:> Get-ADGroupMember "Domain Admins"

На рисунке 4 приведен результат.


Рис. 4. Члены группы Domain Admins

Командлет выводит объект AD для каждого члена группы. А что делать с вложенными группами? Моя группа Chicago All Users является коллекцией вложенных групп. Чтобы получить список всех учетных записей, я всего лишь должен использовать параметр –Recursive.

PS C:> Get-ADGroupMember "Chicago All Users"
-Recursive | Select DistinguishedName

Если Вы хотите пойти другим путем – найти, в каких группах пользователь состоит, — используйте свойство пользователя MemberOf:

PS C:> get-aduser jfrost -property Memberof |
Select -ExpandProperty memberOf
CN=NewTest,OU=Groups,OU=Employees,
DC=GLOBOMANTICS,DC=local
CN=Chicago Test,OU=Groups,OU=Employees,
DC=GLOBOMANTICS,DC=local
CN=Chicago IT,OU=Groups,OU=Employees,
DC=GLOBOMANTICS,DC=local
CN=Chicago Sales Users,OU=Groups,OU=Employees,
DC=GLOBOMANTICS,DC=local

Я использовал параметр -ExpandProperty, чтобы вывести имена MemberOf как строки.

Задача 8: Найти устаревшие учетные записи компьютеров

Мне часто задают этот вопрос: “Как найти устаревшие учетные записи компьютеров?”. И я всегда отвечаю: “А что для вас является устаревшим?” Компании по-разному определяют то, когда учетная запись компьютера (или пользователя, неважно), признается устаревшей и не подлежит дальнейшему использованию. Что касается меня, то я обращаю внимание на те учетные записи, у которых пароли не менялись в течение определенного периода времени. Этот период для меня составляет 90 дней – если компьютер не сменил пароль вместе с доменом за этот период, скорее всего он находится оффлайн и является устаревшим. Используется командлет Get-ADComputer:

PS C:> get-adcomputer -filter "Passwordlastset
-lt '1/1/2012'" -properties *| Select name,passwordlastset

Фильтр замечательно работает с жестким значением, но этот код будет обновляться для всех учетных записей компьютеров, которые не изменили своих паролей с 1 января 2012 года. Результаты приведены на рисунке 5.


Рис. 5. Находим устаревшие учетные записи компьютеров

Другой вариант: предположим, вы хотя бы на функциональном уровне домена Windows 2003. Поставьте фильтр по свойству LastLogontimeStamp. Это значение – число 100 наносекундных интервалов с 1 января, 1601 года, и храниться в GMT, поэтому работа с этим значением слегка сложно:

PS C:> get-adcomputer -filter "LastlogonTimestamp -gt 0"
-properties * | select name,lastlogontimestamp,
@{Name="LastLogon";Expression={[datetime]::FromFileTime
($_.Lastlogontimestamp)}},passwordlastset | Sort
LastLogonTimeStamp

Я взял на себя ответственность и добавил кастомное свойство, которое берет значение LastLogontimeStamp и конвертирует его в привычный формат. На рисунке 6 показан результат.


Рис. 6. Конвертируем значение LastLogonTimeStamp в привычный формат

Чтобы создать фильтр, мне необходимо конвертировать дату, например, 1 января 2012, в корректный формат. Конвертация осуществляется в FileTime:

PS C:> $cutoff=(Get-Date "1/1/2012").ToFileTime()
PS C:> $cutoff
129698676000000000

Теперь я могу использовать эту переменную в фильтре для Get-ADComputer:

PS C:> Get-ADComputer -Filter "(lastlogontimestamp -lt
$cutoff) -or (lastlogontimestamp -notlike '*')" -property
* | Select Name,LastlogonTimestamp,PasswordLastSet

Приведённый код находит те же самые компьютеры, что были показаны на рисунке 5.

Задача 9: Деактивировать учетную запись компьютера

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

PS C:> Disable-ADAccount -Identity "chi-srv01$" -whatif
	What if: Performing operation "Set" on Target "CN=CHI-SRV01,
CN=Computers,DC=GLOBOMANTICS,DC=local".

Или же использовав конвейерное выражение:

PS C:> get-adcomputer "chi-srv01" | Disable-ADAccount

Я также могу использовать мой код, чтобы найти устаревшие учетные записи и все их деактивировать:

PS C:> get-adcomputer -filter "Passwordlastset
-lt '1/1/2012'" -properties *| Disable-ADAccount

Задача 10: Найти компьютеры по типу

Мне также часто задают вопрос, как найти учетные записи компьютеров по типу, например, серверы или рабочие станции. С вашей стороны это требует определенной креативности. В AD нет ничего такого, чтобы отличало сервер от клиента, разве что ОС. Если Ваш компьютер работает под Windows Server 2008, придется слегка сделать несколько дополнительных действий.
Для начала необходимо получить список ОС, а затем осуществляем фильтрацию учетных записей по имеющимся ОС.

PS C:> Get-ADComputer -Filter * -Properties OperatingSystem |
Select OperatingSystem -unique | Sort OperatingSystem

Результаты показаны на рисунке 7.


Рис. 7. Извлечение списка ОС

Я хочу найти все компьютеры, на которых стоит серверная ОС:

PS C:> Get-ADComputer -Filter "OperatingSystem -like
'*Server*'" -properties OperatingSystem,OperatingSystem
ServicePack | Select Name,Op* | format-list

Результаты приведены на рисунке 8.

Как и другими командлетами AD Get, Вы можете настроить поисковые параметры и ограничить запрос отдельными OU, если это необходимо. Все выражения, которые я показал, могут быть интегрированы в большие PowerShell выражения. Например, Вы можете сортировать, группировать, применять фильтры, экспортировать в CSV или создавать и отправлять на почту HTML отчеты – и все это из PowerShell! При этом Вам не придется писать ни единого скрипа.
Вот Вам бонус: отчет о возрасте пароля пользователя (user password-age report), сохраненный в HTML файле:

PS C:> Get-ADUser -Filter "Enabled -eq 'True' -AND
PasswordNeverExpires -eq 'False'" -Properties
PasswordLastSet,PasswordNeverExpires,PasswordExpired |
Select DistinguishedName,Name,pass*,@{Name="PasswordAge";
Expression={(Get-Date)-$_.PasswordLastSet}} |sort
PasswordAge -Descending | ConvertTo-Html -Title
"Password Age Report" | Out-File c:Workpwage.htm

Хотя это выражение может выглядеть слегка пугающим, при минимальном знании PowerShell им легко воспользоваться. И остается лишь последний совет: как определить кастомное свойство под названием PasswordAge. Значение представляет собой промежуток между сегодняшним днем и свойством PasswordLastSet. Затем я сортирую результаты для моего нового свойства. На рисунке 9 показан выход для моего небольшого тестового домена.

Upd:
В посте приведен перевод статьи на портале WindowsITPro
Top 10 Active Directory Tasks Solved with PowerShell

Бонус: PowerShell для целей системного администрирования \ Статьи на Хабре

  • Уведомления об истечении срока действия пароля в Active Directory средствами PowerShell
  • Аудит удаления и доступа к файлам и запись событий в лог-файл средствами Powershell
  • Аудит Active Directory средствами Powershell с оповещением об изменениях. Часть 1 и Часть 2
  • Потерянная группа. Выясняем назначение «странных» групп в AD

А как вы используете PowerShell для того, чтобы упростить вашу работу?

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить пароль пользователя 1с фреш
  • Как изменить пароль подключения к вай фай роутеру
  • Как изменить пароль отпечатка пальца на андроид
  • Как изменить пароль от эцп ключа
  • Как изменить пароль от эппл айди если забыл пароль

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии