如何通过PowerShell向域GPO添加预定义入站防火墙规则
解决GPO中通过PowerShell重建预定义防火墙规则的问题
直接复刻GUI操作的方法
GUI中的预定义防火墙规则(如“File and Printer Sharing (SMB-In)”)并非需要新建,而是GPO模板中已存在的规则组,默认处于未启用状态。你之前用New-NetFirewallRule尝试新建组的方式不对,正确操作是用Set-NetFirewallRule直接启用整个规则组,完全对应GUI里的“启用预定义规则组”操作:
针对“File and Printer Sharing (SMB-In)”组,执行以下命令:
Set-NetFirewallRule -GPOSession $GpoSession -Group "@FirewallAPI.dll,-28502" -Enabled True
该命令会一次性启用该组下所有预定义规则,和GUI操作效果完全一致。
逐个添加规则的替代方案
如果需要自定义单条规则而非启用整个组,可以用New-NetFirewallRule复刻GUI中的参数。步骤如下:
- 在GUI中打开目标预定义规则,记录所有配置项(名称、显示名、描述、协议、端口、适用配置文件、动作等)
- 将这些配置项对应到
New-NetFirewallRule的参数,编写命令。
以“File and Printer Sharing (SMB-In)”的TCP规则为例,复刻命令如下:
New-NetFirewallRule -GPOSession $GpoSession ` -Name "Custom-SMB-In-TCP" ` -DisplayName "File and Printer Sharing (SMB-In)" ` -Description "Inbound rule for the Server Message Block (SMB) service to allow SMB traffic. [TCP 445]" ` -Group "@FirewallAPI.dll,-28502" ` -Enabled True ` -Action Allow ` -Protocol TCP ` -LocalPort 445 ` -Profile Domain,Private ` -Direction Inbound
注意:每条预定义规则可能有多个协议版本(如TCP和UDP),需要分别对应创建,确保参数和GUI中的设置完全匹配。
内容的提问来源于stack exchange,提问作者renice
相关产品推荐
相关产品推荐

