У меня проблема с subinacl и я надеюсь, что кто-то может помочь. Я пробовал искать по этому сайту и по различным сайтам в Интернете и не смог найти ответ, который искал. (Может быть, я просто не знаю подходящих терминов для поиска.)
Я использую Windows Server 2008 R2 Enterprise. У меня есть набор папок, которые изначально были настроены с определенными разрешениями, чтобы запретить ПОЛЬЗОВАТЕЛЯМ делать определенные вещи в определенных папках (перемещать папки, удалять их и / или создавать новые), но в какой-то момент кто-то испортил вещи и разрешения изменились, предоставив ПОЛЬЗОВАТЕЛЯМ полный доступ ко всему.
У меня есть набор папок с правильными настройками разрешений. Поэтому я использовал subinacl для копирования разрешений из папки с примерами, используя следующую команду в командном файле:
"..\subinacl.exe" /noverbose /nostatistic /outputlog="folder\name.log" /subdirectories "folder\sample_folder_name" /display
Я открыл файл журнала, который был создан с помощью вышеуказанной команды, и я вижу следующий текст:
===============================
+File X:\Projects\YEAR\RandomText\StandardText
===============================
/control=0x3000
/owner =builtin\administrators
/primary group =domain\domain users
/audit ace count =0
/perm. ace count =4
/pace =system Type=0x0 Flags=0x3 AccessMask=0x1f01ff
/pace =builtin\administrators Type=0x0 Flags=0x3 AccessMask=0x1f01ff
/pace =builtin\users Type=0x0 Flags=0x3 AccessMask=0x1200a9
/pace =domain\administrator Type=0x0 Flags=0x3 AccessMask=0x1f01ff
Я редактирую имя папки выше (строка текста после +File
и сохраняю как new_folder_name.log. Я могу создать еще один пакетный файл и файл playfile
чтобы клонировать / применить разрешения для sample_folder_name к папке, которую я отредактировал, с помощью следующего:
"..\subinacl.exe" /nostatistic /playfile "new_folder_name.log"
Но у меня есть несколько папок, к которым мне нужно применить разрешения, и мне было интересно, смогу ли я объединить subinacl
с for /f
и получить командный цикл через текстовый файл со списком папок, которые я хочу клонировать. разрешения вместо редактирования файла журнала по одной папке за раз. Я попытался создать цикл, используя следующее:
:START
FOR /F "Tokens=1" %%a in (ListOfFolders.txt) Do (
IF "%%a" == "END" GOTO END
rem List permissions to log file:
CALL "..\subinacl.exe" /noverbose /nostatistic /outputlog="folder\name.log" /subdirectories "folder\sample_folder_name" /display \\%%a\
rem Restore permissions:
CALL "..\subinacl.exe" /nostatistic /playfile new_folder_name.log \%%a\
)
:END
У меня есть текстовый файл ListOfFolders.txt, в котором перечислены все папки проекта, к которым я хочу применить разрешения для sample_folder_name. Однако похоже, что разрешения применяются к папке, указанной в new_folder_name.log (строка текста после +File
), а не к списку папок в ListOfFolders.txt.
Я надеюсь, что это "простое" исправление и что кто-то может мне помочь. Пожалуйста, также дайте мне знать, если есть что-то, что я могу уточнить или наличие дополнительной информации было бы полезно для выработки решения.