Powershell

PowerShell:如何打開 Windows 防火牆埠

  • November 27, 2017

我需要使用 PowerShell 在 Windows 防火牆上打開一個埠,所以我這樣做了

netsh advfirewall firewall add rule name = "Open port 4443 test" dir=in action=allow protocol=TCP localport=4443

進而

Test-NetConnection -Port 4443 -ComputerName localhost

檢查埠是否已打開但仍處於關閉狀態。

所以我嘗試使用另一個命令:

New-NetFirewallRule -DisplayName "Allow inbound TCP port 4443" -Direction inbound -LocalPort 4443 -Protocol TCP -Action Allow

但仍然沒有喜悅。

那麼問題來了:如何通過PowerShell打開4443埠?

**編輯:**該規則已創建到 Windows 防火牆中,但我需要一個返回真/假檢查響應的命令

要在評論中回答您的問題: 製作一個 PowerShell 腳本,如果埠是否打開,則返回您,所以我需要 PowerShell 的正面/負面響應

也許這可以幫助您,使用 System.Net.Sockets.TcpClient該類來測試埠是打開還是關閉。看下面的程式碼:

$ErrorActionPreference = "silentlycontinue"

$tcp = New-Object System.Net.Sockets.TcpClient
$tcp.Connect("localhost","1234")
$tcp.Connected 

$tcp.connected``true如果連接成功,將返回。False如果它不會成功。該$ErrorActionPreference = "silentlycontinue"變數將抑制錯誤消息。

例子:

在此處輸入圖像描述

引用自:https://serverfault.com/questions/883266