W powershell trzeba nadać uprawnienie do katalogu. Niestety niektóre podkatalogi mają wyłączone dziedziczenie. W jaki sposób naprawić dziedziczenie uprawnień z folderów nadrzędnych, jak je zresetować? Oto propozycja:
Function FixInheritance([string] $Directory) { $AllFiles = Get-ChildItem -Recurse -Force $Directory ForEach ($File in $AllFiles) { #Pobierz uprawnienia bieżącego pliku/folderu $acl = get-acl $File.FullName #Zmien ustawienia dziedziczenia $acl.SetAccessRuleProtection($false, $false); #Zapisz uprawnienia dla pliku set-acl -aclobject $acl $File.FullName #Kropka jako pasek postępu Write-Host "." -NoNewline } Write-Host }
Czyli najpierw listujesz rekurencyjnie wszystkie katalogi. Zapamiętujesz je w $AllFiles. Potem dla każdego z tych plików pobierasz jego uprawnienia, zmieniasz w nich sposób dziedziczenia uprawnień i zapisujesz je spowrotem do tego pliku. Żeby coś działo się na ekranie, wyświetlasz kropkę dla każdego pliku.
A oto wywołanie tej funkcji dla wszystkich podkatalogów i plików folderu c:\tmp
Clear
FixInheritance "C:\tmp\test"
Żródła:
http://www.hanselman.com/blog/ProgressBarsInPowerShell.aspx