
Estoy trabajando en un pequeño script por lotes que eleva los programas básicos de Windows para ejecutarlos como administrador.
Todas las funciones funcionan bien, pero me encontré con un problema al intentar ejecutar "regedit.exe".
Cuando se selecciona la opción 3 en el script y debería ejecutar regedit como administrador, aparece el error:
740: La operación solicitada requiere elevación.
Aquí está el guión:
echo off
cls
echo.
echo Start as admin:
echo /----------------\
echo # 1. CMD #
echo # 2. Task Manager#
echo # 3. Regedit #
echo # 0. Exit #
echo \----------------/
echo.
set /p run=
if %run%==1 (
set run="cmd"
)
if %run%==2 (
set run="taskmgr"
)
if %run%==3 (
set run="regedit"
)
if %run%==0 (
exit
)
runas /savecred /user:admin %run%
¿Hay una solución para esto?
Me gustaría que esto funcione sin instalar programas de terceros, modificar el registro o deshabilitar UAC.
Respuesta1
Puede lograrlo iniciando un nuevo indicador CMD con RunAs, al que le indica que inicie su comando.
Para hacer esto en su lote, cambie la última línea a:
runas /savecred /user:admin "cmd /c %run%"
Respuesta2
Add this to the top of your Batch file and at the end just put %run% instead of (runas /savecred /user:admin %run%)
@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
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"
:--------------------------------------
Respuesta3
Tal vezestepuede ayudar, o tal vez iniciar todo el lote como administrador puede ayudar, creando otro script por lotes que contenga:
runas /user:admin C:\Path_to_your_batch_file\name.bat
Respuesta4
- Haga clic derecho en C:\Windows\regedit.exe y elija Propiedades
- En la pestaña Compatibilidad, elija "Ejecutar este programa como administrador".