为多个用户配置 Windows 10 防火墙的正确方法

为多个用户配置 Windows 10 防火墙的正确方法

我们正在将 Windows 10 LTSC 映像部署到多台设备。该映像配置了一个管理员用户和第二个非管理员用户。非管理员用户是设备日常使用的主要帐户。配置的另一部分是为一组自定义应用程序提供防火墙规则。

此防火墙配置目前给我们带来了麻烦:

大多数预捕获图像配置都是由 Powershell 脚本驱动的 - 包括防火墙部分 - 使用管理员帐户。

该脚本最终使用 Invoke-Expression 从 Powershell 内部调用“netsh advfirewall ...”,并使用脚本参数。下面显示了一个示例:

netsh advfirewall firewall add rule name='Custom App Rule' enable=Yes profile=Domain,Private,Public dir=In action=Allow protocol=any localip='Any' remoteip='Any' program="C:\Program Files (x86)\Some Company\Bin\CustomApp.exe" edge=deferapp

之后,我们可以通过 Windows Defender 防火墙编辑器(“wf.msc”)检查该条目是否已创建(从导出列表输出 - 文本制表符分隔;制表符更改为逗号以节省空间):

Name,Group,Profile,Enabled,Action,Override,Program,Local Address,Remote Address,Protocol,Local Port,Remote Port,Authorized Users,Authorized Computers,Authorized Local Principals,Local User Owner,Application Package  
Custom App Rule,,All,Yes,Allow,No,C:\Program Files (x86)\Some Company\Bin\CustomApp.exe,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any

或者重新格式化以提高可见性:

Name = Custom App Rule
Group
Profile = All
Enabled = Yes
Action = Allow
Override = No
Program = C:\Program Files (x86)\Some Company\Bin\CustomApp.exe
Local Address = Any
Remote Address = Any
Protocol = Any
Local Port = Any
Remote Port = Any
Authorized Users = Any
Authorized Computers = Any
Authorized Local Principals = Any
Local User Owner = Any
Application Package = Any

配置过程中没有出现表明存在问题的错误消息。

重新启动系统会自动将我们登录到非管理员帐户(这是设计使然),并启动我们的“customapp.exe”。这反过来会触发意外的防火墙提示:

Windows Defender Firewall has blocked some features of this app
Your network administrator can unlock this app for you.
...
Path: C:\program files (x86)\some company\bin\customapp.exe
Network location: Public, private networks

果然,在检查 Windows Defender 防火墙编辑器时,我们的“customapp.exe”已创建了两个新的“阻止”规则:一个用于 TCP,一个用于 UDP(两者的配置文件均为公共)。唯一的额外区别似乎是“程序”中的路径全部是小写字母。尝试将应用程序与规则匹配时,路径中的大写字母是否重要?

关注点:

  • 为什么我们专门为我们的应用程序创建的防火墙规则似乎被忽略了?
  • 我们是否错误地使用了“netsh”?正确的方法是什么?
  • 是否有任何日志可以提供类似信息:应用程序 A 请求对 X 进行网络访问,检查防火墙规则 1 ... n,规则 y 由于 z 而不适用?(pfirewall.log 似乎仅列出 IP/端口,但没有列出应用程序名称 - 至少默认情况下。)

感谢您花时间阅读本文并就此问题提出建议。

相关内容