Se puede ejecutar un .bat como admin automaticamente?

Iniciado por snow915, 17 Julio 2017, 00:50 AM

0 Miembros y 1 Visitante están viendo este tema.

snow915

Alguien sabe si se puede y como ejecutar un archivo Batch para que inicie como administrador automaticamente?? Sin necesidad de darle clic derecho y ejecutar como admin...

Ancasu

¿Podrá la tierra soportar la población mundial?

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#3
Cita de: engel lex en 17 Julio 2017, 01:24 AMwindows tiene crontab?

La respuesta es NO, al menos no como tal. El equivalente en Windows serían las tareas programadas del sistema, archivo: TaskSchd.msc, pudiendo además utilizar su versión CLI, archivo: SchTasks.exe para crear, modificar y eliminar tareas de forma programática, pero SchTasks no puede ayudar en nada a la pregunta que el usuario ha formulado, a menos que la intención fuese iniciar el script con privilegios de administrador a una hora determinada o al inicio de sesión del usuario o cuando se produjese otro evento específico en el sistema operativo.

Una solución sencilla de implementar sería utilizando el comando externo RunAs.exe, declarando en el script un argumento que sirva como señal para determinar si el script necesita "reiniciarse" usando el comando RunAs para obtener privilegios de administrador. Puedes intentar probar así:

( Lo escribí al vuelo, no lo he testeado por tener el UAC desactivado. De todas formas en Google deberías poder encontrar miles de ejemplos parecidos al mio. )
Código (dos) [Seleccionar]
@Echo OFF

Set "accountName=Administrador"

Set "elevatedArg=%~1"
If "%elevatedArg%" NEQ "elevated" (
   Start "" CMD /K "RunAs.exe /User:"%accountName%" "CMD.exe /C \"\"%~f0\" \"elevated\"\"""
   Exit /B 1
)

:: Tu código aquí...

Pause
Exit /B 0


...Sin embargo, esta metodología de "reiniciar el script" con RunAs tiene un contratiempo, y es que es necesario introducir la contraseña manualmente, es así por defecto, no se puede ignorar este paso por motivos de seguridad en Windows/RunAs.

Si te resulta incómodo tener que escribir el password cada vez, entonces puedes optar por otras soluciones alternativas, de código... pero son mucho más tediosas, como por ejemplo esta:

O también puedes utilizar herramientas de terceros como el comando "Elevate" de la aplicación command´line NirCMD (lo que te ahorraría muchos quebraderos de cabeza, pero dependerías de aplicacioens de terceros):

...Y también puedes hacerlo con alguna aplicación del paquete PSTools, pero no recuerdo ahora mismo exactamente cual era, ¿PSExec.exe quizás?, puedes buscarlo en Google.

Saludos.