Я пишу большой скрипт, который обрабатывает и применяет множество настроек локальной политики через Powershell. Большая часть этого выполняется путем экспорта текущей конфигурации безопасности через Secedit, передачи ее в arrayylist, добавления / обновления значений по мере необходимости, затем экспорта arraylist и обратного импорта с помощью Secedit.
Моя проблема в том, что мне нужно установить локальную политику брандмауэра (Конфигурация компьютера \ Политики \ Параметры Windows \ Параметры безопасности \ Брандмауэр Windows с расширенной безопасностью \ Брандмауэр Windows с расширенной безопасностью \ Свойства брандмауэра Windows \ Профиль домена \ состояние брандмауэра), и это вызвало я застрял.
Я могу управлять настройками локального брандмауэра, используя
$Domain = Get-NetFirewallProfile -name domain
$domain | Set-NetFirewallProfile -DefaultInboundAction allow
Но это не манипулирование Политикой.
Я также могу управлять ключами реестра, которые записываются / обновляются при изменении политики, однако их изменение не показывает, что политика меняется, например:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile\enablefirewall=4,1
Изменился на:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile\enablefirewall=4,0
Не отображает политику как измененную, если запускается gpupdate / force - этот параметр стирается (из памяти это потому, что политика содержится в базе данных безопасности в каталоге c: \ windows \ security)
Я попытался добавить ключ Reg в файл, который импортируется через secedit, который успешно загружается, но не изменяет настройку.
Я пробовал использовать open-netgpo, но я не могу, так как это не машина, присоединенная к домену (и никогда не будет присоединена к домену), и я не могу передать допустимую опцию для хранилища политик, чтобы заставить его манипулировать локальной политикой брандмауэра
В идеале я бы хотел, чтобы это контролировалось с помощью локальной политики, а не только с помощью активной настройки брандмауэра.
Я надеюсь, что есть способ изменить политику брандмауэра с помощью Powershell, чтобы я мог выполнить то, что мне нужно, в автоматическом режиме.
Спасибо
Попробуйте утилиту cmd сетка
netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound