Blog-Tipp: Die ACL eines Systemdienstes abfragen

Es ist meines Wissens nicht möglich, die Zugriffsberechtigungen für einen Systemdienst abzufragen. Der folgende Befehl gibt daher nur vermeintlich, die ACL des WinRM-Dienstes zurück (der dazu ausführen muss), sondern die ACL der Datei svchost.exe.

Get-Ciminstance win32_service -filter "Name='Winrm'" | Select-Object @{n="Id";e={$_.ProcessId}} | Get-Process | Get-ACL

Ein Pendant zu sc.exe sdshow winrm gibt es daher nicht.

Ein sehr guter Blogbeitrag von PowerShell-Experten Ron Edwards zeigt, wie es gehen könnte:

Das Beispiel macht aber auch deutlich, dass es insgesamt eine aufwändige Angelegenheit ist, da API-Funktionen des Betriebssystems eingebunden werden müssen. Für ad hoc-Abfragen kommt eine Umsetzung daher nicht in Frage.

Bleibt also nur sc.exe mit dem sdshow-Parameter, das aber nur die DACL zurückgibt. Und wie macht man aus dem SDDL-Text eine „lesbare“ Ausgabe? Ganz einfach mit dem ConvertFrom-SddlString-Cmdlet.

sc.exe sdshow winrm | Select-Object -Skip 1 | ConvertFrom-SddlString

Wer spontan darauf kommt, warum das Select-Object-Cmdlet mit -Skip 1 erforderlich ist, ist ein heißer Anwärter auf ein „PoshAdmin“-T-Shirt falls es das eines Tages geben sollte;)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.