为私人和 public 配置文件添加 NSIS 防火墙例外
Add NSIS firewall exception for both private and public profiles
我想将我的应用程序添加到 windows 防火墙例外列表。
我正在使用 NSIS Simple Firewall Plugin 并执行以下操作。
SimpleFC::AddApplication "${PRODUCT_NAME}" "$INSTDIR/${PRODUCT_NAME}.exe" 3 2 "" 1
Pop [=11=] ; return error(1)/success(0)
我的应用程序已成功添加到防火墙例外列表,但问题是我想为 public 和专用网络配置文件添加例外,如下所示:
但是在提到的插件中没有相同的选项,并且当前活动的配置文件(public 或私有)默认被 selected。
我研究过其他 nsis 防火墙插件,但 none 有此功能。有人能告诉我前进的方向吗?我可能会考虑为此编写一个自定义插件。
但我只是想知道,它是实现还是有任何基本的阻碍?
不过,您始终可以手动 select 两个复选框。
你试过打电话给 SimpleFC::AdvAddRule 吗?将配置文件参数设置为 NET_FW_PROFILE_TYPE2 中的值。您可以尝试 0x7FFFFFFF,但您使用的插件是用 Pascal 编写的,我不知道它是否支持十六进制,因此您可能不得不回退到 2147483647。
我一直无法让任何 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'
我想将我的应用程序添加到 windows 防火墙例外列表。 我正在使用 NSIS Simple Firewall Plugin 并执行以下操作。
SimpleFC::AddApplication "${PRODUCT_NAME}" "$INSTDIR/${PRODUCT_NAME}.exe" 3 2 "" 1
Pop [=11=] ; return error(1)/success(0)
我的应用程序已成功添加到防火墙例外列表,但问题是我想为 public 和专用网络配置文件添加例外,如下所示:
但是在提到的插件中没有相同的选项,并且当前活动的配置文件(public 或私有)默认被 selected。
我研究过其他 nsis 防火墙插件,但 none 有此功能。有人能告诉我前进的方向吗?我可能会考虑为此编写一个自定义插件。
但我只是想知道,它是实现还是有任何基本的阻碍?
不过,您始终可以手动 select 两个复选框。
你试过打电话给 SimpleFC::AdvAddRule 吗?将配置文件参数设置为 NET_FW_PROFILE_TYPE2 中的值。您可以尝试 0x7FFFFFFF,但您使用的插件是用 Pascal 编写的,我不知道它是否支持十六进制,因此您可能不得不回退到 2147483647。
我一直无法让任何 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'