以管理员权限静默运行当前目录中的 bat 脚本,实现检查启动服务的功能(通过 vbs 脚本)
1、建立 vbs 文件:
REM 获取 VBS 文件路径 currentDirectory = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\") -1) REM 在下面修改需要运行的 bat 文件名称(需要将此 vbs 和 bat 放置在同一文件夹下) batFilePath = "run_service_later.bat" REM 以管理员身份并静默执行上面指定的 bat 脚本 CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c """ & currentDirectory & "\" & batFilePath & """", , "runas", 0
想要绝对路径的自己修改,想不用管理员身份运行的自己搜索吧。。。
2、建立 bat 文件:
@echo off cd /d %~dp0 :: 判断管理员权限 net.exe session 1>NUL 2>NUL && ( goto as_admin ) || ( goto not_admin ) :as_admin echo 已经是管理员身份,不再申请 goto gogogo :not_admin echo 非管理员身份,申请权限 @ECHO OFF&PUSHD %~DP0 %1 %2 mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof :runas :gogogo :: 此处修改为需要运行的服务名称 set servicename=SunloginService :: 此处修改为需要延时执行的秒数 set delaysecond=2 echo 延迟 %delaysecond%秒 ping 127.0.0.1 -n %delaysecond% > nul echo 检查服务状态... for /f "skip=3 tokens=4" %%i in ('sc query %servicename%') do set "zt=%%i" &goto :next :next if /i "%zt%"=="RUNNING" (goto running) if /i "%zt%"=="STOPPED" (goto 2) :1 echo %servicename% 服务在运行,将停止服务 echo 'net stop %servicename%' echo made by doudou ping 127.0.0.1 -n 5 >nul exit :2 echo %servicename% 服务未运行,将启动服务 net start %servicename% echo made by doudou ping 127.0.0.1 -n 5 >nul exit :running echo 服务在运行,程序结束 ping 127.0.0.1 -n 5 >nul exit pause>null
如果不需要静默运行,该 bat 可以独立运行。需要改什么功能的自己看着来吧。。。
3、如需自启,请在下面路径中建立 vbs 或 bat 的快捷方式(Windows 10):
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
输了你,赢了世界又如何...
分类:
Windows
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!