排除禁用用户 Get-aduser

Fré*_*eau 2 powershell

我想从这个脚本中排除禁用的用户,但似乎无法找到我如何尝试 -exclude 没有运气。

如果你也有更好的方法来公开建议

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 test@test -from noreply@test.com -Subject "Votre mot de passe va expirer dans $DaysLeft jours" -body $WarnMsg  -smtpserver x.x.x.x -BodyAsHtml -Encoding $enc }

    }

   }
}
Run Code Online (Sandbox Code Playgroud)

res*_*987 5

只需将Get-AdUser 中的过滤器从*更改为'enabled -eq "true"'

Get-ADUser -filter 'enabled -eq "true"' -properties ...
Run Code Online (Sandbox Code Playgroud)