Генерисање случајних лозинки помоћу ПоверСхелл-а

Приликом креирања корисничких налога у Ацтиве Дирецтори-у, администратор обично поставља јединствену почетну лозинку за сваки налог, која се затим прослеђује кориснику (обично када се корисник први пут пријави, треба да промени ову лозинку помоћу опције „Корисник мора да промени лозинку при следећем пријављивању“ опције АД усерАццоунтЦонтрол). Јер не желите сваки пут да измислите нову случајну лозинку за кориснике или користите скрипту ПоверСхелл да бисте креирали корисничке налоге у АД-у, можете аутоматизовати генерисање јединствених корисничких лозинки помоћу ПоверСхелл-а.

Да бисте генерисали лозинку, можете да користите метод ГенератеПассворд из класе .Нет Систем.Веб.Сецурити.Мемберсхип. Генерирамо сложену лозинку помоћу наредби:

Адд-Типе -АссемблиНаме Систем.Веб
[Систем.Веб.Сецурити.Мемберсхип] :: ГенератеПассворд (10.2)

Метода ГенератеПассворд омогућава генерисање лозинке дуге до 128 знакова. Метода узима два параметра као улаз - дужину лозинке (у мом случају) 10 карактера) и минималан број посебних не-алфанумеричких знакова, попут !, -, $, &, @, #,%, итд. (2 посебан карактер). Као што видите, у мом случају је генерисана лозинка тм-кЗл! уКв према датим аргументима.

Нежељено је користити више од једног или два посебна знака у лозинци, у супротном унесите такву лозинку _ ! $. Р% 2 * [ корисник ће бити нереалан.

Због тога, при креирању нових корисника помоћу ПоверСхелл цмдлета, Нев-АДУсер са јединственом лозинком може се користити са следећим командама:

Адд-Типе -АссемблиНаме Систем.Веб
Нев-АДУсер -Наме "Антон Семенов" -ГивенНаме "Семенов" -Ниме "Антон" -СамАццоунтНаме "асеменов" -УсерПринципалНаме "асеменов@винитпро.ру" -Патх "ОУ = Корисници, ОУ = МСК, ДЦ = винитпро, ДЦ = цом "-АццоунтПассворд ([Систем.Веб.Сецурити.Мемберсхип] :: ГенератеПассворд (10,2)) -Енаблед $ труе

Такође можете да употребите метод ГенератеПассворд када ресетујете лозинку корисника Ацтиве Дирецтори-а..

Ако ваша организација користи јаке смернице за лозинку, у неким случајевима лозинка генерисана методом ГенератеПассворд можда не испуњава захтеве политике за лозинку вашег домена. Пре него што кориснику доделите лозинку, можете да проверите да ли је у складу са смерницама за сложеност лозинке. Наравно, нема смисла провјеравати је ли дужина и непостојање корисничке пријаве у лозинци. Можете да проверите да ли сложеност лозинке испуњава најмање 3 захтева политике. Лозинка мора да испуњава захтеве за сложеност (лозинка мора да садржи 3 типа знакова са листе: бројеви, мала слова, велика слова и посебни знакови). Ако лозинка није прошла верификацију, морате је поново генерисати.

Добио сам такву функцију ПоверСхелл која генерише нову лозинку и проверава усклађеност са захтевима сложености:

Функција Генерате-Цомплек-Домаин-Пассворд ([Параметер (Обавезно = $ труе)]] [инт] $ ПассЛенгхт)

Адд-Типе -АссемблиНаме Систем.Веб
$ захтевПассед = $ фалсе
до
$ невПассворд = [Систем.Веб.Сецурити.Мемберсхип] :: ГенерирајтеПассворд ($ ПассЛенгхт, 1)
Иф (($ невПассворд -цматцх "[А-З \ п Лу \ с]") '
-и ($ невПассворд -цматцх "[а-з \ п Лл \ с]") '
-и ($ невПассворд -матцх "[\ д]") '
-и ($ невПассворд -матцх "[^ \ в]")
)

$ захтевПассед = $ Тачно

Док је ($ захтевПассед -ек $ фалсе)
врати $ невПассворд

Да бисте генерисали лозинку од 4 знака са најмање једним посебним знаком, покрените наредбу:

Генерирање-комплексна-лозинка домена (4)

Ова скрипта ће увек произвести лозинку која одговара критеријумима сложености домена..