Я всё никак остановиться не могу
.
Ну а сегодня я останавливаюсь на теме пользователей и срока жизни их паролей в AD (Active Directory)
Что такое Active Directory структура и применение я очень давно описал и на текущий момент эти записи так и не утратили актуальность.
Иногда поступают разного рода задачи, например некоторые пользователи хотят регулярно знать когда (или через какое время) истекает их пароль учетной записи. Так как подходов запросов очень много, то я приведу просто небольшой пример кода, который при указании определенного OU перечислит всех пользователей и укажет через какое время пароль их учетной записи истекает.
Clear-Host
Import-Module ActiveDirectory
$OU = "OU=IT Department,DC=olorg,DC=ru"
$ADAccounts = Get-ADUser -LDAPFilter "(objectClass=user)" -searchbase $OU -properties PasswordExpired, extensionAttribute3, PasswordNeverExpires, PasswordLastSet, Mail, Enabled | Where-object {$_.Enabled -eq $true -and $_.PasswordNeverExpires -eq $false}
Foreach ($ADAccount in $ADAccounts)
{
$accountFGPP = Get-ADUserResultantPasswordPolicy $ADAccount
if ($accountFGPP -ne $null)
{
$maxPasswordAgeTimeSpan = $accountFGPP.MaxPasswordAge
}
else
{
$maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
}
$ExpiryDate = $ADAccount.PasswordLastSet + $maxPasswordAgeTimeSpan
$TodaysDate = Get-Date
$DaysToExpire = $ExpiryDate - $TodaysDate
$DaysToExpireDD = $DaysToExpire.ToString() -Split ("\S{17}$")
Write-Host $ADAccount.SamAccountName " Через - " $DaysToExpireDD " - или - " $DaysToExpire
}
Спасибо, надеюсь и сегодня я в очередной раз Вам был полезен.
![OLORG[dot]ru OLORG[dot]ru](http://olorg.ru/application/maxsite/templates/olorgru/assets/images/logos/olorg-logo.png)