NSIS 添加防火墙规则实战

最简单的实现方式莫过于调用DMD指令(netsh advfirewall)指令,对于NSIS来说,调用执行指令是非常简单的。我们这里就是采用的这种方式。

最简单的实现方式莫过于调用DMD指令(netsh advfirewall)指令,对于NSIS来说,调用执行指令是非常简单的。我们这里就是采用的这种方式。关于netsh advfirewall的详细用法和参数说明,我们这里就不详述了。

NSIS的相关脚本有:

1、ExecWait "$INSTDIR\nsis.bat"                                     //可以等待          不可以隐藏窗口 
2、nsExec::Exec "$INSTDIR\nsis.bat"                                //可以等待          可以隐藏窗口
3、ExecShell Open "$INSTDIR\nsis.bat" "" SW_HIDE       // 不可以等待     可以隐藏窗口
4、ExecCmd::exec "$INSTDIR\nsis.bat"                            // 不可以等待     可以隐藏窗口  ( Pop $0、 ExecCmd::wait $0  等待)

我们这里使用的是nsExec::Exec,直接上代码:

Section -RePort
  nsExec::Exec 'netsh advfirewall firewall add rule name="XXXX" dir=in program="$INSTDIR\XXXX.exe" protocol=tcp localport=xxxx action=allow'
  Pop $0
  ${If} $0 != 0
	MessageBox MB_OK|MB_ICONSTOP "打开xxxx端口失败!请手动开放此端口。"
  ${EndIf}
SectionEnd
nsExec::Exec 'netsh advfirewall firewall delete rule name="CPRR"'

兼容性问题:只适用于 Vista 及以上版本的操作系统。XP, 2003无法使用。

(152)
打赏 支付红包 支付红包 微信打赏 微信打赏
上一篇 2023-04-19 15:11:27
下一篇 2023-07-11 16:11:57

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信