Freigeben über


Get-Acl

Ruft den Sicherheitsdeskriptor für eine Ressource ab, z. B. eine Datei oder einen Registrierungsschlüssel.

Syntax

ByPath (Standardwert)

Get-Acl
    [[-Path] <String[]>]
    [-Audit]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [<CommonParameters>]

ByInputObject

Get-Acl
    -InputObject <PSObject>
    [-Audit]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [<CommonParameters>]

ByLiteralPath

Get-Acl
    [-LiteralPath <String[]>]
    [-Audit]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [<CommonParameters>]

Beschreibung

Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.

Das cmdlet Get-Acl ruft Objekte ab, die den Sicherheitsdeskriptor 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 parameter InputObject von Get-Acl verwenden, um den Sicherheitsdeskriptor 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 verzeichnis C:\Windows, deren Namen mit sbeginnen.

Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, Sddl

Der Befehl verwendet das Cmdlet Get-Acl, um Objekte abzurufen, die die Sicherheitsdeskriptoren jeder Protokolldatei darstellen. Es verwendet einen Pipelineoperator (|), um die Ergebnisse an das cmdlet Format-List zu senden. Der Befehl verwendet den parameter Property 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 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 – Abrufen der Anzahl der Überwachungseinträge für eine ACL

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

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 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 : Abrufen einer ACL für einen Registrierungsschlüssel

In diesem Beispiel wird das cmdlet Get-Acl 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, der Get-Acl an den befehl Format-List erhält, 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 parameter InputObject von Get-Acl verwendet, um die Sicherheitsbeschreibung eines Speichersubsystemobjekts abzurufen.

Get-Acl -InputObject (Get-StorageSubSystem -Name S087)

Parameter

-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 Path. Geben Sie ein Pfadelement oder Muster 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 der Anbieter sie beim Abrufen der Objekte anwendet, anstatt powerShell nach dem Abrufen der Objekte zu filtern.

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 Muster 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.

Sie können kein Objekt, außer einem Pfad, an Get-Aclweitergeleitet werden. 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 signalisieren PowerShell, dass keine Zeichen als Escapesequenzen interpretiert werden sollen.

Dieser Parameter wird in Windows PowerShell 3.0 eingeführt.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:PSPath, EP

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 den Sicherheitsdeskriptor der ressource ab, die durch den Pfad angegeben ist. Wildcards sind zulässig. Wenn Sie den Parameter Path weglassen, ruft Get-Acl den Sicherheitsdeskriptor 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

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 weiterleiten, die einen Pfad zu diesem Cmdlet enthält.

Ausgaben

FileSecurity

DirectorySecurity

RegistrySecurity

Dieses Cmdlet gibt ein Objekt zurück, das die acLs darstellt, die es abruft. Der Objekttyp hängt vom ACL-Typ ab.

Hinweise

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

Standardmäßig zeigt 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 vom Ressourcenbesitzer 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 von den FileSystem- und Registrierungsanbietern unterstützt wird, können Sie Get-Acl verwenden, um die ACL von Dateisystemobjekten wie Dateien und Verzeichnissen sowie Registrierungsobjekte wie Registrierungsschlüssel und Einträge anzuzeigen.