zoukankan      html  css  js  c++  java
  • 以管理员权限静默运行当前目录中的 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:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp


    输了你,赢了世界又如何...
  • 相关阅读:
    单例模式
    抽象工厂模式
    工厂方法模式
    并发编程:等待/通知机制
    并发编程:深入理解synchronized
    并发编程:为何线程的等待方法都会抛出InterruptException
    并发编程:基础知识
    Mybatis:整合Spring
    Mybatis:插件原理
    Mybatis:体系结构和工作原理
  • 原文地址:https://www.cnblogs.com/xwgli/p/14050039.html
Copyright © 2011-2022 走看看