chkdsk
Goto Top

AD-User nach Ablaufdatum filtern

Hallo Zusammen,

ich habe ein Skript, welches mir zuverlässig alle AD-User ausgibt, deren Kennwort in ein bestimmten Tagen ausläuft.

Import-Module ActiveDirectory
$Days= Read-Host "Gebe Tage bis Ablauf ein "  
$Date=Get-Date -Format yy-MM-dd((Get-Date).adddays($Days))
$Users=Get-ADUser -filter {(Enabled -eq $True) -and (PasswordNeverExpires -eq $False)} -SearchBase "OU=Users,OU= ,OU= ,OU= ,OU= ,DC= ,DC= " -Properties DisplayName, msDS-UserPasswordExpiryTimeComputed, Mail | Where-Object {$_.DisplayName -ne $null} | Select DisplayName, Mail,@{Name="ExpiryDate";Expression={([datetime]::fromfiletime($_."msDS-UserPasswordExpiryTimeComputed")).DateTime}}   
foreach ($Entry in $Users) {
    $EntryDate = Get-date($Entry.ExpiryDate) -Format yy-MM-dd
    if ($EntryDate -lt $Date) {
        Write-Host "Der User" $entry.DisplayName "mit der Mailadresse:" $Entry.Mail "läuft ab am" $EntryDate -ForegroundColor Red  
    }
    else 
    {
        Write-host "OK: Der User" $entry.DisplayName "mit der Mailadresse:" $Entry.Mail "läuft ab am" $EntryDate -ForegroundColor green  
    }
}
Read-Host

Versuche ich jetzt allerdings einen weiteren Filter hinzuzufügen (siehe unteres Skript) meldet er mir einen Syntaxfehler. Es geht hierbei direkt um den Filter LogonName
Import-Module ActiveDirectory
$Days= Read-Host "Gebe Tage bis Ablauf ein "  
$Date=Get-Date -Format yy-MM-dd((Get-Date).adddays($Days))
$Users=Get-ADUser -filter {(Enabled -eq $True) -and (PasswordNeverExpires -eq $False) -and ("LogonName -like 'RES*'")} -SearchBase "OU=Users,OU= ,OU= ,OU= ,OU= ,DC= ,DC= " -Properties DisplayName, msDS-UserPasswordExpiryTimeComputed, Mail | Where-Object {$_.DisplayName -ne $null} | Select DisplayName, Mail,@{Name="ExpiryDate";Expression={([datetime]::fromfiletime($_."msDS-UserPasswordExpiryTimeComputed")).DateTime}}   
foreach ($Entry in $Users) {
    $EntryDate = Get-date($Entry.ExpiryDate) -Format yy-MM-dd
    if ($EntryDate -lt $Date) {
        Write-Host "Der User" $entry.DisplayName "mit der Mailadresse:" $Entry.Mail "läuft ab am" $EntryDate -ForegroundColor Red  
    }
    else 
    {
        Write-host "OK: Der User" $entry.DisplayName "mit der Mailadresse:" $Entry.Mail "läuft ab am" $EntryDate -ForegroundColor green  
    }
}
Read-Host

Content-Key: 451153

Url: https://administrator.de/contentid/451153

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: SaschaRD
Lösung SaschaRD 14.05.2019 um 07:31:58 Uhr
Goto Top
Morgen,

sieht nach einem Syntaxfehler aus:
$Users=Get-ADUser -filter {(Enabled -eq $True) -and (PasswordNeverExpires -eq $False) -and (LogonName -like "RES*")} -SearchBase   

Gruß, Sascha
Mitglied: chkdsk
chkdsk 14.05.2019 aktualisiert um 08:03:13 Uhr
Goto Top
Vielen Dank! Hat funktioniert. Waren wohl die " " face-smile