Get-Acl to cmdlet PowerShella (z modułu Microsoft.PowerShell.Security, który pokazuje listę kontroli dostępu (ACL) dla pliku, folderu albo klucza rejestru. Mówiąc po ludzku: dowiesz się, kto ma prawo czytać, zapisywać czy usuwać dany obiekt i jakie dokładnie uprawnienia (NTFS) zostały przypisane. To pierwsza rzecz, po którą sięgasz, gdy ktoś krzyczy „nie mam dostępu do udziału” albo gdy chcesz zrobić audyt uprawnień bez klikania w okienka Właściwości.
Składnia i najważniejsze opcje
Podstawowa składnia: Get-Acl [-Path]
-Path— ścieżka do obiektu (plik, folder, klucz rejestru). Akceptuje symbole wieloznaczne i wartości z potoku.-LiteralPath— ścieżka traktowana dosłownie, bez interpretacji znaków jak*czy[ ]. Ratunek, gdy w nazwie masz nawiasy kwadratowe.-Audit— pobiera też reguły audytu (SACL), nie tylko zwykłe uprawnienia. Wymaga uprawnień administratora (SeSecurityPrivilege).-AllCentralAccessPolicies— pokazuje wszystkie Centralne Zasady Dostępu obowiązujące obiekt (Windows Server). Nie działa na Nano Server / OneCore.-Filter— filtr dostawcy (np. dla systemu plików), zawęża obiekty po wzorcu.-Include/-Exclude— dołącza lub pomija elementy wg wzorca; działa sensownie razem z-Pathzakończonym\*.
Przykłady użycia
Get-Acl -Path C:\Dane\raport.txt— wyświetla właściciela i podstawowe uprawnienia pojedynczego pliku.Get-Acl C:\Udzialy\HR | Format-List— pełny widok ACL folderu jako czytelna lista, a nie ucięta tabela.(Get-Acl C:\Udzialy\HR).Access— wyłuskuje samą tablicę reguł dostępu (kto, jakie prawa, dziedziczenie).Get-Acl -Path HKLM:\SOFTWARE\Microsoft— czyta uprawnienia klucza rejestru, boGet-Aclrozumie też dyskHKLM:.Get-Acl C:\Logi -Audit— dorzuca reguły audytu (SACL); uruchom jako administrator, inaczej tej sekcji nie zobaczysz.
Częste błędy i pułapki
Najczęstszy zgrzyt: domyślny wydruk pokazuje tylko Owner i skrócony Access. Jeśli chcesz wszystko, użyj Format-List albo sięgnij po właściwość .Access — pełne dane tam siedzą, po prostu nie mieszczą się w tabeli. Druga pułapka to -Audit bez podniesionych uprawnień: SACL wymaga praw administratora, więc bez nich dostaniesz pustkę albo błąd. Po trzecie pamiętaj, że Get-Acl jest tylko do odczytu — modyfikujesz uprawnienia przez Set-Acl, a typowy schemat to „pobierz obiekt, zmień regułę, zapisz z powrotem”. Uważaj też na ścieżki z nawiasami kwadratowymi (np. C:\Dane[2024]) — tu ratuje -LiteralPath, bo -Path potraktuje nawiasy jako wzorzec i nic nie znajdzie. I drobiazg: to cmdlet wyłącznie Windows — na Linuksie/macOS w PowerShellu go nie ma.
Powiązane komendy: Set-Acl (zapis uprawnień), Get-Item i Get-ChildItem (przekazywanie obiektów do potoku), icacls i takeown (klasyczne narzędzia wiersza poleceń), a także Get-Acl ... | Select-Object -ExpandProperty Owner do szybkiego sprawdzenia właściciela.