Ejecutar Batch archivo como administrador
- Cree un acceso directo del Batch archivo para ejecutarlo como administrador
- Codifique un Batch archivo para ejecutarlo como administrador
- Conclusión
Un Batch archivo consta de comandos que se ejecutan mediante el símbolo del sistema. Algunos de estos comandos no se ejecutan sin el permiso del administrador; por lo tanto, es importante ejecutar un Batch archivo como administrador.
Manualmente, puede ejecutar el Batch archivo como administrador haciendo clic con el botón derecho en el Batch archivo que desea ejecutar y seleccionando Ejecutar como administrador.
En lugar de hacerlo manualmente cada vez, también puede hacer que se ejecute automáticamente como administrador simplemente agregando un código en la parte superior de su Batch archivo.
Alternativamente, también puede crear un acceso directo y configurarlo para que se ejecute como administrador desde la ventana de propiedades. Cada vez que haga doble clic en el Batch archivo, se ejecutará como administrador.
Hay muchas formas de ejecutar automáticamente el Batch archivo como administrador. Este tutorial ilustrará diferentes formas de ejecutar un Batch archivo como administrador.
Cree un acceso directo del Batch archivo para ejecutarlo como administrador
Una forma sencilla de ejecutar un Batch archivo en modo administrador es crear un acceso directo y configurarlo para que siempre se ejecute como administrador. Haga clic derecho en el Batch archivo y haga clic en crear acceso directo
para crear un acceso directo.
Se creará un archivo de acceso directo en el escritorio. Vaya a la ventana Propiedades del archivo de acceso directo haciendo clic derecho sobre él.
Haga clic en Avanzado en la pestaña Acceso directo y seleccione la casilla de verificación Ejecutar como administrador.
Eso es todo, y el acceso directo se ha configurado para ejecutarse siempre en el modo de administración. Cuando haga doble clic en el archivo de acceso directo, se mostrará una ventana de UAC para confirmar.
Cuando aplica el método anterior, el directorio actual del Batch archivo cambia; esto puede causar errores o que su archivo no se ejecute. Simplemente agregue las siguientes líneas en la parte superior de su Batch archivo para evitar esto.
@setlocal enableextensions
@cd /d "%~dp0"
Ejemplo:
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
::START OF THE PROGRAM::
echo "Check the system's energy efficiency"
powercfg-energy
El código anterior cambiará el directorio actual a la ubicación del Batch archivo.
Producción:
Codifique un Batch archivo para ejecutarlo como administrador
Use el comando runas
para ejecutar el Batch archivo como administrador
Si el Batch archivo contiene una línea en particular o un conjunto de líneas que requiere privilegios administrativos, puede usar el comando runas
para ejecutar una línea en particular en modo administrador.
@echo off
echo "Check the system's energy efficiency"
runas /user:sid "cmd /k ipconfig"
Producción:
o
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
echo "Check the system's energy efficiency"
runas /user:sid "notepad C:\Users\sid\Desktop\testfile.bat"
El código anterior ejecutará el Batch archivo con un usuario administrador. Introduzca la contraseña si se le solicita.
También puede usar /savecred
para guardar la contraseña y usarla la próxima vez que ejecute el Batch archivo. Solo necesita ingresar la contraseña una vez.
Producción:
Cree un archivo VBS para ejecutar el Batch archivo como administrador
La creación de un acceso directo al Batch archivo también cambió el directorio de trabajo actual.
En su lugar, puede agregar el siguiente código en la parte superior de su Batch archivo. Esto ejecutará el Batch archivo en modo administrador y permanecerá en el mismo directorio.
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\adminmode.vbs" del "%temp%\adminmode.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\adminmode.vbs" && "%temp%\adminmode.vbs" && exit /B )
Ejemplo:
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\adminmode.vbs" del "%temp%\adminmode.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\adminmode.vbs" && "%temp%\adminmode.vbs" && exit /B )
echo "Check the system's energy efficiency"
powercfg -energy
El código anterior comprueba si el archivo se está ejecutando en modo administrador. Si no lo hace, crea un archivo VBS adminmode.vbs
, que luego vuelve a ejecutar el archivo Batch en modo administrador usando el parámetro runas
.
Para acceder al archivo Batch, usamos cd /d "%~dp0"
, donde:
d
- se expande a la letra de la unidadp
- se expande al camino0
- se expande a la ruta completa
El %~dp0
cambia el directorio actual al directorio del Batch archivo. Cuando ejecute el Batch archivo, se ejecutará como administrador al mostrar el mensaje de confirmación de UAC.
Producción:
Conclusión
Entonces, discutimos dos formas diferentes de ejecutar un Batch archivo como administrador.
Además, hay otras formas de ejecutar un Batch archivo en modo administrador, como usar la utilidad de elevación, convertir el Batch archivo a .exe
o instalar el comando sudo
. Pero los métodos mencionados anteriormente son fáciles de implementar, incluso si es un principiante.