Назад | Перейти на главную страницу

netsh advfirewall set store gpo:% COMPUTERNAME% не работает

Я отвечаю за группу компьютеров, которые обрабатывают конфиденциальные данные. Их нельзя подключить к Интернету или даже к сети компании, только к сетевому диску. Поэтому я написал командный файл на сетевом диске и запустил его на каждом компьютере, чтобы последовательно применять настройки безопасности.

Пакетный файл вызывает 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 в режиме повышенной безопасности) из командной строки? Я понимаю, что эти настройки не хранятся в 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 заканчивает тем, что получает сценарий с уже существующей расширенной переменной окружения.