2010-12-16 7 views
7

В настоящее время я использую Vista 32-bit. Как добавить группу безопасности Windows «Все» и дать полный контроль над каталогом и всеми его подкаталогами и всеми файлами? Есть ли сценарий powershell, который я мог бы использовать?Добавить группу «Все» в каталог и все ее подкаталоги

Спасибо!

ответ

8

Я расширил фрагмент Мартоны и смог предоставить доступ ко всем папкам и подпапкам. Вот мой код -

$FilesAndFolders = gci "c:\data" -recurse | % {$_.FullName} 
foreach($FileAndFolder in $FilesAndFolders) 
{ 
    #using get-item instead because some of the folders have '[' or ']' character and Powershell throws exception trying to do a get-acl or set-acl on them. 
    $item = gi -literalpath $FileAndFolder 
    $acl = $item.GetAccessControl() 
    $permission = "Everyone","FullControl","Allow" 
    $rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission 
    $acl.SetAccessRule($rule) 
    $item.SetAccessControl($acl) 
} 
+0

Спасибо за это. Хорошо работает, и если кто-то задается вопросом, что «Get-Item -LiteralPath» работает по UNC-путям, то есть вы можете применять разрешения для удаленных компьютеров. – Patrick 2013-02-11 12:13:44

4
$acl = Get-Acl c:\mydir 
$permission = "Everyone","FullControl","Allow" 
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission 
$acl.SetAccessRule($rule) 
$acl | Set-Acl c:\mydir 
+0

Спасибо, но он добавил, что группа Everyone только в верхней папке, а также флажок FullControl не установлен. Что мне не хватает? – tempid 2010-12-16 21:10:19

+0

Это, возможно, не был хорошим ответом на вопрос, но я нашел этот пример полезным сегодня, поэтому проголосовал за него. – yzorg 2013-02-04 17:07:26

3

Иногда «родной» способ PowerShell не всегда является лучшим способом. Для чего-то подобного я все равно буду использовать icacls.exe. Помните, что хорошие опытные работы очень хороши в PowerShell. Просто перейдите в каталог, который вы хотите установить и выполнить:

icacls $pwd /grant "Everyone":(OI)(CI)F 

Это даст каждому полный доступ к текущему каталогу вниз (через наследование разрешений). Это должно работать до тех пор, пока нет явных опровержений для всех в структуре dir.

Смежные вопросы