Du kannst die Aktionen aus dem Eventlog extrahieren. Die relevanten Ereignis-IDs für AD-Änderungen sind
- 5136: Ein Objekt wurde geändert
- 5137: Ein Objekt wurde erstellt
- 5138: Ein Objekt wurde undeleted
- 5139: Ein Objekt wurde bewegt
# Definieren Sie den Zeitraum für die Überwachung (z.B. der letzte Tag)
$startDate = (Get-Date).AddDays(-1)
$counter = 0
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=@(5136, 5137, 5138, 5139); StartTime=$startDate} | ForEach-Object {
$event = [xml]$_.ToXml()
$eventID = $_.Id
$timeCreated = $_.TimeCreated
$user = ($event.Event.EventData.Data | Where-Object { $_.Name -eq "SubjectUserName" }).'#text'
$objectType = ($event.Event.EventData.Data | Where-Object { $_.Name -eq "ObjectClass" }).'#text'
$objectDN = ($event.Event.EventData.Data | Where-Object { $_.Name -eq "ObjectDN" }).'#text'
$attributeChanged = ($event.Event.EventData.Data | Where-Object { $_.Name -eq "AttributeLDAPDisplayName" }).'#text'
$newValue = ($event.Event.EventData.Data | Where-Object { $_.Name -eq "AttributeValue" }).'#text'
#if($user -eq "SYSTEM") { continue }
# Ausgabe der Informationen über die Änderungen
Write-Output "Ereignis-ID: $eventID"
Write-Output "Zeit: $timeCreated"
Write-Output "Benutzer: $user"
Write-Output "Objekttyp: $objectType"
Write-Output "Objekt DN: $objectDN"
Write-Output "Geändertes Attribut: $attributeChanged"
Write-Output "Neuer Wert: $newValue"
Write-Output "-----------------------------"
$counter += 1
}
$counter