Для этого вам нужно написать скрипт Powershell. Вам необходимо рекурсивно получить все папки и подпапки, проверить наследование для каждой и с помощью командлетов Get-ACL и Set-ACL добавить разрешения для системной учетной записи. Try / catch обработает ошибки в случае, если скрипт не сможет получить доступ к папке.
Вот пример, который я написал для вас, предполагая, что вы используете его в папке C: \ temp в качестве примера.
$folders = (Get-ChildItem c:\temp -Directory -Recurse) | select -ExpandProperty fullname foreach ($item in $folders) { $inheritance = (Get-Acl $item).access[0] | select -ExpandProperty isinherited if ($inheritance -eq $false) { try { $acl = Get-Acl $item $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ("System","FullControl","Allow") $acl.SetAccessRule($AccessRule) $acl | Set-Acl $item } catch { "Failed to access folder $item" "Exception type is $($_.Exception.GetType().Name)" } } }
PS Для работы Get-ChildItem с -Directory вам необходимо иметь Powershell 4+. Этот переключатель отсутствует в PS 2.0