При создании учетных записей пользователей в 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)
Метод 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 "[email protected]" -Path "OU=Users,OU=MSK,DC=winitpro,DC=ru" –AccountPassword ([System.Web.Security.Membership]::GeneratePassword(10,2)) -Enabled $true
Также вы можете использовать метод GeneratePassword при сбросе пароля пользователей Active Directory.
Если в вашей организации используются жесткие политики паролей, в некоторых случаях пароль, сгенерированный методом GeneratePassword может не соответствовать требованиям вашей доменной парольной политике . Перед тем, как назначить пароль пользователю вы можете проверить, что он соответствует политикам сложности пароля. Естественно, проверять его на длину и отсутствия логина пользователя в пароле смысла нет. Вы можете проверить, что сложность пароля соответствует как минимум 3 требованиям политики Password must meet complexity requirements (пароль должен содержать 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-Z\p{Lu}\s]") `
-and ($newPassword -cmatch "[a-z\p{Ll}\s]") `
-and ($newPassword -match "[\d]") `
-and ($newPassword -match "[^\w]")
)
{
$requirementsPassed=$True
}
} While ($requirementsPassed -eq $false)
return $newPassword
}
Для генерации пароля из 4 символов с минимум одним спецсимволом выполните команду:
Generate-Complex-Domain-Password (4)
Данный скрипт на выходе всегда будет выдавать пароль, соответствующий критериям сложности домена.
Генератор паролей в Windows
К паролю для учетной записи стоит относиться серьезно, ведь он вляется основной (а иногда и единственной) защитой ваших данных от несанкционированного доступа. Поэтому пароль должен во первых быть, а во вторых — соответствовать хотя бы минимальным требованиям сложности.
Безопасный пароль должен иметь длину не меньше 8 символов и содержать в себе буквы в разных регистрах, цифры и служебные символы (!, $, #, % и т.п.), т.е. выглядеть примерно так: P@$$w0rd.
В операционных системах Windows есть возможность сгенерировать «правильный» пароль для учетной записи автоматически, с помощью команды net user. Для примера откроем командную консоль (в Vista и выше — с правами администратора) и введем команду:
net user Kirill /random
Эта команда сгенерирует для учетной записи Kirill новый пароль, соответствующий системным требованиям сложности. Сгенерированный пароль заменяет текущий пароль пользователя, поэтому его необходимо сразу же запомнить или записать.
По умолчанию net user работает с локальными учетными записями, но можно генерить пароли и для доменных пользователей. Для этого надо либо запускать команду на контроллере домена, либо на любом компьютере, являющемся членом домена, с ключом /domain:
net user Kirill /Domain /random
Изменения паролей необходимо производить под учетной записью, обладающей необходимыми полномочиями. Это значит, что для локального компьютера надо входить в группу локальных администраторов, в домене — в группу Domain Admins или иметь соответствующие полномочия.
Генерация паролей работает во всех более-менее современных ОС от Microsoft, начиная с Windows XP\Server 2003 и заканчивая Windows 8\Server 2012.
А если набрать команду net user %random% /add /random, то будет создана учетная запись пользователя со случайным именем и паролем 🙂
- Remove From My Forums
Генератор паролей для командной строки
-
Общие обсуждения
-
Всем приветствия. Сваял вот такую вот функцию — генератор паролей для командной строки, может кому пригодится. Конструкция примитивно проста, берем учетку которая отключена (можно завести свою, можно использовать «Гость» как это сделал я). Собственно получаем
пароль из стандартной команды для локальных учеток «net user %USERNAME% /random». Делал специально для DSADD USER, что б создаваемому пользюку генерить пароль. Но есть один нюанс: в генерируемых паролях функция /random использует всю клавиатуру, включая такие
символы: @$_:? и т.п. для пользователей, сами понимаете, это «суууупер сложно». В общем можно ли как то настроить виндовую функцию генерации паролей на то что б там был только большие и маленькие символы алфавита, ну и цифры еще. Этого вполне б хватило. Может
это как то через реестр делается?А вот собственно и сам генератор:
@echo off
chcp 1251
for /f «tokens=6 usebackq» %%i in (`net user Гость /random`) do (
set pass=%%i
)
cls
echo %pass%
pauseМожет есть другие предложения того, как можно генерить пользователям пароли автоматически, желательно не используя утилит сторонних разработчиков или на крайний случай бесплатные утилиты.
При создании учетных записей, необходимо задавать им уникальный пароль, соответствующий заданным требованиям информационной системы, политики информационной безопасности и других регламентных документов. Бывают конечно случаи, когда всем назначают пароль Password, но думаю таких с каждым годом все меньше. Традиционный способ — это набирать на клавиатуре псевдослучайную последовательность символов, которая по рекомендациям должна отвечать следующим требованиям:
- Мимнимальная длина пароля — не менее и\или не более опеределенного количества символов.
- Пароль должен содержать (как правило 3 из 4х наборов)
- малые буквы латинского алфавита (a-z),
- заглавные буквы латинского алфавита (A-Z),
- арабские цифры (0-9)
- специальные символы
( . , : ; ? ! * + % - < > @ [ ] { } / \ _ {} $ # )
- Быть уникальным для каждой учетной записи
- Периодически изменяться, либо по истечении времени, либо при компрометации
В современных тенденциях, при создании новых учетных записей, пароль уже, как правило, не генерируется человеком, а используются автоматизированные средства по автоматической генерации паролей, исходя из заданных требований.
Здесь приходят на помощь системы:
- управления жизненным циклом учетных записей
- online генерации паролей
- самописное ПО
- скрипты
Ниже будет показан пример простого скрипта, который мождно использовать для генерации случайных паролей, с заданными требованиями по его длине. Конечно, каждый для себя может написать свою собственную функцию по генерации паролей, это не так сложно, но
у комании Microsoft в пространстве имен System.
Membership.GeneratePassword(Int32, Int32)
. Этот метод генерирует случайный пароль указанной длины. У этого метода 2 параметра:
1. Число символов в генерируемом пароле. Допустимый диапазоне от 1 до 128.
2. Минимальное число не буквенно-цифровых символов (например, @, #, !, %, & и т. д.) в создаваемом пароле (но не более чем значение первого параметра).
Используя это метод в PowerShell весь скрипт генерации пароля из 10 символов с минимум двумя спецсимволами будет состоять всего из двух строк:
Add-Type -AssemblyName System.Web
[System.Web.Security.Membership]::GeneratePassword(10, 2)
Если необходимо чуть более гибкое решение, с генерацией бОльшего количества паролей. то скпирт можно слегка модернизировать. Параметры вынести в переменные, и задать генерацию нескольких паролей, то скрипт преобразуется следубющим образом:
Add-Type -AssemblyName System.Web
$NumberOfCharacters = 15 # Количество символов в пароле
$NumberOfSpecialCharacters=1 # Минимальное Количество спец символов в пароле
$NumberOfPasswords=10 # Количество паролей
1..$NumberOfPasswords| % {[System.Web.Security.Membership]::GeneratePassword($NumberOfCharacters,$NumberOfSpecialCharacters)}
В случаереализации автоматического создание учетных записей, скрипт можно преобразовать в функцию, и уже вызывать функцию с параметрами:
add-type -AssemblyName System.Web
function GeneratePassword{
param(
[int]$NumberOfCharacters = 12, # Количество символов пароле (по умолчанию 12)
[int]$NumberOfSpecialCharacters = 1 # МИНИМАЛЬНОЕ количество спецсимволов в пароле (по умолчанию 1)
)
[System.Web.Security.Membership]::GeneratePassword($NumberOfCharacters,$NumberOfSpecialCharacters)
}
GeneratePassword 20
К паролю для учетной записи стоит относиться серьезно, ведь он является основной (а иногда и единственной) защитой ваших данных от несанкционированного доступа. Поэтому пароль должен во первых быть, а во вторых — соответствовать хотя бы минимальным требованиям сложности.
Безопасный пароль должен иметь длину не меньше 8 символов и содержать в себе буквы в разных регистрах, цифры и служебные символы (!, $, #, % и т.п.), т.е. выглядеть примерно так: P@S$w0Rd.
В операционных системах Windows есть возможность сгенерировать «правильный» пароль для учетной записи автоматически, с помощью команды net user. Для примера откроем командную консоль (в Vista и выше — с правами администратора) и введем команду:
net user Alex /random
Эта команда сгенерирует для учетной записи Alex новый пароль, соответствующий системным требованиям сложности. Сгенерированный пароль заменяет текущий пароль пользователя, поэтому его необходимо сразу же запомнить или записать.
По умолчанию net user работает с локальными учетными записями, но можно генерить пароли и для доменных пользователей. Для этого надо либо запускать команду на контроллере домена, либо на любом компьютере, являющемся членом домена, с ключом /domain:
net user ИмяПользователя /Domain /random
Изменения паролей необходимо производить под учетной записью, обладающей необходимыми полномочиями. Это значит, что для локального компьютера надо входить в группу локальных администраторов, в домене — в группу Domain Admins или иметь соответствующие полномочия.
Генерация паролей работает во всех более-менее современных ОС от Microsoft, начиная с Windows XP\Server 2003 и заканчивая Windows 8\Server 2012.
А если набрать команду net user %random% /add /random, то будет создана учетная запись пользователя со случайным именем и паролем.
Чтобы сбросить пароль наберите пустые кавычки после имени пользователя
net user Alex «»
Чтобы поменять пароль введите
net user имя_пользователя новый_пароль
Нажмите на звезду, чтобы оценить!
Прочитали: 383