Get-Acl
Ruft die Sicherheitsbeschreibung für eine Ressource ab, z. B. für eine Datei oder einen Registrierungsschlüssel.
Syntax
Get-Acl [[-Path] <string[]>] [-Audit] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]
Beschreibung
Mit dem Cmdlet "Get-Acl" werden Objekte abgerufen, die die Sicherheitsbeschreibung für eine Datei oder eine Ressource darstellen. Die Sicherheitsbeschreibung enthält die Zugriffssteuerungslisten (Access Control Lists, ACL) der Ressource. Die ACL gibt die Zugriffsberechtigungen von Benutzern und Benutzergruppen für die Ressource an.
Parameter
-Audit
Ruft die Überwachungsdaten für die Sicherheitsbeschreibung aus der Zugriffssteuerungsliste für das System (System Access Control List, SACL) ab.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Exclude <string[]>
Lässt die angegebenen Elemente aus. Der Path-Parameter wird durch den Wert dieses Parameters qualifiziert. Geben Sie ein Pfadelement oder -muster wie "*.txt" ein. Platzhalter sind zulässig.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Filter <string>
Gibt einen Filter im Format oder in der Sprache des Anbieters an. Der Path-Parameter wird durch den Wert dieses Parameters qualifiziert. Die Syntax des Filters einschließlich der Verwendung von Platzhaltern ist vom Anbieter abhängig. Filter sind effizienter als andere Parameter, da sie beim Abrufen der Objekte vom Anbieter angewendet werden und die Objekte nicht erst nach dem Abrufen von Windows PowerShell gefiltert werden.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Include <string[]>
Ruft nur die angegebenen Elemente ab. Der Path-Parameter wird durch den Wert dieses Parameters qualifiziert. Geben Sie ein Pfadelement oder -muster wie "*.txt" ein. Platzhalter sind zulässig.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Path <string[]>
Gibt den Pfad zu einer Ressource an. Mit Get-Acl wird die Sicherheitsbeschreibung der durch den Pfad angegebenen Ressource abgerufen. Platzhalter sind zulässig. Wenn Sie keinen Path-Parameter angeben, wird die Sicherheitsbeschreibung des aktuellen Verzeichnisses von Get-Acl abgerufen.
Der Parametername ("Path") ist optional.
Erforderlich? |
false |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue, ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-UseTransaction
Schließt den Befehl in die aktive Transaktion ein. Dieser Parameter ist nur gültig, wenn eine Transaktion ausgeführt wird. Weitere Informationen finden Sie unter "about_Transactions".
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.String Sie können eine Zeichenfolge mit einem Pfad über die Pipeline an Get-Acl übergeben. |
Ausgaben |
System.Security.AccessControl Get-Acl gibt ein Objekt zurück, das die abgerufenen ACLs darstellt. Der Objekttyp hängt vom ACL-Typ ab. |
Hinweise
Get-Acl zeigt standardmäßig den Windows PowerShell-Pfad zur Ressource an (<Anbieter>::<Ressourcenpfad>) sowie den Besitzer der Ressource und "Access", eine Liste (Array) der Zugriffssteuerungseinträge in der freigegebenen Zugriffssteuerungsliste (Discretionary Access Control List, DACL) für die Ressource. Die DACL-Liste wird vom Besitzer der Ressource gesteuert.
Wenn Sie das Ergebnis als Liste formatieren ("get-acl | Format-List"), zeigt Windows PowerShell neben dem Pfad, dem Besitzer und der Zugriffsliste noch folgende Felder an:
– Group: Die Sicherheitsgruppe des Besitzers.
– Audit: Eine Liste (Array) der Einträge in der SACL (System Access Control List). In der SACL wird angegeben, für welche Zugriffsversuche von Windows Überwachungsdatensätze generiert werden.
– Sddl: Die Sicherheitsbeschreibung der Ressource, die in einer einzelnen Textzeichenfolge im SDDL (Security Descriptor Definition Language)-Format angezeigt wird. Diese Daten werden von Windows PowerShell mit der GetSddlForm-Methode für Sicherheitsbeschreibungen abgerufen.
Get-Acl wird von Dateisystem- und Registrierungsanbietern unterstützt, sodass Sie mit Get-Acl die ACL von Dateisystemobjekten wie Dateien und Verzeichnissen und Registrierungsobjekten wie Registrierungsschlüsseln und -einträgen anzeigen können.
Beispiel 1
C:\PS>get-acl C:\windows
Beschreibung
-----------
Mit diesem Befehl wird die Sicherheitsbeschreibung des Verzeichnisses "C:\Windows" abgerufen.
Beispiel 2
C:\PS>get-acl C:\Windows\k*.log | format-list -property PSPath, Sddl
Beschreibung
-----------
Mit diesem Befehl werden der Windows PowerShell-Pfad und die SDDL für alle LOG-Dateien im Verzeichnis "C:\Windows" abgerufen, deren Name mit "k" beginnt.
Mithilfe des Cmdlets "Get-Acl" ruft der Befehl Objekte ab, die die Sicherheitsbeschreibungen der einzelnen Protokolldateien darstellen. Die Ergebnisse werden mit einem Pipelineoperator (|) an das Cmdlet "Format-List" gesendet. Vom Befehl wird der Property-Parameter von Format-List verwendet, um nur die PsPath-Eigenschaft und die SDDL-Eigenschaft der einzelnen Sicherheitsbeschreibungsobjekte anzuzeigen.
Listen werden in Windows PowerShell häufig zur Darstellung verwendet, da lange Werte in Tabellen abgeschnitten werden.
SDDL-Werte sind für Systemadministratoren hilfreich, da es sich um einfache Textzeichenfolgen mit allen Informationen aus der Sicherheitsbeschreibung handelt. Diese können einfach weitergegeben, gespeichert und bei Bedarf analysiert werden.
Beispiel 3
C:\PS>get-ACL c:/windows/k*.log -Audit | foreach-object { $_.Audit.Count }
Beschreibung
-----------
Mit diesem Befehl werden die Sicherheitsbeschreibungen der LOG-Dateien im Verzeichnis "C:\Windows" abgerufen, deren Namen mit "k" beginnen. Er ruft die Überwachungsdatensätze mithilfe des Audit-Parameters aus der SACL in der Sicherheitsbeschreibung ab. Anschließend wird mithilfe des For-EachObject-Parameters für jede Datei die Anzahl der zugeordneten Überwachungsdatensätze berechnet. Das Ergebnis ist eine Liste mit der Anzahl der Überwachungsdatensätze für jede Protokolldatei.
Beispiel 4
C:\PS>get-acl -path hklm:\system\currentcontrolset\control | format-list
Beschreibung
-----------
Mit diesem Befehl wird mithilfe von Get-Acl die Sicherheitsbeschreibung des Unterschlüssels "Control" (HKLM\SYSTEM\CurrentControlSet\Control) der Registrierung abgerufen.
Der Unterschlüssel "Control" wird durch den Path-Parameter angegeben. Die mit Get-Acl abgerufene Sicherheitsbeschreibung wird mit dem Pipelineoperator (|) an den Befehl "Format-List" übergeben. Mit diesem Befehl werden die Eigenschaften der Sicherheitsbeschreibung zur besseren Lesbarkeit als Liste formatiert.