be627a08a5
init
37 lines
1.4 KiB
PowerShell
37 lines
1.4 KiB
PowerShell
# PS 7
|
|
|
|
# Erstelle eine gültige Loginsession mit Graph
|
|
# adm Akkount erforderlich
|
|
# ReadOnly Rechte auf AUDIT und Das gesammte Verzeichnis
|
|
Connect-MgGraph -Scopes AuditLog.Read.All, Directory.Read.All -NoWelcome
|
|
|
|
# Abfrage der gruppenmailadresse z.B. 20q2-abc-1234@groups.fhdw.de
|
|
$mail = Read-Host -Prompt "Bitte Gruppen-Mailadresse eingeben"
|
|
|
|
# Gruppe anhand Mailadresse finden
|
|
$grp = Get-MgGroup -Filter "mail eq '$mail'"
|
|
|
|
if( $null -eq $grp || '' -eq $grp ) {
|
|
$grp = Get-MgDirectoryDeletedItemAsGroup -Filter "mail eq '$mail'"
|
|
}
|
|
|
|
# Eigentliche Graph abfrage -> Audit Bereich
|
|
# Audit-Events abrufen (Delete/Restore) da diese Events nicht direkt an der Gruppe hängen
|
|
$events = Get-MgAuditLogDirectoryAudit `
|
|
-Filter "targetResources/any(t:t/id eq '$($grp.Id)') and (activityDisplayName eq 'Delete group' or activityDisplayName eq 'Restore group')" `
|
|
-Top 10 `
|
|
-Property "activityDateTime,activityDisplayName,result,initiatedBy,targetResources"
|
|
|
|
# Ausgabe einkürzen
|
|
$events | ForEach-Object {
|
|
[pscustomobject]@{
|
|
Zeitpunkt = $_.activityDateTime
|
|
Aktion = $_.activityDisplayName
|
|
Ergebnis = $_.result
|
|
GruppeDisplayName = $_.targetResources[0].displayName
|
|
GruppeType = $_.targetResources[0].type
|
|
GruppeId = $_.targetResources[0].id
|
|
AusgeführtVonUser = $_.initiatedBy.user.userPrincipalName
|
|
}
|
|
} | Format-Table -AutoSize
|