Angemeldete Benutzer: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 49: | Zeile 49: | ||
# Optional: Export als CSV | # Optional: Export als CSV | ||
$Ergebnisse | Export-Csv -Path "Benutzer_Anmeldungen.csv" -NoTypeInformation -Encoding UTF8 | $Ergebnisse | Export-Csv -Path "Benutzer_Anmeldungen.csv" -NoTypeInformation -Encoding UTF8 | ||
</pre> | |||
Anmeldungen mit Clientnamen erfassen | |||
<pre> | |||
$DCs = Get-ADDomainController -Filter * | |||
$Ergebnisse = @() | |||
foreach ($DC in $DCs) { | |||
$Events = Get-WinEvent -ComputerName $DC.HostName -LogName Security -FilterXPath "*[System[(EventID=4624)]]" -MaxEvents 1000 | |||
foreach ($Event in $Events) { | |||
$Benutzer = $Event.Properties[5].Value | |||
$Clientname = $Event.Properties[18].Value | |||
$Zeit = $Event.TimeCreated | |||
if ($Benutzer -and $Clientname) { | |||
$Ergebnisse += [PSCustomObject]@{ | |||
Benutzer = $Benutzer | |||
Clientname = $Clientname | |||
Zeitstempel = $Zeit | |||
DC = $DC.HostName | |||
} | |||
} | |||
} | |||
} | |||
$Ergebnisse | Export-Csv -Path "Benutzer_Anmeldungen_mit_Clientname.csv" -NoTypeInformation -Encoding UTF8 | |||
</pre> | </pre> | ||
Version vom 7. August 2025, 07:52 Uhr
Um Herauszufinden welche Benutzer zuletzt angemeldet wwaren, kann über Powershell folgende Abfrage gestartet werden.
Import-Module ActiveDirectory
$dcs = Get-ADDomainController -Filter {Name -like "*"}
$users = Get-ADUser -Filter "Enabled -eq 'True'" -Properties LastLogon
foreach ($user in $users) {
$lastLogon = 0
foreach ($dc in $dcs) {
$logon = (Get-ADUser $user.SamAccountName -Server $dc.HostName -Properties LastLogon).LastLogon
if ($logon -gt $lastLogon) { $lastLogon = $logon }
}
if ($lastLogon -ne 0) {
$dt = [DateTime]::FromFileTime($lastLogon)
Write-Output "$($user.SamAccountName) zuletzt angemeldet am $dt"
}
}
Dies zeigt dann in der Shell eine Zusammenfassung der zuletzt angemeldeten Domänenbenutzer.
Um auszulesen wo welcher und zu welcher Zeit jemand angemeldet war kann dies in Form einer Liste ebenfalls über Powershell ausgegeben werden.
$DCs = Get-ADDomainController -Filter *
$Ergebnisse = @()
foreach ($DC in $DCs) {
$Events = Get-WinEvent -ComputerName $DC.HostName -LogName Security -FilterXPath "*[System[(EventID=4624)]]" -MaxEvents 1000
foreach ($Event in $Events) {
$Benutzer = $Event.Properties[5].Value
$Computer = $Event.Properties[18].Value
$Zeit = $Event.TimeCreated
if ($Benutzer -and $Computer) {
$Ergebnisse += [PSCustomObject]@{
Benutzer = $Benutzer
Computer = $Computer
Zeitstempel = $Zeit
DC = $DC.HostName
}
}
}
}
# Ausgabe als Tabelle
$Ergebnisse | Sort-Object Zeitstempel -Descending | Format-Table -AutoSize
# Optional: Export als CSV
$Ergebnisse | Export-Csv -Path "Benutzer_Anmeldungen.csv" -NoTypeInformation -Encoding UTF8
Anmeldungen mit Clientnamen erfassen
$DCs = Get-ADDomainController -Filter *
$Ergebnisse = @()
foreach ($DC in $DCs) {
$Events = Get-WinEvent -ComputerName $DC.HostName -LogName Security -FilterXPath "*[System[(EventID=4624)]]" -MaxEvents 1000
foreach ($Event in $Events) {
$Benutzer = $Event.Properties[5].Value
$Clientname = $Event.Properties[18].Value
$Zeit = $Event.TimeCreated
if ($Benutzer -and $Clientname) {
$Ergebnisse += [PSCustomObject]@{
Benutzer = $Benutzer
Clientname = $Clientname
Zeitstempel = $Zeit
DC = $DC.HostName
}
}
}
}
$Ergebnisse | Export-Csv -Path "Benutzer_Anmeldungen_mit_Clientname.csv" -NoTypeInformation -Encoding UTF8
Besten Dank an meinen digitalen Mitarbeiter für den Script -> :-)