如何使用PowerShell在Windows操作系统上阻止端口?

要在Windows操作系统上使用PowerShell阻止端口,我们需要使用New-NetFirewallRule命令更改防火墙设置。

示例

我们需要在计算机上阻止端口5985。下面的代码将阻止本地计算机上5985端口上的所有TCP传入请求。

New-NetFirewallRule -DisplayName "Block WINRM HTTP Port" `
                    -Direction Inbound `
                    -LocalPort 5985 `
                    -Protocol TCP `
                    -Action Block

要阻止多个端口,我们只需要在-LocalPort参数中提供多个端口即可。

New-NetFirewallRule -DisplayName "Block WINRM HTTP/S Ports" `
                    -Direction Inbound `
                    -LocalPort 5985,5986 `
                    -Protocol TCP `
                    -Action Block

若要阻止远程计算机上的端口,可以使用Invoke-Command cmdlet。确保远程计算机可以访问并且可以访问WINRM服务和端口。

Invoke-Command -ComputerName Test1-Win2k12 -ScriptBlock{
    New-NetFirewallRule -DisplayName "Block web ports" `
    -Direction Outbound `
    -LocalPort 80,8080 `
    -Protocol TCP `
    -Action Block
}