PowerShell管理Windows防火墙最直接高效,需以管理员身份运行、设置RemoteSigned执行策略、确认NetSecurity模块可用;核心用New-NetFirewallRule创建规则,支持IP段、多端口、程序级控制,并可批量处理、启用规则组、导出审计及配置IPsec连接安全。
powershell 是管理 windows 防火墙最直接、可复用性最强的方式,它绕过图形界面,调用系统原生的 netsecurity 模块,规则生效快、支持批量、便于纳入运维脚本或 ci/cd 流程。
确保环境就绪
不是所有 PowerShell 窗口都能操作防火墙。必须满足三个前提:
- 以管理员身份运行 PowerShell(右键 → “以管理员身份运行”)
- 执行策略允许本地脚本:运行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force;再用Get-ExecutionPolicy -Scope CurrentUser确认返回RemoteSigned - 确认模块可用:
Get-Module NetSecurity -ListAvailable应有输出;Windows 10/11 专业版及以上、Server 2016+ 默认内置,无需安装
创建精准的入站/出站规则
核心命令是 New-NetFirewallRule,但参数组合决定规则是否真正生效。关键不是“填完就跑”,而是明确意图:
- 封禁某 IP 访问 RDP:
New-NetFirewallRule -DisplayName "Block RDP from 192.168.5.100" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 192.168.5.100 -Action Block -Enabled True - 只允某个网段访问 Web 服务:
New-NetFirewallRule -DisplayName "Allow DevNet HTTP" -Direction Inbound -Protocol TCP -LocalPort 80,443 -RemoteAddress 10.20.0.0/16 -Action Allow - 阻止某程序外连:
New-NetFirewallRule -DisplayName "Block Slack Outbound" -Direction Outbound -Program "C:\Users\*\AppData\Local\slack\slack.exe" -Action Block(注意通配符支持)
提示:-RemoteAddress 支持单 IP、IP 段(如 192.168.1.0/24)、地址组名或 Any;-LocalPort 可写多个端口,用逗号分隔。
批量处理与规则维护
手动加几十条规则不现实。PowerShell 天然支持循环和管道:
- 批量封禁 IP 列表:
"203.0.113.5", "203.0.113.6", "203.0.113.7" | ForEach-Object { New-NetFirewallRule -DisplayName "Block $_" -Direction Inbound -RemoteAddress $_ -Action Block } - 启用某类规则组(如远程管理):
Enable-NetFirewallRule -DisplayGroup "Remote Desktop" - 导出当前所有自定义规则供审计:
Get-NetFirewallRule | Where-Object {$_.IsSystemRule -eq $false} | Export-Csv firewall-rules.csv -NoTypeInformation - 删除某类旧规则:
Remove-NetFirewallRule -DisplayName "Legacy Block *"
连接安全规则(IPsec)进阶控制
普通防火墙规则管“通不通”,连接安全规则管“怎么通”——用于强制加密、身份验证等场景,常见于域内服务通信:
- 要求与数据库服务器通信时使用 Kerberos + AES:
New-NetIPsecMainModeRule -Name "SecureSQL" -RemoteAddress 192.168.10.100 -AuthenticationMethod Kerberos -EncryptionMethod AES128 - 查看已配置的 IPsec 主模式规则:
Get-NetIPsecMainModeRule - 注意:这类规则需配合入站/出站规则使用——IPsec 不放行流量,只保护已放行的流量


















