Just Enough Administration (JEA)

Allgemeine Infos

Just Enough Administration (JEA) ist eine Sicherheitstechnik von PowerShell für delegierte Administration: Alles, was sich per PowerShell verwalten lässt, kannst Du über JEA an Benutzer ohne Administratorrechte delegieren. Ein JEA-Endpunkt legt fest, welche Cmdlets, Funktionen, Parameterwerte und externen Programme eine Rolle nutzen darf. Microsoft nennt als typisches Beispiel DNS-Administratoren, die ohne JEA Mitglied der Domänen-Admins sein müssten, um DNS auf einem Domain Controller zu reparieren.

JEA setzt das Prinzip der minimalen Rechte (Least Privilege) um. Die Befehle laufen unter einem temporären virtuellen Konto oder einem gruppenverwalteten Dienstkonto (gMSA), der verbindende Benutzer selbst bleibt unprivilegiert. Transkripte und Ereignisprotokolle zeigen, wer welchen Befehl ausgeführt hat.

JEA benötigt PowerShell 5.0 oder neuer und ist ab Windows Server 2016 und Windows 10 Version 1607 vorinstalliert. Abgrenzung: PowerShell-Remoting ist der Transportweg, auf dem JEA aufsetzt. Privileged Access Management (PAM) bzw. Entra PIM vergibt privilegierte Rollen zeitlich begrenzt, JEA begrenzt dagegen den Befehlsumfang innerhalb einer Sitzung. Mit Desired State Configuration (DSC) und der JEA-DSC-Ressource verteilst Du Endpunkte einheitlich auf viele Server.

Funktionsweise & Details

Ein JEA-Endpunkt besteht aus Rollenfunktionsdateien und einer registrierten Sitzungskonfiguration. Der Ablauf:

  1. Rollenfunktion: New-PSRoleCapabilityFile erzeugt eine .psrc-Datei. Darin geben VisibleCmdlets, VisibleFunctions, VisibleExternalCommands und VisibleProviders einzelne Befehle frei, Parameter lassen sich per ValidateSet oder ValidatePattern auf bestimmte Werte einschränken. Vor PowerShell 6 muss die Datei im Ordner RoleCapabilities eines Moduls im $Env:PSModulePath liegen.
  2. Sitzungskonfiguration: New-PSSessionConfigurationFile -SessionType RestrictedRemoteServer erzeugt eine .pssc-Datei. RoleDefinitions ordnet AD-Gruppen den Rollen zu, RunAsVirtualAccount oder GroupManagedServiceAccount bestimmt die ausführende Identität, TranscriptDirectory den Ablageort der Transkripte. RequiredGroups verlangt zusätzliche Gruppenmitgliedschaften, etwa für Smartcard- oder MFA-Anmeldung.
  3. Registrierung: Test-PSSessionConfigurationFile validiert die Datei, Register-PSSessionConfiguration -Path -Name registriert den Endpunkt. Dabei startet der WinRM-Dienst neu und trennt alle laufenden Remoting-Sitzungen.
  4. Verbindung: Der Benutzer verbindet sich per Enter-PSSession, New-PSSession oder Invoke-Command mit -ConfigurationName. Die Sitzung läuft im NoLanguage-Modus, Variablen sind dort nicht erlaubt. Import-PSSession stellt die freigegebenen Befehle als lokale Proxybefehle bereit.
  5. Kontrolle: Get-PSSessionCapability zeigt die effektiv freigegebenen Befehle eines Benutzers. Hat ein Benutzer mehrere Rollen, gilt die freizügigste Kombination aller Rollen.

Vorteile & Nutzen

  • Weniger Administratoren: Helpdesk und Fachabteilungen erledigen Routineaufgaben, ohne Mitglied der lokalen Administratoren oder der Domänen-Admins zu werden, das verkleinert die Angriffsfläche für Lateral Movement
  • Feingranulare Freigabe: Einschränkungen bis auf Parameterwerte (z. B. nur Neustart der Dienste DNS und Spooler) verhindern, dass ein Befehl für andere Zwecke genutzt wird
  • Nachvollziehbarkeit: Jede Sitzung erhält ein eigenes virtuelles Konto (z. B. WinRM_VA_1_contoso_alice), Transkripte zeigen jeden ausgeführten Befehl
  • Keine Zusatzsoftware: JEA ist Teil von Windows PowerShell und baut auf dem vorhandenen WinRM-Remoting auf

Praxisbeispiel

Ein Maschinenbauer mit 300 Mitarbeitenden an zwei Standorten lässt den First-Level-Support bisher mit einem geteilten Admin-Konto Druckwarteschlangen und Dienste auf den Servern neu starten. Die IT baut einen JEA-Endpunkt mit der Rolle Helpdesk, die nur Get-Service und Restart-Service für den Spooler und den Dienst der Warenwirtschaft erlaubt. Die Helpdesk-Gruppe verbindet sich mit ihren normalen Konten, die Befehle laufen unter virtuellen Konten, die Transkripte landen in einem für Benutzer gesperrten Ordner. Das geteilte Admin-Konto wird abgeschaltet, und bei Rückfragen zeigt das Transkript, wer wann welchen Dienst neu gestartet hat.

Worauf sollte man achten?

  • Keine Platzhalter in Rollen verwenden: 'Microsoft.PowerShell.Management\*-Process' gibt auch Start-Process frei und damit beliebige Programme mit Administratorrechten
  • Befehle wie Invoke-Expression, Start-Process, New-Service, Add-ADGroupMember oder Add-LocalGroupMember sowie die Provider FileSystem und Certificate nicht freigeben, sie hebeln die Einschränkung aus
  • Virtuelle Konten sind standardmäßig lokale Administratoren, auf Domain Controllern sogar Domänen-Admins: Mit RunAsVirtualAccountGroups auf schmalere Gruppen begrenzen
  • JEA schützt nicht vor Benutzern, die bereits Administratoren sind, sie umgehen JEA per RDP, MMC oder uneingeschränktem Endpunkt: Dauerhafte Admin-Mitgliedschaften parallel abbauen
  • Registrierung und Änderungen starten WinRM neu: Im Wartungsfenster ausrollen und die .psrc-Dateien nur für vertrauenswürdige Admins beschreibbar halten

Lizenz & Verfügbarkeit

JEA ist Bestandteil von Windows PowerShell und ohne Zusatzlizenz nutzbar: vorinstalliert ab Windows Server 2016 und Windows 10 Version 1607, auf Windows Server 2012 und 2012 R2 mit WMF 5.1 voll funktionsfähig. Die JEA-DSC-Ressource und Beispielkonfigurationen stellt Microsoft auf GitHub bereit. Stand: Oktober 2026.

Fazit

JEA ist das passende Werkzeug, wenn Du wiederkehrende Admin-Aufgaben auf Windows-Servern delegieren willst, ohne Admin-Rechte zu verteilen. Starte mit einer eng geschnittenen Rolle ohne Platzhalter und baue dauerhafte Admin-Mitgliedschaften parallel ab.