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.
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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 451153
Url: https://administrator.de/contentid/451153
Printed on: April 18, 2024 at 09:04 o'clock
2 Comments
Latest comment