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

Редактирование локальной политики брандмауэра Windows через Powershell

Я пишу большой скрипт, который обрабатывает и применяет множество настроек локальной политики через 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