避免Windows防火墙弹出窗口

避免Windows防火墙弹出窗口,windows,installation,popup,firewall,Windows,Installation,Popup,Firewall,我的组织生产一套利用网络的Windows应用程序,因此当用户第一次运行我们的软件时,Windows防火墙(如果正在运行)会弹出一个窗口,通知用户我们的应用程序正在尝试使用网络,提示用户允许或拒绝访问 很多其他应用程序(比如Spotify)都会出现这种情况,但ee希望阻止这些弹出窗口的出现,因为它们可能会给我们的用户带来一些问题。一些应用程序(MSN Messenger、GoogeTalk)在运行时从未引起防火墙向用户发出警报,我们也希望这样做 我们已成功地在Windows XP上完成此操作,安装

我的组织生产一套利用网络的Windows应用程序,因此当用户第一次运行我们的软件时,Windows防火墙(如果正在运行)会弹出一个窗口,通知用户我们的应用程序正在尝试使用网络,提示用户允许或拒绝访问

很多其他应用程序(比如Spotify)都会出现这种情况,但ee希望阻止这些弹出窗口的出现,因为它们可能会给我们的用户带来一些问题。一些应用程序(MSN Messenger、GoogeTalk)在运行时从未引起防火墙向用户发出警报,我们也希望这样做

我们已成功地在Windows XP上完成此操作,安装程序已在以下位置写入相应的注册表项:

HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplication\List

但是,这在Windows 7上没有相同的效果-防火墙弹出窗口仍然会出现

有什么办法吗?(我们的安装程序和软件都经过数字签名。)

谢谢
Tom Davies

在您的安装程序中(即,作为提升管理员),您需要编写代码以访问并作为例外添加您的应用程序

我实际上建议不要将此作为安装程序问题,原因如下:

  • 有多种软件防火墙 在那里;你不能编码和测试 为了他们所有人

  • 一些(如内置窗口) 防火墙)的API不会 允许您配置端口 禁用FW时的例外情况。
    如果用户稍后启用FW,您可以 我们又用水管冲洗了

  • 可能有外部防火墙 这仍然让你着迷

相反,我更愿意将此作为一种文档工作,以便用户和管理员完全了解网络需求。我曾经不得不在苹果的网站上搜索iTunes需要哪些端口,我向上帝发誓,他们试图为消费者软化一切,这让我很难找到

但是,如果您希望在安装过程中尽最大努力,WiX有一个自定义操作扩展,用于与防火墙交互,而不是编写自己的自定义操作。即使您正在使用另一个工具,如InstallShield,也可以将此行为包装在WiX合并模块中,然后使用您选择的主要工具使用它

您可以在以下网址阅读:


您可以通过使用内置于Windows中的实用程序netsh为Windows防火墙添加例外,但该实用程序在Windows XP和Windows 7上的工作方式不同。以下是我使用的命令:

Windows XP: 加:
netsh firewall add allowedprogram mode=ENABLE profile=ALL name=[exception name]program=[program path]

删除:
netsh防火墙删除允许的程序配置文件=所有程序=[程序路径]

Windows 7: 加:
netsh advfirewall firewall add rule action=allow profile=any protocol=any enable=yes direction=[in | out]name=[exception name]program=[program path]

删除:
advfirewall firewall delete rule profile=any name=[exception name]

感谢所有回复。通过使用Wix的防火墙扩展,我能够获得我想要的行为。