Необходим сценарий ICACLS для настройки сохранения папки на удаленном сервере - PullRequest
0 голосов
/ 18 декабря 2018

Я недавно использовал эту команду, чтобы исправить проблемы на одном из моих серверов;

c:\windows\system32\icacls \\"server_name"\C$\Windows\System32\Tasks /grant "everyone":(OI)(CI)F

server list.txt 
server1
server2
server3 

То, что я хотел бы сделать, - это написать скрипт для использования списка компьютеров, чтобы заменить «имя_сервера» именем из списка серверов, и запускать каждый из них до тех пор, пока это не будет сделано со всех серверов.

Прямо сейчас я просто запускаю все из них, как показано ниже;

c:\windows\system32\icacls \\server1\C$\Windows\System32\Tasks /grant "everyone":(OI)(CI)F 
c:\windows\system32\icacls \\server2\C$\Windows\System32\Tasks /grant "everyone":(OI)(CI)F 
c:\windows\system32\icacls \\server3\C$\Windows\System32\Tasks /grant "everyone":(OI)(CI)F

Есть идеи?

1 Ответ

0 голосов
/ 18 декабря 2018

Вы можете сделать это, используя команду FOR следующим образом:

FOR /F "usebackq" %%a IN ("server list.txt") DO c:\windows\system32\icacls \\%%a\C$\Windows\System32\Tasks /grant "everyone":(OI)(CI)F

В этом случае мы используем опцию usebackq, поскольку в вашем имени файла есть пробелы.

В качестве альтернативы выможет просто использовать список с разделителями пробелами:

FOR %%a IN ("server1" "server2" "server3") DO c:\windows\system32\icacls \\%%a\C$\Windows\System32\Tasks /grant "everyone":(OI)(CI)F

Обе эти опции предполагают, что вы будете использовать командный файл.Если вы просто запускаете команду в командной строке, используйте %a вместо %%a.

Если вы развернете ее, добавив дополнительные команды в цикл FOR, используя скобки, вам также потребуетсячтобы избежать скобок в вашей команде icacls.

Дополнительная информация:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...