Скрипт для массовой установки признака «Срок пароля не ограничен» в Active Directory. Скрипт проставляет вот такую галку всем у кого её нет:

Содержимое скрипта:
[System.Console]::Title = "PasswordNeverExpires"
$file = "C:\users.txt"
Get-ADUser -Filter "Enabled -eq 'True' -AND PasswordNeverExpires -eq 'False'" | Select SAMAccountName | sort SAMAccountName | ft -HideTableHeaders | out-string | ForEach-Object { $_.Trim() } | Out-File $file
$users = (Get-Content "C:\users.txt").Trim()
Foreach ($user in $users) { Set-ADUser $user -PasswordNeverExpires:$True }
Remove-Item $file
Кстати, можно сделать наоборот: убрать у всех галку и тем самым ограничить срок действия пароля. Например, вот так:
[System.Console]::Title = "PasswordExpires"
$file = "C:\users.txt"
Get-ADUser -Filter "Enabled -eq 'True' -AND PasswordNeverExpires -eq 'True'" | Select SAMAccountName | sort SAMAccountName | ft -HideTableHeaders | out-string | ForEach-Object { $_.Trim() } | Out-File $file
$users = (Get-Content "C:\users.txt").Trim()
Foreach ($user in $users) { Set-ADUser $user -PasswordNeverExpires:$False }
Remove-Item $file
Выгрузка списка пользователей в файл мне помогала проводить отладку скрипта. Конечно, от этой (явно лишней) логики хотелось бы избавиться, но это уже как-нибудь потом…