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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 356621
Url: https://administrator.de/contentid/356621
Ausgedruckt am: 26.11.2024 um 16:11 Uhr
3 Kommentare
Neuester Kommentar
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