如何应用 AutoIt 修改本机的防火墙配置?(开启,关闭防火墙,添加程序信任到防火墙)
以前,公司的实施人员配置好项目之后,不同的机器之间经常性的无法建立链接,后来发现是防火墙的设置。虽然是个小问题,但是经常性的忘记这个配置。
现在,我决定把对防火墙的设置,加入到我给实施人员的配置工具中。
打开防火墙其实很简单,代码如下:
#RequireAdmin Run(@ComSpec & " /c " & 'Netsh advfirewall set currentprofile state on', "", @SW_HIDE)
该命令以管理员身份运行才能起作用,所以需要 #RequireAdmin
如果要关闭防火墙,只需要把Run里面的命令中的on换成off即可。
遇到问题当然不能关闭防火墙就了事,最好还是在防火墙开启的情况下,添加应用程序到信任列表。
这儿我就放一个简单的函数供大家参考,应该说是万变不离其宗啊
Func in_add() If FileExists(@ScriptDir & "\SageTouchBrower.exe") = 1 Then Run(@ComSpec & " /c " & 'netsh advfirewall firewall delete rule name="SageTouchBrower" dir=in program="' & @ScriptDir & '\SageTouchBrower.exe"', "", @SW_HIDE) _GUICtrlListBox_AddString($hListBox, "Delete the existing in rule for progcess: SagetouchBrower.exe in fireware") Run(@ComSpec & " /c " & 'netsh advfirewall firewall add rule name="SageTouchBrower" dir=in program="' & @ScriptDir & '\SageTouchBrower.exe"' & " security=notrequired action=allow", "", @SW_HIDE) _GUICtrlListBox_AddString($hListBox, "Add a new in rule for process: SagetouchBrower.exe in fireware") Else _GUICtrlListBox_AddString($hListBox, "文件 " & @ScriptDir & "\SageTouchBrower.exe 不存在!...") _GUICtrlListBox_AddString($hListBox, "所以无法把大屏端应用程序添加信任到防火墙,请手动配置!" ) EndIf EndFunc
解释一下:
要把某应用程序添加到信任列表,必须要:
1. 判断该程序是否存在;如果不存在,添加也没什么必要;
2. 删除防火墙设置中已经添加的该运行程序的信任,要不然点一次我的配置文件就添加一次信任,还不把机器整死?
3. 做的每一步操作,都有记录,当然,该记录可以输入到log文件,也可以展示出来
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具
· Vue3封装支持Base64导出的电子签名组件