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-Acl
elementu . 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
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.