2016-11-08 3 views
0

Ich möchte deaktiviert Benutzer aus diesem Skript auszuschließen, aber nicht finden kann, wie ich die -exclude ohne Glück versuchen.Ausschließen Deaktivieren Benutzer Get-Aduser

wenn Sie eine bessere Art und Weise haben sie in offen Vorschlag

import-module ActiveDirectory; 

$maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge 

Get-ADUser -filter * -properties PasswordLastSet, PasswordExpired, PasswordNeverExpires, EmailAddress, GivenName | foreach { 

    $today=get-date 
    $UserName=$_.GivenName 
    $Email=$_.EmailAddress 

    if (!$_.PasswordExpired -and !$_.PasswordNeverExpires) { 

     $ExpiryDate=$_.PasswordLastSet + $maxPasswordAgeTimeSpan 
     $DaysLeft=($ExpiryDate-$today).days 

     if ($DaysLeft -lt 10 -and $DaysLeft -gt 0){ 

     $WarnMsg = " 
<p style='font-family:arial'>Bonjour $UserName,</p> 
<p style='font-family:arial'>Votre mot de passe va expirer dans $DaysLeft jours, S.V.P. changer votre mot de passe.</p> 
<p style='font-family:arial'>Merci.</p>" 

$enc = New-Object System.Text.utf8encoding 
ForEach ($email in $_.EmailAddress) { 
send-mailmessage -to [email protected] -from [email protected] -Subject "Votre mot de passe va expirer dans $DaysLeft jours" -body $WarnMsg -smtpserver x.x.x.x -BodyAsHtml -Encoding $enc } 

    } 

    } 
} 

Antwort

2

einfach Ihre Filter ändern bei Get-AdUser* zu 'enabled -eq "true"'

Get-ADUser -filter 'enabled -eq "true"' -properties ... 
+1

Dies führt viel besser zu tun. Wir sollten '-Filter * 'wo immer möglich vermeiden, da dies jedes Mal die gesamte AD ausgibt. Und seit "aktiviert" ist eines seiner Kriterien ... – Xalorous

Verwandte Themen