Как настроить гранулированные политики паролей или PSO (password setting object) через Power Shell
Что такое PSO (гранулированные пароли) мы узнали тут, про то, как это настроить в 2008R2 описано тут в 2012 тут. Хардкорщики скажут, что GUI не их путь, для удовлетворения таких есть и для них путь. Как вы знаете, возможности Windows PowerShell практически безграничны. Большинство задач, которые выполняются посредством графического интерфейса можно автоматизировать, написав скрипт и гранулированные политики паролей тут не исключение. Для управления гранулированными политиками паролей непосредственно при помощи PowerShell используются четыре командлета. Посмотрим, как можно добавить новый объект PSO средствами PowerShell.
Прежде всего, открыв консоль PowerShell вам необходимо импортировать модуль Active Directory, так как в противном случае вы просто не сможете воспользоваться возможностями создания PSO. Для этого необходимо выполнить следующий командлет:
Import-Module ActiveDirectory
После того как модуль будет импортирован, вы сможете воспользоваться всеми преимуществами PowerShell, предназначенными по администрированию Active Directory. Для создания объекта PSO используется командлет New-ADFineGrainedPasswordPolicy. Этот командлет не позволяет изменить все сто с лишним атрибутов создаваемого объекта, однако, вы можете создать объект, согласно всем шагам мастера, о которых шла речь в предыдущем разделе этой статьи. Однако, вы можете как создавать объекты PSO при помощи соответствующих параметров, так и создавать объекты на основании заранее предустановленного шаблона, используя параметр –Instance или создавать объекты на основании значений, импортируемых из CSV-файла.
Например, чтобы создать объект PSO простейшим, первым методом, можно выполнить в PowerShell следующее:
New-ADFineGrainedPasswordPolicy -Name «Marketing_PSO» -Precedence2 -ComplexityEnabled $true -Description «ОбъектPSOдлягруппымаркетологов»-DisplayName «Marketing_PSO» -LockoutDuration «0.8:00:00″ -LockoutObservationWindow «0.00:15:00″ -LockoutThreshold 5 -MaxPasswordAge «45.00:00:00″ -MinPasswordAge «42.00:00:00″ -MinPasswordLength 8 -PasswordHistoryCount 25 -ReversibleEncryptionEnabled $false
Разберем параметры, которые могут быть сразу не так очевидны. Параметр –Precedence отвечает за приоритет создаваемого объекта, параметр –LockoutObservationWindow – это максимальный интервал времени между неудачными попытками входа перед тем, как счетчик будет сброшен, а параметр –ReversibleEncryptionEnabled отвечает за обратимое шифрование. Как видите, все просто.
Остальные командлеты, как вы, скорее всего, уже догадались, предназначены для поиска, изменения, а также удаления существующих объектов PSO.
Приведу лишь один пример использования этих командлентов, предназначенный для поиска всех созданных ранее объектов PSO. В этом случае вам следует выполнить следующее:
Get-ADFineGrainedPasswordPolicy -Filter ‘Name -like «*»‘ | ft Name, Precedence,MaxPasswordAge,MinPasswordLength –A
Как видно на следующей иллюстрации, у меня было обнаружено два объекта PSO, которые были созданы ранее в этой статье:
В целом, гранулированные политики паролей предоставляют вам возможности, которые могут пригодиться в том случае, если требуется, чтобы у пользователей, состоящих в различных группах безопасности, были параметры паролей, отличные от указанных по умолчанию для всех пользователей в домене. Но и даже при применении объектов PSO, ваши пользователи все равно смогут создавать простые пароли. Например, пароль P@ssw0rd и ему подобные могут подойти по всем условиям, однако, этот пароль легко взламывается.