为私人和公共配置文件添加NSIS防火墙例外

时间:2016-01-30 15:28:11

标签: nsis windows-firewall

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

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

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

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

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

但我只是想知道,它是否可以实现或是否存在任何基本阻碍因素?

虽然,您可以随时手动选中这两个复选框。

2 个答案:

答案 0 :(得分:5)

我无法让任何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'

答案 1 :(得分:0)

您是否尝试过调用SimpleFC :: AdvAddRule?将配置文件参数设置为NET_FW_PROFILE_TYPE2的值。您可以尝试0x7FFFFFFF,但您使用的插件是用Pascal编写的,我不知道它是否支持hex,因此您可能需要回退到2147483647。