Angemeldete Benutzer: Unterschied zwischen den Versionen

Aus HB9FDZ
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:
}
}
</pre>
</pre>
Dies zeigt dann in der Shell eine zusammenfassung der zuletzt angemeldeten Domänenbenutzer.
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.
<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
        $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
</pre>
 
Besten Dank an meinen digitalen Mitarbeiter für den Script -> :-)
[[Kategorie:Active Directory]]
[[Kategorie:Active Directory]]

Version vom 7. August 2025, 07:44 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

Besten Dank an meinen digitalen Mitarbeiter für den Script -> :-)