Узнайте, истек ли срок действия пароля или когда он истекает для пользователя в определенном подразделении

Есть ли какая-либо команда powershell, которая выводит пользователей, у которых истек срок действия паролей у определенной организационной единицы (OU).

Если это так, может ли он быть объединен в сценарии с другой командой, которая выводит время, когда он истекает для всех пользователей в конкретном подразделении?

Спасибо.

3 ответа

Решение

Получить отчет об истечении срока действия пароля пользователя AD из определенного подразделения:

Import-Module ActiveDirectory
Get-ADUser -SearchBase "OU=TestOU,DC=TestDomain,DC=Local" -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "SamAccountName","msDS-UserPasswordExpiryTimeComputed" | 
  Select-Object -Property "SamAccountName", @{Name="Password Expiry Date"; Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} |
    Format-Table

Вы также можете воспользоваться помощью этого блога, который позволяет отправлять пользователям по электронной почте уведомления об истечении срока действия пароля активной директории, а также планировать отчеты, оповещения и соответствовать всем задачам, связанным с истечением срока действия пароля, чтобы сэкономить ваше время: http://www.symantec.com/ подключить / блоги / как-автоматизируют-изменения пароля-уведомление-через-почту

Чтобы отобразить включенных пользователей с просроченными паролями в определенном подразделении:

Get-ADUser -filter {Enabled -eq $True -and PasswordExpired -eq $True} -SearchBase "OU=Finance,OU=Users,DC=yourdomain,DC=com"

Чтобы отобразить включенных пользователей в определенном подразделении с датами истечения срока действия пароля:

Get-ADUser -filter {Enabled -eq $True} -SearchBase "OU=Finance,OU=Users,DC=yourdomain,DC=com" –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed"
|
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

Пользователи с просроченными паролями:

Get-ADUser -SearchBase "ou=MyOU,dc=MyDomain,dc=Local" -filter * -properties Name, PasswordNeverExpires, PasswordExpired, PasswordLastSet | where {$_.Enabled -eq "True"} | where {$_.PasswordNeverExpires -eq $false} | where {$_.passwordexpired -eq $true}

Чтобы узнать время истечения срока действия пароля, вы должны получить свойство PasswordLastSet и добавить MaxPasswordAge из политики домена (например, $DefaultmaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge).

Пожалуйста, ознакомьтесь со сценарием уведомления об истечении срока действия пароля на сайте TechNet: https://gallery.technet.microsoft.com/Password-Expiry-Email-177c3e27 Хороший пример для данной темы.

Другие вопросы по тегам