Как мне создать список таблиц брандмауэра на моем сервере Windows, чтобы показать, заблокирован ли порт 443?

#powershell

Вопрос:

Я хотел бы перечислить все правила, которые блокируют порт 80 для входящего трафика в моем брандмауэре Windows. Ниже приведена команда Powershell, которую я нашел, но я не могу заставить ее работать. Я что-то упускаю?

 Get-NetFirewallRule |
Format-Table -Property Name,
DisplayName,
DisplayGroup,
@{Name='Protocol';Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},
@{Name='LocalPort';Expression={($PSItem | Get-NetFirewallPortFilter | Where-Object -Property LocalPort -EQ 80).LocalPort}},
@{Name='RemotePort';Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},
@{Name='RemoteAddress';Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},
Enabled,
Profile,
Direction,
Action
 

Выход:

Результат

Комментарии:

1. Пожалуйста, будьте более конкретны, чем «не могу заставить это работать» — что происходит и как это отличается от того, что вы ожидали?

2. Привет, Матиас, пожалуйста, взгляните на прилагаемый вывод. Это все правила брандмауэра, и я хотел бы перечислить только локальные порты 80, которые заблокированы. Спасибо.

Ответ №1:

Я бы начал вот так. Быстрее вести с помощью get-netfirewallportfilter. Это порт 443 или 80? Localport может быть массивом, в котором один элемент равен 443.

 Get-NetFirewallPortFilter | where localport -eq 443 | Get-NetFirewallRule | 
  where action -eq block