Р. Эрик Кисер
Независимо от того, проводите ли вы тест на проникновение или работаете администратором, часто необходимо автоматизировать повторяющиеся задачи с помощью сценариев. В этой статье я покажу вам, как написать сценарий, который использует учетные данные администратора домена для установки политики истечения срока действия пароля для списка пользователей в 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
Помните, что для работы этого скрипта вам потребуются соответствующие учетные данные. Получайте удовольствие, и удачной охоты или администрирования.