Puedes usar mi script Batch_Admin para elevar automáticamente al Administrador para su uso en cualquier tipo de script propio de Batch, o BAT o .CMD. Esta función asegura el trabajo en un entorno estándar, con herramientas estándar y de la misma manera en diferentes sistemas Windows. Utiliza varios comandos estándar e incorporados de Windows. No utilice ningún otro script externo. Se puede usar para llamar a cualquier programa como Administrador, no sólo a los scripts Batch. Basta con crear un pequeño script, que luego llama al programa que requiere permiso de Administartor. Colóquelo en cualquier carpeta de búsqueda PATH (desde %PATH%).
Para usarlo, simplemente inserte la siguiente línea (exactamente como) en su script Batch padre, que debe ser ejecutado como Administrador. Esto se hace mejor en la parte superior de nuestro script padre y es mejor que primero, que será llamado a través del CALL más adelante, algunos sub-scripts (ver explicación detallada más abajo).
net session >nul 2>nul&if errorlevel 1 Batch_Admin "%~0" %*
Esto puede ser insertado dentro de cualquier script hijo, llamado por la sintaxis CALL. Para mostrar un mensaje mientras está todavía no tiene privilegios de Administrador, por ejemplo, durante 5 segundos antes de llamar a Batch_Admin establece la variable “ShowAdminInfo” en el número de segundos
SET ShowAdminInfo=5
net session >nul 2>nul&if errorlevel 1 Batch_Admin "%~0" %*
Así que cómo funciona:
Llama a UAC. ShellExecute a través de VBScript para recoger los permisos de usuario
Ejecuta el script por lotes, o BAT o CMD
El llamador del script puede tener un largo espacio para el nombre incluido en la llamada entre comillas
Devuelve todos los parámetros llama al script maestro pasado desde la línea de comandos, como si no hubiera transmisión de la llamada e inicia algo desde cero, también con caracteres especiales, como signos de exclamación (! ) y porcentaje (%), y también con paréntesis ()
Contiene una ubicación del master script si la llamada tuvo lugar en el directorio donde este script es el master
Auxiliar muestra un mensaje si ponemos ante nosotros la variable “ShowAdminInfo”, por ejemplo, durante 5 segundos lo que puede impedir el paso inmediato de los derechos del Administrador dando información adicional y la posibilidad de una decisión informada. Ejemplos de ajustes que deben ser establecidos: SET ShowAdminInfo=5 Por defecto, debido a que esta variable no está definida, no se muestra.
El script está llamando también en la ruta de búsqueda del sistema % PATH% y desde el recurso de red, como: \Computadora\compartir.bat
Evita malentendidos al escribir los archivos auxiliares necesarios cuando el script llama a varios Batch_Admin casi al mismo tiempo. Utiliza el número aleatorio del 1 al 100
Pero, lo mejor es usarlo en el script padre. La transición a los derechos de Administrador siempre requiere que se ejecute el script completamente de nuevo, en una nueva ventana, en un nuevo entorno, sin recurrir a las variables establecidas previamente en nuestro script y los valores de estas variables no pasaban entonces a la llamada como Administrador. Sólo el script se ejecutará de nuevo.
Debajo de un completo script Batch_Admin. Información extendida sobre esto está en mi sitio.
Copia el siguiente texto en el Bloc de Notas y guárdalo en el disco como: Batch… Admin… Bat…