我希望我的批处理文件启动另一个具有提升(管理员)权限的批处理文件,而不必接受提示。 我有一个具有管理员权限的用户(称为"用户"),但如果我尝试:
runas /savecred /user:user "program.bat"
权利不会升高。 但如果我尝试:
runas /savecred /user:administrator "program.bat"
并输入" user"的密码它说:未知的用户或错误的密码短语。
所以:我只需要使用" user" -account来提升权利?
答案 0 :(得分:0)
这可能有点矫枉过正,但如果第二批文件应该始终以管理员身份运行,您可以在开头粘贴以下代码:
@echo off & setlocal EnableDelayedExpansion
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>NUL 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>NUL 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
IF '%errorlevel%' NEQ '0' (
echo Asking for administrative rights
goto uac
) ELSE ( goto adm )
:uac
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\uac.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\uac.vbs"
"%temp%\uac.vbs"
del "%temp%\uac.vbs"
cls
echo Did not get administrative rights
exit
:adm
pushd "%CD%"
CD /D "%~dp0"
cls
echo Got administrative rights
::
:: YOUR CODE HERE
::
编辑:当您禁用UAC时,它不会显示提示并授予您管理员权限。