При створенні облікових записів користувачів в Active Directory адміністратор зазвичай задає кожного облікового запису унікальний початковий пароль, який потім повідомляється користувачеві (зазвичай при першому вході у користувача потрібно змінити цей пароль за допомогою опції “User must change password at next logon” атрибута AD userAccountControl). Оскільки вам не хочеться кожен раз вигадувати новий випадковий пароль користувачам, або ви використовуєте PowerShell скрипт для закладу облікових хзапісей в AD, ви можете автоматизувати генерацію унікальний паролів користувачів за допомогою PowerShell.

Для генерації пароля можна скористатися методом GeneratePassword з .Net класу System.Web.Security.Membership. Згенеруємо складний пароль командами:

Add-Type -AssemblyName System.Web
[System.Web.Security.Membership]::GeneratePassword(10,2)

згенерувати унікальний пароль з powershell System.Web.Security.Membership - GeneratePassword

Метод GeneratePassword дозволяється генерувати пароль довжиною до 128 символів. Метод приймає на вхід два параметра – довжина пароля (в моєму випадку 10 символів) і мінімальне кількість не буквено-цифрових спецсимволов, таких як!, -, $, &, @, #,% і т.д. (2 спецсимволи). Як ви бачите, в моєму випадку був згенерований пароль tm-qZl!uQv згідно із заданими аргументів.

Небажано використовувати в паролі більше одного-двох спец символів, інакше набрати такий пароль _ {! $. R% 2 *[ пользователю будет нереально.

Таким образом при заведении новых пользователей с помощью командлета PowerShell New-ADUser с уникальным паролем можно использовать следующими командами:

Add-Type -AssemblyName System.Web
New-ADUser -Name "Anton Semenov" -GivenName "Semenov" -Surname "Anton" -SamAccountName "asemenov" -UserPrincipalName "asemenov@winitpro.ru" -Path "OU=Users,OU=MSK,DC=winitpro,DC=ru" –AccountPassword ([System.Web.Security.Membership]:: GeneratePassword (10,2)) -Увімкнено $ true

Також ви можете використовувати метод GeneratePassword при скиданні пароля користувачів Active Directory.

Якщо у вашій організації використовуються жорсткі політики паролів, в деяких випадках пароль, згенерований методом GeneratePassword може не відповідати вимогам вашої доменної пральний політиці. Перед тим, як призначити пароль користувачу ви можете перевірити, що він відповідає політикам складності пароля. Природно, перевіряти його на довжину і відсутності логіна користувача в паролі сенсу немає. Ви можете перевірити, що складність пароля відповідає як мінімум 3 вимогам політики Пароль повинен відповідати вимогам складності (Пароль повинен містити 3 типи символів зі списку: цифри, символи в нижньому регістрі, символи в верхньому регістрі і спецсимволи). Якщо пароль не пройшов перевірку, потрібно згенерувати його ще раз.

У мене вийшла така PowerShell функція, яка генерує новий пароль і перевіряє його на відповідність вимогам складності:

Function Generate-Complex-Domain-Password ([Parameter(Mandatory=$true)][int]$PassLenght)
{
Add-Type -AssemblyName System.Web
$requirementsPassed = $false
do {
$newPassword=[System.Web.Security.Membership]::GeneratePassword($PassLenght,1)
If ( ($newPassword -cmatch "[A-Zp{Lu}s]") `
-and ($newPassword -cmatch "[a-zp{Ll}s]") `
-and ($newPassword -match "[d]") `
-and ($newPassword -match "[^w]")
)
{
$requirementsPassed=$True
}
} While ($requirementsPassed -eq $false)
return $newPassword
}

Для генерації пароля з 4 символів з мінімум одним спецсимволи виконайте команду:

Generate-Complex-Domain-Password (4)

poweshell функція перевірки сложості пароля

Даний скрипт на виході завжди буде видавати пароль, який відповідає критеріям складності домену.

Leave a Reply

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