Solución:
¡Este script hace el truco! Solo pégalo en la parte superior de tu archivo bat. Si desea revisar la salida de su secuencia de comandos, agregue un comando de “pausa” en la parte inferior de su archivo por lotes.
Este script ahora está ligeramente editado para admitir argumentos de línea de comando.
@echo off
:: BatchGotAdmin
::-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%system32cacls.exe" "%SYSTEMROOT%system32configsystem"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
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
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
::--------------------------------------
::ENTER YOUR CODE BELOW:
Es posible que primero tenga que usar otro archivo por lotes para iniciar el segundo con derechos de administrador.
En el primer uso
runas /noprofile /user:mymachineadministrator yourbatchfile.bat
Después de leer más, debe poder escribir la contraseña cuando se le solicite. No puede canalizar la contraseña ya que esta función se bloqueó por razones de seguridad.
Puede tener más suerte con psexec.
prensa control+Cambio y haga doble clic en un acceso directo para ejecutarlo como un proceso elevado.
También funciona desde el menú de inicio.