Get-Acl
Ruft den Sicherheitsdeskriptor für eine Ressource ab, z. B. eine Datei oder einen Registrierungsschlüssel.
Syntax
ByPath (Standard)
Get-Acl
[[-Path] <String[]>]
[-Audit]
[-AllCentralAccessPolicies]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-UseTransaction]
[<CommonParameters>]
ByInputObject
Get-Acl
-InputObject <PSObject>
[-Audit]
[-AllCentralAccessPolicies]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-UseTransaction]
[<CommonParameters>]
ByLiteralPath
Get-Acl
[-LiteralPath <String[]>]
[-Audit]
[-AllCentralAccessPolicies]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-UseTransaction]
[<CommonParameters>]
Beschreibung
Das Cmdlet Get-Acl ruft Objekte ab, die die Sicherheitsbeschreibung einer Datei oder Ressource darstellen. Der Sicherheitsdeskriptor enthält die Zugriffssteuerungslisten (ACLs) der Ressource. Die ACL gibt die Berechtigungen an, die Benutzer und Benutzergruppen für den Zugriff auf die Ressource haben.
Ab Windows PowerShell 3.0 können Sie den InputObject-Parameter von Get-Acl verwenden, um die Sicherheitsbeschreibung von Objekten abzurufen, die nicht über einen Pfad verfügen.
Beispiele
Beispiel 1
Get-Acl C:\Windows
Mit diesem Befehl wird die Sicherheitsbeschreibung des Verzeichnisses C:Windows abgerufen.
Beispiel 2
Get-Acl C:\Windows\k*.log | Format-List -Property PSPath, Sddl
Mit diesem Befehl werden der Windows PowerShell-Pfad und die SDDL für alle .log Dateien im Verzeichnis C:\Windows abgerufen, deren Namen mit "k" beginnen.
Der Befehl verwendet das Cmdlet Get-Acl , um Objekte abzurufen, die die Sicherheitsbeschreibungen der einzelnen Protokolldateien darstellen. Es verwendet einen Pipelineoperator (|), um die Ergebnisse an das Cmdlet Format-List zu senden. Der Befehl verwendet den Property-Parameter von Format-List, um nur die PsPath- und SDDL-Eigenschaften der einzelnen Sicherheitsbeschreibungsobjekte anzuzeigen.
Listen werden häufig in Windows 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 sind sie einfach zu übergeben und zu speichern, und sie können bei Bedarf analysiert werden.
Beispiel 3
Get-Acl C:/Windows/k*.log -Audit | ForEach-Object { $_.Audit.Count }
Mit diesem Befehl werden die Sicherheitsbeschreibungen der .log Dateien im Verzeichnis C:\Windows abgerufen, deren Namen mit "k" beginnen. Er verwendet den Parameter Audit, um die Überwachungsdatensätze aus der SACL in der Sicherheitsbeschreibung abzurufen. Anschließend wird das Cmdlet ForEach-Object 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
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
Mit diesem Befehl wird das Cmdlet Get-Acl verwendet, um die Sicherheitsbeschreibung des Unterschlüssels Control (HKLM\SYSTEM\CurrentControlSet\Control) der Registrierung abzurufen.
Der parameter Path gibt den Unterschlüssel "Control" an. Der Pipelineoperator (|) übergibt die Sicherheitsbeschreibung, die Get-Acl abruft, an den Befehl Format-List, der die Eigenschaften der Sicherheitsbeschreibung als Liste formatiert, damit sie leicht zu lesen sind.
Beispiel 5
Get-Acl -InputObject (Get-StorageSubSystem -Name S087)
Dieser Befehl verwendet den InputObject-Parameter von Get-Acl , um die Sicherheitsbeschreibung eines Speichersubsystemobjekts abzurufen.
Parameter
-AllCentralAccessPolicies
Ruft Informationen zu allen zentralen Zugriffsrichtlinien ab, die auf dem Computer aktiviert sind.
Ab Windows Server 2012 können Administratoren Active Directory und Gruppenrichtlinien verwenden, um zentrale Zugriffsrichtlinien für Benutzer und Gruppen festzulegen. Weitere Informationen finden Sie unter dynamische Zugriffssteuerung: Szenarioübersicht.
Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Audit
Ruft die Überwachungsdaten für den Sicherheitsdeskriptor aus der Systemzugriffssteuerungsliste (SACL) ab.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Exclude
Lässt die angegebenen Elemente aus. Der Wert dieses Parameters qualifiziert den Parameter Pfad. Geben Sie ein Pfadelement oder Einmuster ein, z. B. "*.txt". Wildcards sind zulässig.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Filter
Gibt einen Filter im Format oder in der Sprache des Anbieters an. Der Wert dieses Parameters qualifiziert den parameter Path. Die Syntax des Filters, einschließlich der Verwendung von Wildcards, hängt vom Anbieter ab. Filter sind effizienter als andere Parameter, da sie vom Anbieter beim Abrufen der Objekte angewendet werden, anstatt dass Windows PowerShell die Objekte nach dem Abrufen filtert.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Include
Ruft nur die angegebenen Elemente ab. Der Wert dieses Parameters qualifiziert den parameter Path. Geben Sie ein Pfadelement oder Einmuster ein, z. B. "*.txt". Wildcards sind zulässig.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-InputObject
Ruft den Sicherheitsdeskriptor für das angegebene Objekt ab. Geben Sie eine Variable ein, die das Objekt enthält, oder einen Befehl, der das Objekt abruft.
Es ist nicht möglich, ein anderes Objekt als einen Pfad über die Pipeline an Get-ACL zu übergeben. Verwenden Sie stattdessen den parameter InputObject explizit im Befehl.
Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | PSObject |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ByInputObject
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | 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 wurde. Es werden keine Zeichen als Wildcards interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen weisen Windows PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.
Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | PSPath |
Parametersätze
ByLiteralPath
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Path
Gibt den Pfad zu einer Ressource an. Get-Acl ruft die Sicherheitsbeschreibung der Ressource ab, die durch den Pfad angegeben wird. Wildcards sind zulässig. Wenn Sie den Parameter Path weglassen, ruft Get-Acl die Sicherheitsbeschreibung des aktuellen Verzeichnisses ab.
Der Parametername ("Path") ist optional.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
ByPath
| Position: | 1 |
| Obligatorisch: | False |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-UseTransaction
Enthält den Befehl in der aktiven Transaktion. Dieser Parameter ist nur gültig, wenn eine Transaktion ausgeführt wird. Weitere Informationen finden Sie unter about_Transactions.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | usetx |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
String
Sie können eine Zeichenfolge, die einen Pfad enthält, über die Pipeline an Get-ACL übergeben.
Ausgaben
System.Security.AccessControl
Get-Acl gibt ein Objekt zurück, das die ACLs darstellt, die es abruft. Der Objekttyp hängt vom ACL-Typ ab.
Hinweise
Standardmäßig zeigt Get-Acl den Windows PowerShell-Pfad zur Ressource (<provider>::<resource-path>), den Besitzer der Ressource und "Access" an, eine Liste (ein Array) der Zugriffssteuerungseinträge in der freigegebenen Zugriffssteuerungsliste (Discretionary Access Control List, DACL) für die Ressource. Die DACL-Liste wird vom Ressourcenbesitzer gesteuert.
Wenn Sie das Ergebnis zusätzlich zu Pfad, Besitzer und Zugriffsliste als Liste ("Get-Acl | Format-List") formatieren, zeigt Windows 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. Windows PowerShell verwendet die GetSddlForm-Methode von Sicherheitsbeschreibungen, um diese Daten abzurufen.
Da Get-Acl von den Dateisystem- und Registrierungsanbietern unterstützt wird, können Sie Get-Acl verwenden, um die ACL von Dateisystemobjekten, z. B. Dateien und Verzeichnissen, und Registrierungsobjekten, z. B. Registrierungsschlüsseln und -einträgen, anzuzeigen.