Управление настройками и правилами Windows Defender Firewall с помощью PowerShell

Эта статья посвящена основам управления настройками и правилами встроенного Windows Defender Firewall из командной строки PowerShell. Мы рассмотрим, как включать/отключать брандмауэр для различных профилей, создавать, редактировать и удалять правила, экспортировать/импортировать правила Windows Firewall с помощью PowerShell.

Для управления настройками Windows Firewall обычно используется отдельная графическая MMC оснастка wf.msc (Control Panel -> System and Security -> Windows Defender Firewall -> Advanced settings). Большинство операций по настройке и управлению параметрами Windows Firewall можно выполнять из командной строки PowerShell. Для этого, начиная с версии Windows PowerShell 5.1, можно использовать встроенный модуль NetSecurity

Полный список командетов в модуле NetSecurity можно вывести с помощью команды:

Get-Command -Module NetSecurity

модуль NetSecurity для управления Windows Defender Firewall из PowerShell

Раньше для управления правилами и настройками Брандмауэра Windows использовалась команда netsh advfirewall firewall .

Как включить и отключить Windows Defender Firewall через PowerShell?

По умолчанию Defender Firewall в Windows включен.

Get-NetFirewallProfile | Format-Table Name, Enabled

отключить windows firewall с помощью powershell

Как вы видите, в Windows Firewall есть три типа сетевых профилей:

В настройках профилей по-умолчанию разрешены все исходящие подключения и блокируется входящие (кроме разрешенных).

windows defender firewall включен в windows

Информация о типах сетей хранится службой Network Location Awareness (NLA) в базе данных. Вы можете изменить профиль сети в Windows , если он определился некорректно.

Каждый профиль может отличаться используемым набором правил файервола. По умолчанию все сетевые интерфейсы компьютера защищены фаейрволом и к ним применяются все три типа профилей.

Чтобы полностью отключить Firewall в Windows, выполните команду:

Set-NetFirewallProfile -All -Enabled False

Либо укажите конкретный профиль вместо All:

Set-NetFirewallProfile -Profile Public -Enabled False

Чтобы включить файервол для всех трех сетевых профилей, используется команда:

Set-NetFirewallProfile -All -Enabled True

Вывести тип профиля, который применяется к сетевому подключению:

Get-NetConnectionProfile

Get-NetConnectionProfile тип профиля файервола который применяется к сетевому интерфейсу

В этом примере к сетевому подключению Ethernet0 применяется доменный профиль ( DomainAuthenticated ).

Вы можете управлять правилами Windows Firewall на удаленных компьютерах, если на них настроен PowerShell Remoting ( WinRM ). В этом примере с помощью командлета Invoke-Command мы отключим файервол на удаленных компьютерах из списка:

$computers = @('PC01', 'PC02', 'PC03')
Invoke-Command -ComputerName $computers {Set-NetFirewallProfile -All -Enabled False}

EnglishRussianUkrainian