Firewall-Disabler是NSIS防火墙启用禁用设置的插件

/*
Firewall-Disabler是NSIS防火墙启用禁用设置的插件
在win7下测试已经无效了,此插件源码提供了一些简单的防火墙概念还是值得参考一下
例如防火墙注册表值的更改之类.衿华客使用命令行实现了一个简单的防火墙启用禁用功能.
希望此文对你有所帮助.
*/
!AddPluginDir "../Plugins"
!include "Logiclib.nsh"
#RequestExecutionLevel admin
SetCompressor /SOLID lzma
OutFile "Firewall-Disable.exe"
Section "永恒心锁"
 ;查找防火墙是否启用1启用0禁用
 Firewall-Disabler::QueryFirewall
 Pop $R0
 ${If} $R0 == 1
 MessageBox MB_OK "防火墙处于启用状态"
 ${Else}
 MessageBox MB_OK "防火墙处于禁用状态"
 ${EndIf}
; #当然你也可以直接用原生的nsis程序来实现,读取注册表标记值
; ReadRegStr $0 HKLM "SYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyStandardProfile" "EnableFirewall"
; ${If} $R0 == 1
; MessageBox MB_OK "防火墙处于启用状态"
; ${Else}
; MessageBox MB_OK "防火墙处于禁用状态"
; ${EndIf}
 ;关闭防火墙(在win732bit下运行无效)
 Firewall-Disabler::DisableFirewall
 Pop $R0
 ${If} $R0 == 1
 MessageBox MB_OK "关闭防火墙成功"
 ${Else}
 MessageBox MB_OK "关闭防火墙失败"
 ${EndIf}
 #那我们直接用命令行来操作吧
 ;关闭防火墙
 nsExec::exec 'netsh firewall set opmode mode=disable'
 SetShellVarContext all
 nsExec::exec 'netsh firewall set opmode mode=disable'
 SetShellVarContext current
 ;打开防火墙
 nsExec::exec 'netsh firewall set opmode mode=enable'
 SetShellVarContext all
 nsExec::exec 'netsh firewall set opmode mode=enable'
 SetShellVarContext current
SectionEnd
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容