如何通过PowerShell配置Windows Defender实现应用公/私网访问(与GUI等效)
用PowerShell实现与Windows Defender防火墙GUI操作完全一致的应用网络权限配置
要实现和「防火墙和网络保护」GUI中手动开启应用私有、公开网络访问完全一致的效果(包括GUI状态同步、防火墙行为匹配),可以通过New-NetFirewallRule精准配置参数完成,具体方案如下:
核心命令示例
针对指定应用创建与GUI操作等价的防火墙规则:
New-NetFirewallRule -DisplayName "目标应用名称" ` -Direction Inbound ` -Action Allow ` -Program "C:\完整路径\目标应用.exe" ` -Profile Domain,Private,Public ` -Enabled True ` -Group "@FirewallAPI.dll,-25204" ` -Description "允许应用通过私有和公开网络访问"
参数说明(对应GUI行为)
-DisplayName:设置为GUI中显示的应用名称,确保规则在「允许的应用」列表中可被识别-Program:必须指定应用的完整可执行文件路径,这是规则与GUI中应用条目关联的关键-Profile Domain,Private,Public:完全对应GUI中勾选「私有网络」+「公开网络」的行为(GUI的「私有网络」实际覆盖Domain和Private两种配置文件)-Group "@FirewallAPI.dll,-25204":将规则归类到Windows Defender防火墙的「允许应用」分组中,确保GUI的复选框同步显示已勾选状态(若省略此参数,规则会被归类为自定义规则,不会出现在应用列表中)-Direction Inbound:与GUI操作一致,允许入站网络访问-Action Allow:明确允许应用的网络请求
对已有规则的修改
如果目标应用已存在防火墙规则但未勾选网络权限,可直接修改现有规则:
Set-NetFirewallRule -DisplayName "目标应用名称" ` -Profile Domain,Private,Public ` -Enabled True
关于授权范围的确认
使用-Profile Any与-Profile Domain,Private,Public的效果完全等价,因为Any覆盖所有三种防火墙配置文件。这和手动在GUI中勾选两个复选框的授权范围完全一致,不存在过度授权——GUI操作的本质就是允许应用在所有网络配置文件下的入站访问。
验证效果
执行命令后,打开「控制面板 > 系统和安全 > Windows Defender防火墙 > 允许应用通过Windows Defender防火墙」,找到目标应用,即可看到「私有网络」和「公开网络」的复选框已自动勾选,防火墙过滤行为与手动操作完全相同。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

