"Вменяемый" генератор паролей.
@root_itНедавно мне потребовалось написать скрипт который бы генерировал одноразовые "безопасные" пароли для пользователей в Active Directory, которые бы соответствовали политике домена и при этом необходимо было сделать эти пароли относительно несложными.
Первое что пришло в голову - это найти ASCII таблицу, выбрать из них необходимые символы и добавить в командлет powershell "Get-Random"
-join (Get-Random -InputObject (33..47 + 48..57 + 60..64 + 65..90 + 97..122) -Count 10 | %{[char]$_})
Вроде бы на первый взгляд неплохо...НОоооо !!!!
Такой пароль не всегда будет генерироваться сложным. Поэтому для командлета Set-ADAccountPasseword нужно будет придумывать костыль типа:
...................................................
while(1)
{
$pass = -join (Get-Random -InputObject (33..47 + 48..57 + 60..64 + 65..90 + 97..122) -Count 10 | %{[char]$_})
try {Set-ADAccountPasseword $pass ... -erroraction 'stop'} # Если пароль не соответствует политике безопасности, то командлет генерирует ошибку
catch {next}
break
}
...................................................
Поэтому я немного попыхтел и сделал на коленке вот эту конструкцию:
Скрипт несложный, поэтому я особо воздержался от комментариев.
Всем удачи !