如何创建服务以在管理模式下运行应用程序,或者如何配置应用程序以管理模式运行始终使用批处理脚本?

时间:2017-06-12 14:22:11

标签: batch-file

我遇到了这个问题,我的任务是删除一些文件夹和一些服务,并在安装几天后自动更改系统环境变量。所以我创建了一个.exe文件,它将完成上述所有要求。但我遇到了删除服务的问题,更改环境变量我们需要管理员权限。

我的.exe文件包含以下代码

sc stop LaptopAudit
sc delete LaptopAudit 
REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V MYPROJECT
start cmd /k "@RD /S /Q %projectFolder% & exit" 

我的服务创建编码在这里

 nssm install LaptopAuditDestruct "%FolderPath%\selfdestr.exe" 

我需要在管理员模式下自动执行此selfdestr.exe文件。可能吗?请帮我。谢谢。还尝试创建任务调度程序,同样需要管理员模式的问题。

1 个答案:

答案 0 :(得分:0)

要使用批处理文件在admin中运行程序,您必须首先拥有脚本的管理员权限,如果它与C ++相同。这是我在网站上找到的一些我一直在使用的东西。把它放在脚本的开头,告诉我它是否有效!

rem Checking permissions
if "%PROCESSOR_ARCHITECTURE%" == "amd64" (
    >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) else (
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)

rem If error then no admin permissions
if %errorlevel% NEQ 0 (
    echo Catching admin permissions
    timeout /t 2 /nobreak >nul
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B
) else (
    pushd "%CD%"
    CD /D "%~dp0"
)