【问题标题】:Add NSIS firewall exception for both private and public profiles为私有和公共配置文件添加 NSIS 防火墙例外
【发布时间】:2016-01-30 15:28:10
【问题描述】:

我想将我的应用程序添加到 Windows 防火墙例外列表中。 我正在使用NSIS Simple Firewall Plugin 并进行以下操作。

SimpleFC::AddApplication "${PRODUCT_NAME}" "$INSTDIR/${PRODUCT_NAME}.exe" 3 2 "" 1
Pop $0 ; return error(1)/success(0)

我的应用程序已成功添加到防火墙例外列表,但问题是我想为公共和专用网络配置文件添加例外,如下所示:

但是在提到的插件中没有相同的选项,并且默认选择当前活动的配置文件(公共或私人)。

我探索了其他 nsis 防火墙插件,但没有一个具有此功能。有人能告诉我前进的方向吗?我可能会考虑为此编写一个自定义插件。

但我只是想知道,它是可以实现的还是有任何基本的阻碍?

不过,您始终可以手动选择这两个复选框。

【问题讨论】:

    标签: nsis windows-firewall


    【解决方案1】:

    我从来没有让任何 NSIS 防火墙插件为我正常工作。 我最终只是简单地在我的目标系统上使用 netsh:

    在安装部分:

    ExecWait 'netsh advfirewall firewall add rule name=MyProg dir=in action=allow program="$INSTDIR\MyProg.exe" enable=yes profile=public,private'
    

    在卸载部分:

    ExecWait 'netsh advfirewall firewall delete rule name=MyProg'
    

    【讨论】:

    • 谢谢,我也必须这样做。 SimpleFC 只会在 Win8/10 上添加到公共网络。
    【解决方案2】:

    您是否尝试过调用 SimpleFC::AdvAddRule?将配置文件参数设置为来自NET_FW_PROFILE_TYPE2 的值。您可以尝试 0x7FFFFFFF 但您使用的插件是用 Pascal 编写的,我不知道它是否支持十六进制,所以您可能不得不回退到 2147483647。

    【讨论】:

    • 我试过了,但它没有在防火墙例外列表中列出我的应用程序。执行以下操作:- SimpleFC::AdvAddRule "${PRODUCT_NAME}" "${PRODUCT_NAME}" 256 2 1 2147483647 1 "$INSTDIR/${PRODUCT_NAME}.exe" "" "" "" "" "" "" ""
    猜你喜欢
    • 1970-01-01
    • 2011-01-23
    • 2011-12-03
    • 2012-11-08
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    相关资源
    最近更新 更多