Р. Эрик Кисер

Независимо от того, проводите ли вы тест на проникновение или работаете администратором, часто необходимо автоматизировать повторяющиеся задачи с помощью сценариев. В этой статье я покажу вам, как написать сценарий, который использует учетные данные администратора домена для установки политики истечения срока действия пароля для списка пользователей в Active Directory (AD). Этот сценарий специально нацелен на политику истечения срока действия пароля.

Запросить имя сервера, на котором работает AD:

$server_name = Read-Host "Enter the server name that has Active Directory running: "Prompt for the list of users:

Подскажите список пользователей:

$users = Read-Host "Enter a comma-separated list of users: "

Это предложит пользователю ввести имя пользователя и пароль, которые имеют достаточные разрешения для внесения изменений в AD.

Получите учетные данные для пользователя:

$cred = Get-Credential

Эта команда устанавливает для свойства PasswordNeverExpires указанных пользователей значение $True.

Создайте команду PowerShell для установки политики истечения срока действия пароля:

$cmd = "Set-ADUser -Server $server_name -Identity $users -PasswordNeverExpires $True"

Пароль необходимо преобразовать в безопасную строку, чтобы гарантировать, что он не будет храниться в памяти в виде открытого текста.

Преобразуйте пароль в безопасную строку:

$secpasswd = ConvertTo-SecureString $cred.Password -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($cred.Username, $secpasswd)

Создайте новый удаленный сеанс PowerShell с указанным сервером AD, используя метод аутентификации CredSSP и учетные данные, хранящиеся в $mycreds.

Установите удаленный сеанс PowerShell с сервером AD:

$ADSession = New-PSSession -Authentication CredSSP -ComputerName $server_name -Credential $mycreds

Следующий шаг выполняет команду Set-ADUser в удаленном сеансе PowerShell, передавая команду в качестве аргумента блоку скрипта.

Выполните команду PowerShell:

Invoke-Command -Session $ADSession -ScriptBlock {param($cmd)& $cmd} -ArgumentList $cmd

Наконец, нам нужно закрыть удаленный сеанс

Remove-PSSession $ADSession

Помните, что для работы этого скрипта вам потребуются соответствующие учетные данные. Получайте удовольствие, и удачной охоты или администрирования.