我遇到了这个问题,我的任务是删除一些文件夹和一些服务,并在安装几天后自动更改系统环境变量。所以我创建了一个.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文件。可能吗?请帮我。谢谢。还尝试创建任务调度程序,同样需要管理员模式的问题。
答案 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"
)