Projekte / Active Directory Delegation Wizard

Active Directory Delegation Wizard

AD-Berechtigungen standardisiert per PowerShell-Vorlagen vergeben.

★ 30 aktualisiert 12. April 2026 GitHub ↗

Aktuelle Version v1.4.0 · 12. April 2026

Release-Details auf GitHub ↗

Delegation in Active Directory ist mächtig, aber fehleranfällig: Rechte werden per Klick im ADUC vergeben, selten dokumentiert und kaum reproduzierbar. Dieser Wizard vergibt AD-Berechtigungen stattdessen über wiederverwendbare JSON-Vorlagen — nachvollziehbar, versionierbar und auf jeder OU identisch anwendbar. Anwenden, prüfen und zurückrollen geschieht in Sekunden; kontextabhängige Sicherheitswarnungen schützen vor risikoreichen Delegationen.

Was das Tool macht

  • Wendet Delegations-Templates idempotent auf eine Ziel-OU an — wiederholbar und einheitlich.
  • Standardisiert Tiering- und Berechtigungsmodelle über die ganze Domäne hinweg.
  • Protokolliert Änderungen und macht sie bei Bedarf per Rollback rückgängig.
  • Prüft jede Berechtigung gegen eine Risiko-Datenbank und warnt vor dem Anwenden.

Schnellstart

# Alle verfügbaren Templates auflisten
.\Invoke-ADDelegationTemplate.ps1 -ShowTemplates -TemplatePath .\templates

# Template 101 auf eine OU anwenden
.\Invoke-ADDelegationTemplate.ps1 `
  -Identity    "Contoso\Helpdesk-Berlin" `
  -Path        "OU=UsersBerlin,DC=contoso,DC=local" `
  -TemplateIDs 101 `
  -TemplatePath .\templates

# Mit Änderungsprotokoll anwenden (für späteres Rollback)
.\Invoke-ADDelegationTemplate.ps1 `
  -Identity    "Contoso\Helpdesk-Berlin" `
  -Path        "OU=UsersBerlin,DC=contoso,DC=local" `
  -TemplateIDs 101,102 `
  -TemplatePath .\templates `
  -LogChanges `
  -LogPath "$env:USERPROFILE\DelegationLog.log"

Wird -TemplatePath weggelassen, lädt das Skript automatisch aus dem Unterverzeichnis templates\ neben dem Skript.

Parameter

ParameterTypBeschreibung
-IdentitystringAD-Prinzipal (Benutzer/Gruppe), der die Rechte erhält
-PathstringZielobjekt im distinguishedName-Format (z. B. eine OU)
-TemplateIDsint[]Eine oder mehrere anzuwendende Template-IDs
-TemplatePathstringPfad zu einer JSON-Datei oder einem Verzeichnis mit JSON-Dateien
-ShowTemplatesswitchAlle geladenen Templates anzeigen (gruppiert nach Objekttyp → Kategorie)
-IncludeDetailsswitchRegeln und Quelldatei je Template einblenden
-LogChangesswitchÄnderungsprotokoll aktivieren (benötigt -LogPath)
-LogPathstringPfad zur Logdatei
-WarnSeveritystringMindest-Risikostufe für Warnungen: Critical, High, Medium (Standard), Low
-DisableSecurityWarningswitchAlle Warnungen und die interaktive Bestätigung unterdrücken

Anwendung

# Detailansicht der Templates (inkl. Regeln & AppliesTo)
.\Invoke-ADDelegationTemplate.ps1 -ShowTemplates -IncludeDetails -TemplatePath .\templates

# Mehrere Templates auf einmal anwenden
.\Invoke-ADDelegationTemplate.ps1 `
  -Identity    "Helpdesk-Team" `
  -Path        "OU=UsersBerlin,DC=contoso,DC=local" `
  -TemplateIDs 101,102,103 `
  -TemplatePath .\templates

Sicherheitswarnungen

