/*
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
暂无评论内容