Pregunta

Esta es una máquina con Windows 2003 que se enciende todas las mañanas, pero nadie inicia sesión hasta algunas horas después.

Quiero usar el tiempo intermedio para ejecutar un script de respaldo c: \ script \ backup.cmd

¿Cómo puedo iniciar esto sin supervisión después de que la máquina se haya encendido?

Probé 2 claves de registro, pero esto dio como resultado que el script se ejecutara después de que un usuario inicia sesión (lo cual es demasiado tarde):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices

Al final utilicé Windows TaskScheduler, ¿quién tiene esa opción, pero me preguntaba si hay otra posibilidad?

¿Fue útil?

Solución

Respuesta corta: GPEDIT.MSC (Inicio, Ejecutar, GPEdit.msc)

Windows 2000 y versiones posteriores [1] ofrecen una colección de secuencias de comandos de inicio en el editor de políticas:

  • Configuración del equipo - > Configuración de Windows - > Scripts (inicio / apagado)

Hay un área de script inicio de sesión equivalente (es decir, después del inicio de la computadora, cuando un usuario inicia sesión) en el bit de configuración del usuario.

Longer:

GPEDIT.MSC es la consola de edición de Políticas de grupo y se ejecuta en el almacén de Políticas de grupo de la computadora local cuando se usa directamente, por lo que es útil para configurar parámetros de solo local. Cuando se usa Active Directory, la misma interfaz se usa para editar objetos de políticas de grupo (GPO) alojados en el bosque, por lo que la misma configuración está disponible en muchas máquinas.

Las secuencias de comandos de inicio de la computadora se ejecutan en el contexto de la computadora , es decir, LocalSystem, como usted señaló, por lo que a menudo no pueden acceder a las unidades de red que requieren una determinada membresía de usuario o grupo para funcionar, etc. . Cuando las computadoras acceden a la red, generalmente (con excepciones) usan su cuenta MACHINENAME $.

Un script de inicio es una forma rápida y fácil de ejecutar un proceso cuando la máquina arranca.

Sin embargo, el proceso de inicio de la computadora se verá afectado por el tiempo que lleva ejecutar el programa, por lo que es posible que desee asegurarse de llamarlo con el comando START desde un archivo por lotes, o especificar que no espere a que se complete el ejecutable en cualquier lenguaje de script que uses. (el punto clave es: ejecutar el script asincrónicamente a menos que sea crítico, o no necesite ejecutarse asincrónicamente porque siempre tomará no time en absoluto. Botas largas = usuarios infelices).

El uso de un Servicio Win32 es una opción alternativa: puede usar la utilidad SRVANY del Kit de recursos para " service-ify " prácticamente cualquier ejecutable. VS.Net 2002 y versiones posteriores también le permiten crear un servicio administrado directamente.

Y Programador de tareas obtiene mucho más capacidad a partir de Vista / 2008, capaz de ejecutar scripts en el inicio, en reposo y / o cuando se generan o ciertos registros de eventos otras condiciones se cumplen: es muy bueno! Las tareas programadas tienen la posible ventaja de poder especificar la cuenta de usuario bajo la cual se ejecuta la tarea, si eso es importante para usted.

Escritor de advertencia: http://support.microsoft.com/kb/256320

Ejecutar secuencias de comandos de inicio de forma asíncrona: http://msdn.microsoft.com/en-us/library/ms811602. aspx

Vista Task Scheduler (novedades): http://technet.microsoft.com/en-us/appcompat/aa906020. aspx

[1] Windows XP, 2003, Vista / 2008, Windows 7 / 2008R2, Windows 8/2012, Windows 8.1 / 2012R2, Windows 10 / Windows Server 2016. Todo. ¡Pero NT4 no!

Otros consejos

Ya ha descrito una buena solución:

Configure una tarea programada para que se ejecute al inicio y permita que el trabajo se ejecute cuando el usuario no haya iniciado sesión.

Puede ejecutar un script al inicio del sistema usando la política de grupo gpedit.msc

La forma en que ya lo haces, me parece bien; sin embargo, si desea un enfoque alternativo, los servicios comienzan cuando la máquina se inicia para que pueda escribir un servicio que detecte si es un nuevo día (para permitir reinicios) y, si es así, ejecute su copia de seguridad.

Si I estuviera haciendo esto como un servicio, usaría TCL porque lo conozco y me gusta y tiene una extensión twapi que te permite ejecutar un script como un servicio. Otros lenguajes de script pueden tener facilidades similares.

Hay, si estás utilizando Active Directory. Si puede aislar la computadora a su propia OU o usar el filtrado WMI, puede asignar un GPO que tenga un script de inicio para la computadora. Esto aseguraría que incluso si alguien entrara a través del modo seguro y deshabilitara el Programador de tareas, al iniciarse y conectarse al dominio, el script se ejecutaría.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top