Wyświetlenie uprawnień do podkatalogów danego katalogu
Ktos
Aby wyświetlić (ale bezproblemowo można zmienić to polecenie, by zmienić) uprawnienia systemu plików NTFS dla danego katalogu oraz jego podkatalogów (rekursywnie) wystarczy zastosować odpowiednio cmdlety Get-ChildItem, Where-Object i Foreach-Object oraz konsolowe narzędzie cacls.exe, służące do zarządzania listami uprawnień ACL.
Get-ChildItem posiada parametr -recurse, który zapewni przetwarzanie rekursywne, następnie wynik działania tego cmdletu wystarczy przekierować do Where-Object filtrując obiekty, które są katalogami, a następnie z użyciem Foreach-Object wystarczy wykonać na nich odpowiednie polecenie. Używamy narzędzia cacls.exe, które po podaniu w parametrze ścieżki do pliku bez innych parametrów spowoduje wyświetlenie list kontroli dostępu danego pliku.
Ostateczna wersja tego jednolinijkowego skryptu wygląda tak:
Get-ChildItem -recurse "katalog" | Where-Object { $_.Attributes -eq "Directory" } | Foreach-Object { cacls $_.FullName }
Warto zwrócić uwagę, że nie wystarczy zastosowanie właściwości Name aktualnie przetwarzanego obiektu w przekazaniu nazwy do cacls.exe (lub dowolnego innego narzędzia), trzeba zastosować właściwość FullName obiektu obecnego ($_).
Oczywiście cacls.exe może być też używany do zmiany praw dostępu do danego obiektu.