Я отвечаю за группу компьютеров, которые обрабатывают очень конфиденциальные данные. Они не могут быть подключены к Интернету или даже сети компании, только сетевому диску. Таким образом, я записал пакетный файл на сетевом диске и выполнил его на каждом компьютере для последовательного применения настроек безопасности.
Вызовы пакетного файла netsh exec
со следующим сценарием:
advfirewall
set store gpo = %COMPUTERNAME%
reset
set store local
reset
Проблема состоит в том что переменная среды %COMPUTERNAME%
сбои для разрешения к фактическому имени компьютера, таким образом, GPO не сбрасывается и существуют конфликты между настройками в этих двух местах. Кроме того, netsh advfirewall reset
только сброс local
хранилище и set store
может только быть выполнен из netsh сценария (прямое netsh advfirewall set store gpo
в пакетном файле не работает).
Как я добираюсь set store
получить доступ к GPO для машины, от которой работает пакетный файл? Или есть ли другой способ сбросить настройки GPO (для Windows Firewall с Повышенной безопасностью) из командной строки? Я понимаю, что эти настройки не хранятся в Registry.pol
.
Я подозреваю вас пытаемся передать % COMPUTERNAME%
в netsh
напрямую. Он не расширяет переменные среды. Позвольте оболочке расширять переменную за вас, например:
@echo off
SET F="%TEMP%\%RANDOM%.txt"
echo advfirewall>%F%
echo set store gpo = %COMPUTERNAME%>>%F%
echo reset>>%F%
echo set store local>>%F%
echo reset>>%F%
netsh -f %F%
del %F%
netsh
в конечном итоге получает сценарий с уже существующей расширенной переменной среды.