windows 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. )
Set "accountName=Administrador"
If "
%elevatedArg%"
NEQ "elevated"
( Start "" CMD /K "RunAs.exe /User:"%accountName%" "CMD.exe /C \"\"%~f0\" \"elevated\"\"""
)
:: Tu código aquí...
...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.