Me pregunto si es posible abrir automáticamente un archivo por lotes como administrador cuando hace doble clic en el archivo por lotes, porque los comandos deben ejecutarse con derechos administrativos.
Nota: Ya conozco la solución de hacer clic derecho en el archivo y hacer clic en Run As Administrator
, pero esta no es una solución automática.
windows-7
batch-file
Antp
fuente
fuente
Respuestas:
Sí, puede ejecutar un archivo por lotes con derechos administrativos. Desafortunadamente, no puede hacer esto directamente desde el archivo por lotes. Debería crear primero un acceso directo de ese archivo por lotes y cambiar las propiedades de ese acceso directo para que esto funcione.
Para crear un acceso directo, hay muchas formas, pero la forma más simple y rápida es usar la opción Enviar a en el menú contextual.
Por supuesto, puede enviar el acceso directo a donde quiera. Para elevar el archivo por lotes para que se ejecute como administrador, siga los pasos a continuación:
fuente
if "%~1" == "" start %USERPROFILE%\Desktop\Shortcut.lnk && GOTO :EOF
justo debajo@echo off
, y haría el enlace de acceso directo a enprogram.bat a
lugar de soloprogram.bat
.Como se publicó en una respuesta de Ben Gripka a otra pregunta:
fuente
La respuesta aceptada sí funciona. Pero descubrí que en Windows 7, tenía que soportar el diálogo UAC cada vez que se hacía clic en el acceso directo. ¡En mi humilde opinión, esto disminuye significativamente "automáticamente" en esta pregunta!
Luego descubrí que, en mi propia situación, el
.bat
programa en cuestión debe ejecutar el archivo en cuestión. En este caso, al marcar laRun with highest privileges
opción en laGeneral
pestaña de la tarea, se soluciona muy bien el problema. La.bat
continuación, se ejecuta como administrador sin ningún tipo de molestias.PD: ¡No me di cuenta de que no podía cargar imágenes en esta respuesta, porque ahora tengo una pequeña captura de pantalla conmigo! O puedo?
fuente
en Windows 7
Crear un acceso directo a ese archivo Batch
Haga clic derecho en el archivo de acceso directo
Haga clic en el botón de avance para encontrar una casilla de verificación para ejecutar como administrador
Mira la captura de pantalla a continuación
fuente
Puede 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 integrados de Windows. No use ningún otro script externo. Se puede usar para llamar a cualquier programa como Administrador, no solo scripts Batch. Es suficiente crear un pequeño script, que luego llama al programa que requiere permiso de administrador. Coloque esto en cualquier carpeta PATH de búsqueda (desde% PATH%).
Para usarlo, simplemente inserte la siguiente línea (exactamente como) en su secuencia de comandos Batch principal, que se ejecutará como Administrador. Esto se hace mejor en la parte superior de nuestro script principal y es mejor que primero, que se llamará a través de la LLAMADA adicional, algunos sub-scripts (vea la explicación detallada a continuación).
Esto se puede insertar dentro de cualquier script secundario, llamado por la sintaxis CALL. Para mostrar un mensaje mientras todavía no tiene privilegios de administrador, por ejemplo. durante 5 segundos antes de llamar a Batch_Admin establezca la variable "ShowAdminInfo" en la cantidad de segundos
Entonces, cómo funciona:
• Llama a UAC.ShellExecute a través de VBScript para recoger los permisos de usuario
• Batch ejecuta el script, o BAT o CMD
• La persona que llama al script puede tener espacios de nombre largos incluidos en la llamada entre comillas
• Devuelva todos los parámetros a la llamada al script maestro pasado desde la línea de comando, como si no hubiera transmisión de la llamada y comience 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 de script maestro si la llamada se realizó en el directorio donde este script es el maestro
• Auxiliar muestra un mensaje si establecemos ante nosotros la variable "ShowAdminInfo", por ejemplo. durante 5 segundos, lo que puede evitar el paso inmediato de los derechos del Administrador que proporciona información adicional y la posibilidad de una decisión informada. Ejemplos de configuración que debe establecerse: SET ShowAdminInfo = 5 De manera predeterminada, porque 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 un recurso de red, como: \ Computer \ share \ test.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 principal. La transición a los derechos de administrador siempre requiere que ejecute el script completamente de nuevo, en una nueva ventana, en un nuevo entorno, sin recurrir a las variables que se configuraron previamente en nuestro script y los valores de estas variables no pasaron para llamar como Administrador . Solo el script se ejecutará nuevamente.
Debajo de un script completo Batch_Admin. Información extendida sobre esto está en mi sitio.
Copie el siguiente texto en el Bloc de notas y guárdelo en el disco como: Batch_Admin.bat
fuente
Alternativamente, podría crear un segundo archivo por lotes, esto podría permitirle ejecutar cualquier cosa como administrador, mientras solo ingresa la contraseña de administrador una vez. La contraseña se guarda en un token de autenticación, y requiere una verdadera computadora para descifrar.
fuente
Esto también funciona FUENTE: https://social.technet.microsoft.com/Forums/windows/en-US/bc8a4561-d97e-4339-9b1c-9b90e54a7f92/request-elevation-inside-cmdbatch-file
fuente
Puede usar una utilidad de línea de comandos
elevate
. (enlace de descarga: https://drive.google.com/open?id=0Bz7qe_olclTwVGZLUklFMHNxQ00 )fuente
Es un ejemplo para ejecutar el bate como administrador. Esto funciona para mi.
Dice así:
fuente