2016-06-07 6 views
1

Hallo Ich habe das folgende Skript, das E-Mails Benutzer, deren Passwörter in $ daysleftonpwd ablaufen werden, aber nicht sicher, wie in einem "nur wenn Benutzer hat das Passwort ablaufen lassen" Bedeutung will ich nicht wollen E-Mail-Benutzer, deren Passwort auf den nächsten Ablauf festgelegt ist.Powershell QADUser Password Ablauf

Get-QADGroupMember -Identity TEAM_GROUP | % { 
$name = $_.Name 
$email = $_.Email 
$daysleftonpwd = ((Get-QADUser -SizeLimit 0 -SearchRoot $OU -Identity $_.SamAccountName | select PasswordExpires).PasswordExpires - $date | select Days).Days 
if (((Get-QADUser -Identity $_.SamAccountName | select PasswordExpires).PasswordExpires - $date).Days -lt $threshold){ 

    Write-Host "$Name would be emailed using $email because password is less than $threshold" 
    $y = $y + "<br>$name</br>" 
    mailuser 
} 

Irgendwelche Ideen?

Antwort

1

Eines der Felder, die Get-QADUser zurückgibt, ist PasswordNeverExpires:

PS C:\> (Get-QADUser regularuser).PasswordNeverExpires 
False 
PS C:\> (Get-QADUser specialuser).PasswordNeverExpires 
True 

leicht genug sein sollte, dass in Ihrer Skripte zu verwenden, zu testen. Es gibt andere Möglichkeiten, es direkt zu überprüfen (Sie müssen sowohl UserAccountControl - https://msdn.microsoft.com/en-us/library/ms680832%28v=vs.85%29.aspx UND msDS-User-Account-Control-Berechnet - https://msdn.microsoft.com/en-us/library/ms677840%28v=vs.85%29.aspx), aber das ist ein bisschen hässlicher ...