Get-Acl
Ruft die Sicherheitsbeschreibung für eine Ressource ab, z. B. eine Datei oder einen Registrierungsschlüssel.
Syntax
Get-Acl
[[-Path] <String[]>]
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Acl
-InputObject <PSObject>
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Acl
[-LiteralPath <String[]>]
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Beschreibung
Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.
Das Get-Acl
Cmdlet ruft Objekte ab, die den Sicherheitsdeskriptor einer Datei oder Ressource darstellen. Die Sicherheitsbeschreibung enthält die Zugriffssteuerungslisten (Access Control Lists, ACLs) der Ressource. Die ACL gibt die Berechtigungen an, über die Benutzer und Benutzergruppen für den Zugriff auf die Ressource verfügen.
Ab Windows PowerShell 3.0 können Sie den InputObject-Parameter Get-Acl
verwenden, um die Sicherheitsbeschreibung von Objekten abzurufen, die keinen Pfad besitzen.
Beispiele
Beispiel 1: Abrufen einer ACL für einen Ordner
In diesem Beispiel wird der Sicherheitsdeskriptor des C:\Windows
Verzeichnisses abgerufen.
Get-Acl C:\Windows
Beispiel 2 : Abrufen einer ACL für einen Ordner mithilfe von Wildcards
In diesem Beispiel wird der PowerShell-Pfad und die SDDL für alle .log
Dateien im C:\Windows
Verzeichnis, deren Namen mit s
beginnen, ab.
Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, Sddl
Der Befehl verwendet das Get-Acl
Cmdlet, um Objekte abzurufen, die die Sicherheitsbeschreibungen jeder Protokolldatei darstellen. Es verwendet einen Pipelineoperator (|
), um die Ergebnisse an das Format-List
Cmdlet zu senden. Der Befehl verwendet den Property-Parameter , Format-List
um nur die PsPath - und SDDL-Eigenschaften jedes Sicherheitsdeskriptorobjekts anzuzeigen.
Listen werden häufig in PowerShell verwendet, da lange Werte in Tabellen abgeschnitten angezeigt werden.
Die SDDL-Werte sind für Systemadministratoren wertvoll, da sie einfache Textzeichenfolgen sind, die alle Informationen im Sicherheitsdeskriptor enthalten. Daher können sie einfach übergeben und gespeichert und bei Bedarf analysiert werden.
Beispiel 3 – Abrufen der Anzahl der Überwachungseinträge für eine ACL
In diesem Beispiel werden die Sicherheitsdeskriptoren der .log
Dateien im C:\Windows
Verzeichnis abgerufen, deren Namen mit s
.
Get-Acl C:\Windows\s*.log -Audit | ForEach-Object { $_.Audit.Count }
Er verwendet den Parameter "Audit ", um die Überwachungsdatensätze aus der SACL im Sicherheitsdeskriptor abzurufen.
Anschließend wird das ForEach-Object
Cmdlet verwendet, um die Anzahl der Überwachungsdatensätze zu zählen, die jeder Datei zugeordnet sind. Das Ergebnis ist eine Liste von Zahlen, die die Anzahl der Überwachungsdatensätze für jede Protokolldatei darstellen.
Beispiel 4 : Abrufen einer ACL für einen Registrierungsschlüssel
In diesem Beispiel wird das Get-Acl
Cmdlet verwendet, um den Sicherheitsdeskriptor des Unterschlüssels "Control" (HKLM:\SYSTEM\CurrentControlSet\Control
) der Registrierung abzurufen.
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
Der Parameter Path gibt den Unterschlüssel "Control" an. Der Pipelineoperator (|
) übergibt den Sicherheitsdeskriptor, Get-Acl
der an den Format-List
Befehl gelangt, der die Eigenschaften des Sicherheitsdeskriptors als Liste formatiert, sodass sie leicht zu lesen sind.
Beispiel 5 – Abrufen einer ACL mit **InputObject**
In diesem Beispiel wird der InputObject-Parameter Get-Acl
verwendet, um die Sicherheitsbeschreibung eines Speichersubsystemobjekts abzurufen.
Get-Acl -InputObject (Get-StorageSubSystem -Name S087)
Parameter
-Audit
Ruft die Überwachungsdaten für die Sicherheitsbeschreibung aus der System-Zugriffssteuerungsliste (SACL) ab.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Exclude
Lässt die angegebenen Elemente aus. Der Wert dieses Parameters qualifiziert den Path-Parameter . Geben Sie ein Pfadelement oder Einmuster ein, z *.txt
. B. . Platzhalter sind zulässig.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | True |
-Filter
Gibt einen Filter im Format oder in der Sprache des Anbieters an. Der Wert dieses Parameters qualifiziert den Path-Parameter . Die Syntax des Filters einschließlich der Verwendung von Platzhaltern ist vom Anbieter abhängig. Filter sind effizienter als andere Parameter, da der Anbieter sie beim Abrufen der Objekte anwendet, anstatt powerShell nach dem Abrufen der Objekte zu filtern.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | True |
-Include
Ruft nur die angegebenen Elemente ab. Der Wert dieses Parameters qualifiziert den Path-Parameter . Geben Sie ein Pfadelement oder Einmuster ein, z *.txt
. B. . Platzhalter sind zulässig.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | True |
-InputObject
Ruft die Sicherheitsbeschreibung für das angegebene Objekt ab. Geben Sie eine Variable ein, die das Objekt enthält, oder geben Sie einen Befehl ein, mit dem das Objekt abgerufen wird.
Sie können ein Objekt, außer einem Pfad, nicht an Get-Acl
. Verwenden Sie stattdessen den InputObject-Parameter explizit im Befehl.
Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.
Typ: | PSObject |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-LiteralPath
Gibt den Pfad zu einer Ressource an. Im Gegensatz zu Path wird der Wert des LiteralPath-Parameters genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.
Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.
Typ: | String[] |
Aliase: | PSPath |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Path
Gibt den Pfad zu einer Ressource an. Get-Acl
ruft den Sicherheitsdeskriptor der Ressource ab, die durch den Pfad angegeben ist. Platzhalter sind zulässig. Wenn Sie den Parameter "Path " weglassen, Get-Acl
wird der Sicherheitsdeskriptor des aktuellen Verzeichnisses abgerufen.
Der Parametername (Path) ist optional.
Typ: | String[] |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | True |
Eingaben
Sie können eine Zeichenfolge weiterleiten, die einen Pfad zu diesem Cmdlet enthält.
Ausgaben
Dieses Cmdlet gibt ein Objekt zurück, das die acLs darstellt, die es abruft. Der Objekttyp richtet sich nach der ACL-Typ.
Hinweise
Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.
Zeigt standardmäßig Get-Acl
den PowerShell-Pfad zur Ressource (<provider>::<resource-path>
), den Besitzer der Ressource und "Access" an, eine Liste (Array) der Zugriffssteuerungseinträge in der diskretionären Zugriffssteuerungsliste (DACL) für die Ressource. Die DACL-Liste wird durch den Besitzer der Ressource gesteuert.
Wenn Sie das Ergebnis als Liste formatieren (Get-Acl | Format-List
), zusätzlich zu dem Pfad, Besitzer und Zugriffslisten, zeigt PowerShell die folgenden Eigenschaften und Eigenschaftswerte an:
- Gruppe: Die Sicherheitsgruppe des Besitzers.
- Überwachung: Eine Liste (Array) von Einträgen in der Systemzugriffssteuerungsliste (SACL). Die SACL gibt die Arten von Zugriffsversuchen an, für die Windows Überwachungsdatensätze generiert.
- Sddl: Der Sicherheitsdeskriptor der Ressource, die in einer einzelnen Textzeichenfolge im Format "Security Descriptor Definition Language" angezeigt wird. PowerShell verwendet die GetSddlForm-Methode von Sicherheitsdeskriptoren, um diese Daten abzurufen.
Da Get-Acl
das Dateisystem und registrierungsanbieter die ACL von Dateisystemobjekten wie Dateien und Verzeichnissen sowie Registrierungsobjekten wie Registrierungsschlüsseln und Einträgen anzeigen können, können Get-Acl
Sie die ACL von Dateisystemobjekten anzeigen.