1 Pluspunkt 0 Minuspunkte
Wie kann ich alle Logon und Logoff Events aus dem Windows Eventlog in Powershell auslesen und die einzelnen Felder (Zeit, User, ..) speichern?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Hier ist ein Beispiel wie du die Events 

  • 4624 (erfolgreiche Anmeldung)
  • 4634 (Abmeldung)
  • 4647 (geplante Abmeldung)
  • 4648 (Anmeldeversuch mit expliziten Anmeldeinformationen)

mit Powershell auslesen kannst.

$logEvents = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624,4634,4647,4648}  | ForEach-Object {
	
	$eventData = [xml]$_.ToXml()
	$eventProps = $eventData.Event.EventData.Data

	# Benutzername extrahieren
	$username = ($eventProps | Where-Object { $_.Name -eq "TargetUserName" }).'#text'
	if (-not $username) { $username = "Unknown" }

	[PSCustomObject]@{
		Timestamp  = $_.TimeCreated.ToString("yyyy-MM-dd HH:mm:ss")
		Type       = $_.Id 
		User       = $username
		Message = $_.Message
	}
}
von (1.3k Punkte)