Windows Tips & News

Cómo elevar automáticamente un archivo por lotes para ejecutarlo como administrador

click fraud protection
RECOMENDADO: Haga clic aquí para solucionar problemas de Windows y optimizar el rendimiento del sistema

A veces es necesario crear un archivo por lotes que incluya comandos que requieran derechos elevados. Debido a la función UAC incluida en Windows desde Windows Vista, cuando se inicia un archivo por lotes, se abre sin los derechos de acceso requeridos a menos que haga clic con el botón derecho y seleccione "Ejecutar como administrador" en el contexto menú. Así es como puede crear un archivo por lotes que se elevará automáticamente.

Anuncio publicitario


Antes de continuar, vea cómo agregar un archivo por lotes (* .bat) al nuevo menú del Explorador de archivos. Coloque el siguiente contenido al comienzo de su archivo por lotes:
:: Verifique y obtenga automáticamente los derechos de administrador V2. @echo apagado. CLS. ECO. ECHO ECHO Ejecución de shell de administración. ECHO: init. setlocal DisableDelayedExpansion. establecer "batchPath =% ~ 0" para %% k en (% 0) establezca batchName = %% ~ nk. establecer "vbsGetPrivileges =% temp% \ OEgetPriv_% batchName% .vbs" setlocal EnableDelayedExpansion: checkPrivileges. ARCHIVO NETO 1> NUL 2> NUL. if '% errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges): getPrivileges. if '% 1' == 'ELEV' (echo ELEV & shift / 1 & goto gotPrivileges) ECO. ECO ************************************** ECHO invoca a UAC para la intensificación de privilegios. ECHO ************************************* ECHO Establecer UAC = CreateObject ^ ("Shell. Aplicación "^)>"% vbsGetPrivileges% " ECHO args = "ELEV" >> "% vbsGetPrivileges%" ECHO para cada strArg en WScript. Argumentos >> "% vbsGetPrivileges%" ECHO args = args ^ & strArg ^ & "" >> "% vbsGetPrivileges%" ECHO Siguiente >> "% vbsGetPrivileges%" ECHO UAC.ShellExecute "! BatchPath!", Args, "", "runas", 1 >> "% vbsGetPrivileges%" "% SystemRoot% \ System32 \ WScript.exe" "% vbsGetPrivileges%"% * salir / B: gotPrivileges. setlocal y pushd. cd / d% ~ dp0. if '% 1' == 'ELEV' (del "% vbsGetPrivileges%" 1> nul 2> nul & shift / 1):: START. REM Ejecutar shell como administrador (ejemplo): ponga aquí el código que desee. ECHO% batchName% Argumentos:% 1% 2% 3% 4% 5% 6% 7% 8% 9.

Coloque sus propios comandos por lotes que requieran elevación debajo de la última línea.

El código proporcionado creará un archivo VBS especial que lo reiniciará si no se está ejecutando como administrador. Por lo tanto, si lo inicia con permisos limitados, recibirá un mensaje de UAC que le solicitará que eleve los privilegios antes de ejecutar sus comandos.

Así es como se ve en Windows 10:Archivo por lotes de Windows 10

Solicitud de UAC de archivo por lotes de Windows 10

Windows 10 eleva automáticamente un archivo por lotesLos créditos para este código van a Mate.

RECOMENDADO: Haga clic aquí para solucionar problemas de Windows y optimizar el rendimiento del sistema
Cambiar el tamaño del texto del cuadro de mensaje en Windows 10 Creators Update

Cambiar el tamaño del texto del cuadro de mensaje en Windows 10 Creators Update

RECOMENDADO: Haga clic aquí para solucionar problemas de Windows y optimizar el rendimiento del s...

Lee mas

Libere espacio en disco después de la actualización de Windows 10 versión 1703

Libere espacio en disco después de la actualización de Windows 10 versión 1703

6 respuestasSi instaló Windows 10 versión 1703 "Creators Update" sobre una versión anterior de Wi...

Lee mas

Cambiar el tamaño del texto de la barra de título en Windows 10 Creators Update

Cambiar el tamaño del texto de la barra de título en Windows 10 Creators Update

RECOMENDADO: Haga clic aquí para solucionar problemas de Windows y optimizar el rendimiento del s...

Lee mas