PowerShell Abfrage AD - Last Login + Gruppen
Hallo,
Vielleicht kann mir jemand weiter helfen. Da ich die PowerShell bisher kaum gebraucht habe, die letzten Jahre als Linux SysAdmin unterwegs war, stehe ich gerade etwas an. Google hat mir bisher auch irgendwie nicht weitergeholfen.
Es geht um folgendes:
Ich habe ein Script erstellt indem ich in AD eine Abfrage einer CN mache in der User eingetragen sind (-GetADGroupMember). Das leite ich weiter zu Get-ADUser wo ich nach allen User suche die sich länger als 180 Tage nicht angemeldet haben und das gebe ich in eine csv Datei aus.
Wenn ich die Gruppe ändere, also die CN, dann habe ich immer die gleichen Ergebnisse was für mich klar bedeutet, er ignoriert mein -GetADGroupMember. Ich verstehe nur leider nicht warum, weil er es durchführt aber keine Fehlermeldung gibt.
Hat jemand einen Tipp für mich wo ich den Fehler habe oder eine Idee wo ich nach weiteren Informationen suchen kann? Auf MS habe ich nicht viel zu -GetADGroupMember gefunden und in den beiden Büchern die ich habe, steht auch nicht sonderlich viel dazu drin. Ich vermute mal einfach es ist ein Denkfehler Meinerseits.
Danke euch schon mal für eure Hilfe!
Vielleicht kann mir jemand weiter helfen. Da ich die PowerShell bisher kaum gebraucht habe, die letzten Jahre als Linux SysAdmin unterwegs war, stehe ich gerade etwas an. Google hat mir bisher auch irgendwie nicht weitergeholfen.
Es geht um folgendes:
Ich habe ein Script erstellt indem ich in AD eine Abfrage einer CN mache in der User eingetragen sind (-GetADGroupMember). Das leite ich weiter zu Get-ADUser wo ich nach allen User suche die sich länger als 180 Tage nicht angemeldet haben und das gebe ich in eine csv Datei aus.
Wenn ich die Gruppe ändere, also die CN, dann habe ich immer die gleichen Ergebnisse was für mich klar bedeutet, er ignoriert mein -GetADGroupMember. Ich verstehe nur leider nicht warum, weil er es durchführt aber keine Fehlermeldung gibt.
Get-ADGroupMember -Identity "CNGRUPPENNAME"| Get-ADUser | Where-Object {$_.name -eq "*" -and $_.Enabled -like $true} |Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 180.00:00:00 |
Where {$_.Enabled -eq "True"} |
sort -property LastLogonDate -desc | Export-Csv .\test\CNGRUPPENNAME,csv -NoTypeInformation
Hat jemand einen Tipp für mich wo ich den Fehler habe oder eine Idee wo ich nach weiteren Informationen suchen kann? Auf MS habe ich nicht viel zu -GetADGroupMember gefunden und in den beiden Büchern die ich habe, steht auch nicht sonderlich viel dazu drin. Ich vermute mal einfach es ist ein Denkfehler Meinerseits.
Danke euch schon mal für eure Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-Key: 666912
Url: https://administrator.de/contentid/666912
Ausgedruckt am: 29.03.2024 um 06:03 Uhr
7 Kommentare
Neuester Kommentar
Moin,
dein "Search-ADAccount" macht in der Pipe keinen Sinn, ...
Vorschlag:
-oder-
lg,
Slainte
dein "Search-ADAccount" macht in der Pipe keinen Sinn, ...
Vorschlag:
Get-ADGroupMember -Identity "CNGRUPPENNAME"| Get-ADUser | Where-Object {$_.Enabled -eq $true} |
sort -property LastLogonDate -desc | Export-Csv .\test\CNGRUPPENNAME,csv -NoTypeInformation
Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 180.00:00:00 | Where-Object {$_.Enabled -eq $true} | sort -property LastLogonDate -desc | Export-Csv .\test\CNGRUPPENNAME,csv -NoTypeInformation
lg,
Slainte
Hi,
wenn nicht unbedingt Powershell verwendet werden soll gibt's auch ein Tool für.
http://www.cjwdev.co.uk/Software/ADTidy/Info.html
Gruß
wenn nicht unbedingt Powershell verwendet werden soll gibt's auch ein Tool für.
http://www.cjwdev.co.uk/Software/ADTidy/Info.html
Gruß
Moin.
oder als weitere Variante stattdessen mit Search-ADAccount
Viele Wege führen nach Rom .
Gruß w.
$members = Get-ADGroupMember 'GRUPPE'
Get-ADUser -Filter {Enabled -eq $true} -Properties LastLogonDate,Enabled | ?{$_.LastLogonDate -lt (get-date).AddDays(-180) -and $_.SamAccountName -in $members.SamAccountName} | select Name,SamAccountName,LastLogonDate | export-csv .\test\GRUPPENNAME.csv -Delimiter ";" -NoType -Encoding UTF8
$members = Get-ADGroupMember 'GRUPPE'
Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 180.00:00:00 | ?{$_.Enabled -and $_.SamAccountName -in $members.SamAccountName} | select Name,SamAccountName,LastLogonDate | export-csv .\test\GRUPPENNAME.csv -Delimiter ";" -NoType -Encoding UTF8
Gruß w.
Zitat von @gweep76:
OK ... liegt daran das TimeSpan und LastLogonDate zwei verschiedene Dinge sind. Bei manchen User steht es dann dabei.
Nee, liegt daran das LastLogonDate und LastLogonTimeStamp bei mehreren DCs unterschiedlich aktualisiert/synchronisiert werden:OK ... liegt daran das TimeSpan und LastLogonDate zwei verschiedene Dinge sind. Bei manchen User steht es dann dabei.
https://www.active-directory-faq.de/2021/01/lastlogon-vs-lastlogontimest ...