2013-10-02 6 views
-1

Из-за новой миграции домена мне нужно найти сценарий, в котором перечислены все разрешения NTFS для групп и добавлены новые разрешения для новой группы для некоторых папок (эти папки либо CIF, либо NFS).Список и добавление разрешений NTFS для общих папок

Некоторые папки имеют разные группы и разные разрешения. таких как группы pc \ admin, теперь мне нужно добавить группы TA \ admin в ту же папку, не удаляя или не удаляя старые разрешения и группы. Я нашел скрипт, но не перечислял текущие разрешения и группы:

+0

спасибо за сценарий, но это может быть запущен в VBS или PowerShell? Как вы думаете, один сценарий может отображать список всех разрешений NTFS, а затем добавлять дополнительную группу для полного доступа или разрешения доступа к RW? Это будет сложный сценарий. Я даже не знаю, где добавить имя сервера и общие имена. – Ginger

+0

Тогда я полагаю, вам нужно нанять кого-то, чтобы сделать работу. Это, безусловно, можно сделать в одном сценарии, но написать его во всей полноте - это лиги, выходящие за рамки SO. Вы можете использовать мой скрипт ['AuditACLs.vbs'] (http://www.planetcobalt.net/sdb/auditacls.shtml) в качестве отправной точки и добавить код для [предоставления разрешений] (http://stackoverflow.com/ a/13341479/1630171). –

ответ

1

Вы можете использовать команду icacls для отображения или изменения прав доступа к любому файлу или папке. Для добавления недостающей группы в папку, что-то, как это должно работать:

Set sh = CreateObject("WScript.Shell") 

fldr = "C:\some\folder" 
group = "TA\admin" 

rc = sh.Run("%COMSPEC% /c icacls """ & fldr & """ | find /i """ & group _ 
    & """", 0, True) 
If rc <> 0 Then sh.Run "icacls """ & fldr & """ /grant " & group & ":F" 

Для перечисления разрешений на дереве папок что-то вроде ntfsacls или AuditACLs.vbs может быть лучшим выбором, хотя. Пример


icacls использование:

icacls "C:\some\folder" /grant FOO\bar:(OI)(CI)RX Administrators:(OI)(CI)F 

Это предоставит группу «бар» домена «Foo» чтение/выполнение и локальную группу «Администраторы» полный доступ к папке «C : \ some \ folder "и все его подпапки, которые настроены на наследование разрешений от их родителя.

Чтобы запустить эту команду из VBScript с переменными для папки и групп вы бы это сделать:

fldr = "C:\some\folder" 
groupA = "FOO\bar" 
groupB = "Administrators" 

Set sh = CreateObject("WScript.Shell") 

sh.Run "icacls """ & fldr & """ /grant " & groupA & ":(CI)(OI)RX " _ 
    & groupB & ":(CI)(OI)F" 
+0

Спасибо за ваш скрипт. Это vbs или power shell. – Ginger

+0

Вышеупомянутый код - VBScript. –

+0

«« »- это место, где нужно указывать имя папки или имя или имя группы. Мне просто нужен один пример с именем сервера или папки в vbs. Спасибо! – Ginger

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