security\security-reference.json enthält eine kuratierte Risiko-Datenbank für AD-Attribute und erweiterte Rechte. Beim Anwenden gleicht das Skript jede Berechtigung kontextabhängig pro Objekttyp gegen diese Datenbank ab und warnt bei Einträgen, die -WarnSeverity (Standard Medium) erreichen oder übersteigen. Eine [Y/N]-Abfrage blockiert bis zur Bestätigung — mit -DisableSecurityWarning lässt sie sich für nicht-interaktive bzw. CI-Nutzung überspringen.

StufeBedeutung
CriticalDirekte Übernahme von Domäne oder Objekt möglich
HighRechteausweitung oder Persistenz möglich
MediumLaterale Bewegung oder Informationsabfluss
LowGeringes Missbrauchspotenzial
# Nur bei kritischen Delegationen warnen
.\Invoke-ADDelegationTemplate.ps1 `
  -Identity    "Helpdesk-Team" `
  -Path        "OU=UsersBerlin,DC=contoso,DC=local" `
  -TemplateIDs 100 `
  -TemplatePath .\templates `
  -WarnSeverity Critical

Änderungen rückgängig machen

Protokollierte Änderungen lassen sich jederzeit einsehen und zurückrollen:

# Alle protokollierten Änderungen anzeigen
Show-ADDelegationTemplateChanges -LogFilePath "$env:USERPROFILE\DelegationLog.log"

# Alle protokollierten Änderungen zurückrollen
Show-ADDelegationTemplateChanges -LogFilePath "$env:USERPROFILE\DelegationLog.log" | `
  Revert-ADDelegationTemplate

# Nur ein bestimmtes Template zurückrollen
Show-ADDelegationTemplateChanges -LogFilePath "$env:USERPROFILE\DelegationLog.log" | `
  Where-Object { $_.TemplateID -eq "102" } | `
  Revert-ADDelegationTemplate

Mitgelieferte Vorlagen

Die Templates liegen als JSON-Dateien im Ordner templates\:

DateiObjekttypBeispiele
100-user.jsonBenutzerPasswort zurücksetzen, Eigenschaften bearbeiten, Konten verwalten
200-group.jsonGruppenMitgliedschaft verwalten, Gruppen anlegen/löschen
300-computer.jsonComputerDomänenbeitritt, Passwort zurücksetzen
400-organizationalUnit.jsonOrganisationseinheitenOUs anlegen, umbenennen, verwalten
500-groupPolicy.jsonGruppenrichtlinienGPOs ver-/entknüpfen, RSoP lesen
600-wmi.jsonWMI-FilterWMI-Filter anlegen, löschen, zuweisen
700-inetOrgPerson.jsoninetOrgPersonLDAP-/schemabasierte Umgebungen

Die genauen Template-IDs und Regeln je Datei zeigt -ShowTemplates -IncludeDetails.

Wichtige Änderungen in v1.4

  • GenericAll aus den Standard-Templates entfernt. Vorlagen wie 100, 200, 300, 600, 700 nutzen jetzt granulare Rechte (ReadProperty|WriteProperty, CreateChild|DeleteChild usw.) statt GenericAll. Wer GenericAll braucht, legt ein eigenes Template an.
  • Template-IDs neu vergeben. Mehrere IDs haben sich verschoben (z. B. Benutzer auf 100152, Gruppen 200214, Computer 300312). Vor dem Update mit -ShowTemplates abgleichen.
  • Interaktive Sicherheitsbestätigung. Bei risikoreichen Eigenschaften erscheint eine Warnung mit [Y/N]-Abfrage; für CI-Läufe -DisableSecurityWarning setzen.

Quelle

Vorlagen-Grundlage @Microsoft: Appendix O: Active Directory Delegation Wizard File. Die jeweils aktuelle Fassung samt JSON-Schema und Rights-Migrationsleitfaden liegt im GitHub-Repository.

Download-Archiv