Udostępnij za pośrednictwem


Get-Acl

Pobiera deskryptor zabezpieczeń dla zasobu, takiego jak plik lub klucz rejestru.

Składnia

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>]

Opis

To polecenie cmdlet jest dostępne tylko na platformie Windows.

Polecenie Get-Acl cmdlet pobiera obiekty reprezentujące deskryptor zabezpieczeń pliku lub zasobu. Deskryptor zabezpieczeń zawiera listy kontroli dostępu (ACL) zasobu. Lista ACL określa uprawnienia, które użytkownicy i grupy użytkowników muszą uzyskać dostęp do zasobu.

Począwszy od Windows PowerShell 3.0, można użyć parametru InputObject, Get-Acl aby uzyskać deskryptor zabezpieczeń obiektów, które nie mają ścieżki.

Przykłady

Przykład 1 — pobieranie listy ACL dla folderu

Ten przykład pobiera deskryptor zabezpieczeń C:\Windows katalogu.

Get-Acl C:\Windows

Przykład 2 — pobieranie listy ACL dla folderu przy użyciu symboli wieloznacznych

Ten przykład pobiera ścieżkę programu PowerShell i bibliotekę SDDL dla wszystkich .log plików w C:\Windows katalogu, których nazwy zaczynają się od s.

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

Polecenie używa Get-Acl polecenia cmdlet do pobierania obiektów reprezentujących deskryptory zabezpieczeń każdego pliku dziennika. Używa operatora potoku (|), aby wysłać wyniki do Format-List polecenia cmdlet. Polecenie używa parametru Property parametru , Format-List aby wyświetlić tylko właściwości PsPath i SDDL każdego obiektu deskryptora zabezpieczeń.

Listy są często używane w programie PowerShell, ponieważ długie wartości są obcinane w tabelach.

Wartości SDDL są cenne dla administratorów systemu, ponieważ są prostymi ciągami tekstowymi zawierającymi wszystkie informacje w deskryptorze zabezpieczeń. W związku z tym są one łatwe do przekazania i przechowywania i mogą być analizowane w razie potrzeby.

Przykład 3 — pobieranie liczby wpisów inspekcji dla listy ACL

W tym przykładzie są pobierane deskryptory zabezpieczeń .log plików w C:\Windows katalogu, których nazwy zaczynają się od s.

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

Używa parametru Audit , aby uzyskać rekordy inspekcji z SACL w deskryptorze zabezpieczeń. Następnie używa ForEach-Object polecenia cmdlet do zliczenia liczby rekordów inspekcji skojarzonych z każdym plikiem. Wynikiem jest lista liczb reprezentujących liczbę rekordów inspekcji dla każdego pliku dziennika.

Przykład 4 — uzyskiwanie listy ACL dla klucza rejestru

W tym przykładzie Get-Acl użyto polecenia cmdlet w celu pobrania deskryptora zabezpieczeń podklucza kontroli (HKLM:\SYSTEM\CurrentControlSet\Control) rejestru.

Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List

Parametr Path określa podklucz kontrolki. Operator potoku (|) przekazuje deskryptor zabezpieczeń, który Get-Acl przechodzi do Format-List polecenia, który formatuje właściwości deskryptora zabezpieczeń jako listę, aby były łatwe do odczytania.

Przykład 5 — uzyskiwanie listy ACL przy użyciu obiektu **InputObject**

W tym przykładzie użyto parametru InputObject w Get-Acl celu uzyskania deskryptora zabezpieczeń obiektu podsystemu magazynowania.

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

Parametry

-Audit

Pobiera dane inspekcji deskryptora zabezpieczeń z listy kontroli dostępu systemu (SACL).

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

-Exclude

Pomija określone elementy. Wartość tego parametru kwalifikuje parametr Path . Wprowadź element ścieżki lub wzorzec, taki jak *.txt. Dozwolone są symbole wieloznaczne.

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

-Filter

Określa filtr w formacie lub języku dostawcy. Wartość tego parametru kwalifikuje parametr Path . Składnia filtru, w tym użycie symboli wieloznacznych, zależy od dostawcy. Filtry są bardziej wydajne niż inne parametry, ponieważ dostawca stosuje je podczas pobierania obiektów, zamiast filtrować obiekty programu PowerShell po ich pobraniu.

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

-Include

Pobiera tylko określone elementy. Wartość tego parametru kwalifikuje parametr Path . Wprowadź element ścieżki lub wzorzec, taki jak *.txt. Dozwolone są symbole wieloznaczne.

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

-InputObject

Pobiera deskryptor zabezpieczeń dla określonego obiektu. Wprowadź zmienną zawierającą obiekt lub polecenie, które pobiera obiekt.

Nie można potokować obiektu innego niż ścieżka do Get-Aclelementu . Zamiast tego użyj parametru InputObject jawnie w poleceniu .

Ten parametr jest wprowadzany w Windows PowerShell 3.0.

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

-LiteralPath

Określa ścieżkę do zasobu. W przeciwieństwie do ścieżki wartość parametru LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy je ująć w pojedynczy cudzysłów. Znaki pojedynczego cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Ten parametr jest wprowadzany w Windows PowerShell 3.0.

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

-Path

Określa ścieżkę do zasobu. Get-Acl pobiera deskryptor zabezpieczeń zasobu wskazanego przez ścieżkę. Dozwolone są symbole wieloznaczne. Jeśli pominięto parametr Path , Get-Acl pobiera deskryptor zabezpieczeń bieżącego katalogu.

Nazwa parametru ("Ścieżka") jest opcjonalna.

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

Dane wejściowe

String

Możesz potokować ciąg zawierający ścieżkę do Get-Acl.

Dane wyjściowe

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

Get-Acl zwraca obiekt, który reprezentuje listy ACL, które pobiera. Typ obiektu zależy od typu listy ACL.

Uwagi

To polecenie cmdlet jest dostępne tylko na platformach systemu Windows.

Domyślnie Get-Acl wyświetla ścieżkę programu PowerShell do zasobu (<provider>::<resource-path>), właściciela zasobu i "Dostęp", listę (tablicę) wpisów kontroli dostępu na liście kontroli dostępu (DACL) dla zasobu. Lista daCL jest kontrolowana przez właściciela zasobu.

Podczas formatowania wyniku jako listy (Get-Acl | Format-List) oprócz ścieżki, właściciela i listy dostępu program PowerShell wyświetla następujące właściwości i wartości właściwości:

  • Grupa: grupa zabezpieczeń właściciela.
  • Inspekcja: lista (tablica) wpisów na liście kontroli dostępu systemu (SACL). SACL określa typy prób dostępu, dla których system Windows generuje rekordy inspekcji.
  • Sddl: deskryptor zabezpieczeń zasobu wyświetlany w jednym ciągu tekstowym w formacie Języka definicji deskryptora zabezpieczeń. Program PowerShell używa metody GetSddlForm deskryptorów zabezpieczeń w celu pobrania tych danych.

Ponieważ Get-Acl jest obsługiwany przez dostawców systemu plików i rejestru, można użyć Get-Acl do wyświetlania listy ACL obiektów systemu plików, takich jak pliki i katalogi, oraz obiekty rejestru, takie jak klucze rejestru i wpisy.