【问题标题】:Avoiding a Windows Firewall popup避免 Windows 防火墙弹出窗口
【发布时间】:2023-03-10 12:14:01
【问题描述】:

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

这种情况发生在许多其他应用程序(例如 Spotify)中,但我们希望阻止这些弹出窗口的发生,因为它们可能会给我们的用户带来一些问题。某些应用程序(MSN Messenger、GoogeTalk)运行时不会导致防火墙提醒用户,我们也希望这样做。

通过让我们的安装程序在以下位置写入适当的注册表项,我们已在 Windows XP 上成功完成此操作:

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

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

任何想法我们可以如何做到这一点? (我们的安装程序和软件都经过数字签名。)

谢谢 汤姆戴维斯

【问题讨论】:

    标签: windows installation popup firewall


    【解决方案1】:

    您可以通过向 Windows 内置的实用程序 netsh 添加例外,但该实用程序在 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=[program path]

    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 的防火墙扩展,我能够获得我想要的行为。
    【解决方案2】:

    实际上,出于以下几个原因,我建议不要将此作为安装程序问题:

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

    • 一些(如内置窗口 firewall ) 有 API 不会 允许您配置端口 禁用 FW 时的例外情况。
      如果用户稍后启用 FW,您 又被喷了。

    • 可能存在外部防火墙 仍然可以得到你。

    相反,我更愿意将此作为文档工作,以便用户和管理员充分了解网络要求。有一次,我不得不在 Apple 的网站上查找 iTunes 需要哪些端口,我向上帝发誓,他们试图为消费者软化一切,所以很难找到。

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

    你可以在这里阅读:

    Joy Of Setup Blog

    WiX Documentation

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-19
        • 1970-01-01
        相关资源
        最近更新 更多