我的组织生产了一套使用网络的 Windows 应用程序,因此当用户第一次运行我们的软件时,Windows 防火墙(如果它正在运行)会弹出一个窗口,通知用户我们的应用程序正在尝试使用网络,提示用户允许或拒绝访问。
许多其他应用程序(例如 Spotify)都会出现这种情况,但我们希望防止这些弹出窗口发生,因为它们可能会给我们的用户带来一些问题。某些应用程序(MSN Messenger、GoogeTalk)在运行时不会导致防火墙提醒用户,我们也希望这样做。
通过让我们的安装程序在以下位置写入适当的注册表项,我们已在 Windows XP 上成功完成此操作:
HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List
但是,这在 Windows 7 上没有相同的效果 - 防火墙弹出窗口仍然存在。
有什么想法可以做到这一点吗? (我们的安装程序和软件都经过数字签名。)
谢谢 汤姆·戴维斯
最佳答案
您可以通过向 Windows 内置的实用程序 netsh 添加异常(exception)到 Windows 防火墙,但该实用程序在 Windows XP 和 Windows 7 上的工作方式不同。以下是我使用的命令:
Windows XP:
添加:
netsh firewall add allowedprogram mode=ENABLE profile=ALL name=[exception name] program=[program path]
删除:
netsh firewall delete allowedprogram profile=ALL program=[程序路径]
Windows 7:
添加:
netsh advfirewall 防火墙添加规则 action=allow profile=any protocol=any enable=yes direction=[in|out] name=[exception name] program=[program path]
删除:
advfirewall 防火墙删除规则 profile=任意名称=[异常名称]
关于windows - 避免 Windows 防火墙弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3558494/