ActiveDirectory - Alle User mit Ablaufdatum herausfiltern
Hallo Leute!
Bin in PowerShell noch nicht der Größus und es bedarf hin und wieder der tatkräftigen Unterstützung euererseits..! Ich habe mir ein Skript zusammgebastelt, welches folgendes erledigen soll:
In unserem AD gibt es Nutzerobjekte mit Ablaufdatum. Ich möchte alle Nutzerobjekte in eine Datei schreiben lassen, die ein solches Ablaufdatum haben (AD >> Nutzerobjekt >> Eigenschaften >> Konto -> Konto läuft ab). Zusätzlich wäre es schön, wenn das Ablaufdatum auch mit in eine Datei geschrieben würde.
Allerdings bin ich mir nicht sicher, ob ich auf dem Holzweg bin. Zumindest läuft es schon mal nicht...
Bin in PowerShell noch nicht der Größus und es bedarf hin und wieder der tatkräftigen Unterstützung euererseits..! Ich habe mir ein Skript zusammgebastelt, welches folgendes erledigen soll:
In unserem AD gibt es Nutzerobjekte mit Ablaufdatum. Ich möchte alle Nutzerobjekte in eine Datei schreiben lassen, die ein solches Ablaufdatum haben (AD >> Nutzerobjekt >> Eigenschaften >> Konto -> Konto läuft ab). Zusätzlich wäre es schön, wenn das Ablaufdatum auch mit in eine Datei geschrieben würde.
Allerdings bin ich mir nicht sicher, ob ich auf dem Holzweg bin. Zumindest läuft es schon mal nicht...
$filter = "(&(objectClass=user)(objectCategory=person))"
$Allusers = New-Object system.DirectoryServices.DirectorySearcher([adsi]"",$filter)
$Allusers.pagesize = 10000
$users=$Allusers.FindAll()
$Ausgabedatei = "C:\Ausgabedatei.txt"
foreach($suser in $users)
{
$user = [adsi]"LDAP://$($suser.properties.item(""distinguishedname""))"
$AcctExp = $user.accountExpires.Value
$lngValue = $user.ConvertLargeIntegerToInt64($AcctExp)
#Wenn das ExpirationDate kleiner als das höchste Datum ist, dann läuft das Benutzerkonto irgendwann ab.
If ($lngValue -lt [DateTime]::MaxValue.Ticks)
{
$user | Add-content $Ausgabedatei
$lngValue = 0
}
} #Ende der Schleife
Please also mark the comments that contributed to the solution of the article
Content-Key: 356621
Url: https://administrator.de/contentid/356621
Printed on: May 8, 2024 at 06:05 o'clock
3 Comments
Latest comment
Import-Module ActiveDirectory
Get-Aduser -Filter * -Properties AccountExpires | select Name,@{n='Expires';e={[DateTime]::FromFileTime($_.accountexpires)}} | ?{$_.Expires -ge (get-date)} | export-csv './expiring_users.csv -Delimiter ";" -NoType -Encoding UTF8
$NeverExpires = 9223372036854775807
Get-ADUser -filter {Enabled -eq $True } –Properties "DisplayName", "AccountExpires" | Where-Object {$_.AccountExpires -ne $NeverExpires -and $_.AccountExpires -ne 0 -and $_.AccountExpires -ne $null } |
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."AccountExpires")}} | export-csv "./expuser.csv" -Delimiter ";" -NoType -Encoding UTF8