Freigeben über


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

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 von Get-Acl verwenden, um den Sicherheitsdeskriptor von Objekten abzurufen, die keinen Pfad haben.

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 werden der PowerShell-Pfad und die .log SDDL für alle Dateien im C:\Windows Verzeichnis abgerufen, deren Namen mit sbeginnen.

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 von 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 hilfreich, da es sich dabei um einfache Textzeichenfolgen handelt, die alle Informationen in der Sicherheitsbeschreibung enthalten. Daher können sie einfach übergeben und gespeichert und bei Bedarf analysiert werden.

Beispiel 3: Abrufen der Anzahl von Überwachungseinträgen für eine ACL

In diesem Beispiel werden die Sicherheitsbeschreibungen der .log Dateien im C:\Windows Verzeichnis abgerufen, deren Namen mit sbeginnen.

Get-Acl C:\Windows\s*.log -Audit | ForEach-Object { $_.Audit.Count }

Mit dem Audit-Parameter werden die Überwachungsdatensätze aus der SACL in der Sicherheitsbeschreibung abgerufen. 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 Path-Parameter 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 lesbar sind.

Beispiel 5: Abrufen einer ACL mithilfe von **InputObject**

In diesem Beispiel wird der InputObject-Parameter von Get-Acl verwendet, um den Sicherheitsdeskriptor 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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Lässt die angegebenen Elemente aus. Der Wert dieses Parameters qualifiziert den Path-Parameter. Geben Sie ein Path-Element oder -Muster ein, z *.txt. B. . Platzhalter sind zulässig.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 die Objekte nach dem Abrufen von PowerShell filtern zu lassen.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

Ruft nur die angegebenen Elemente ab. Der Wert dieses Parameters qualifiziert den Path-Parameter. Geben Sie ein Path-Element oder -Muster ein, z *.txt. B. . Platzhalter sind zulässig.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 kein Objekt mit Ausnahme eines Pfads an übergeben Get-Acl. Verwenden Sie stattdessen den InputObject-Parameter explizit im Befehl.

Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

Gibt den Pfad zu einer Ressource an. Im Gegensatz zu Path wird der Wert des LiteralPath-Parameters genauso verwendet, wie er eingegeben wurde. 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.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Path

Gibt den Pfad zu einer Ressource an. Get-Acl ruft den Sicherheitsdeskriptor der Ressource ab, die durch den Pfad angegeben wird. Platzhalter sind zulässig. Wenn Sie den Path-Parameter weglassen, Get-Acl ruft den Sicherheitsdeskriptor des aktuellen Verzeichnisses ab.

Der Parametername (Path) ist optional.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

Eingaben

String

Sie können eine Zeichenfolge, die einen Pfad enthält, an übergeben Get-Acl.

Ausgaben

System.Security.AccessControl.FileSecurity, System.Security.AccessControl.DirectorySecurity, System.Security.AccessControl.RegistrySecurity

Get-Acl gibt ein -Objekt zurück, das die abgerufenen ACLs darstellt. Der Objekttyp richtet sich nach der ACL-Typ.

Hinweise

Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.

Standardmäßig Get-Acl wird der PowerShell-Pfad zur Ressource (<provider>::<resource-path>), dem Besitzer der Ressource und "Access" angezeigt, eine Liste (Array) der Zugriffssteuerungseinträge in der daCL (Discretionary Access Control List) für die Ressource. Die DACL-Liste wird durch den Besitzer der Ressource gesteuert.

Wenn Sie das Ergebnis als Liste (Get-Acl | Format-List) formatieren, zeigt PowerShell zusätzlich zu Pfad, Besitzer und Zugriffsliste 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 Security Descriptor Definition Language-Format angezeigt wird. PowerShell verwendet die GetSddlForm-Methode von Sicherheitsdeskriptoren, um diese Daten abzurufen.

Da Get-Acl vom Dateisystem und Registrierungsanbieter unterstützt wird, können Sie verwenden Get-Acl , um die ACL von Dateisystemobjekten wie Dateien und Verzeichnissen sowie Registrierungsobjekten wie Registrierungsschlüsseln und Einträgen anzuzeigen.