50 estaciones de trabajo, 1 archivo .bat en un servidor de red, ¿funcionará?

10

Tengo un archivo .bat para realizar tareas de mantenimiento en máquinas. Puse el archivo .bat en un servidor conectado a la red para que todas las estaciones de trabajo puedan acceder a él.

Si tuviera que usar el programador de Windows para hacer que el archivo .bat se ejecute a las 12: 00: 00,000 en digamos ... 50 estaciones de trabajo, ¿podrán ejecutarlo todos o se producirá un error?

PD: no me pidas que lo intente = P

Mechaflash
fuente
2
No debería haber ningún problema al hacer esto, ya que es una práctica bastante común en entornos de Windows. El único problema posible que puede enfrentar con 50 estaciones de trabajo que ejecutan el archivo a la vez es el ancho de banda en la red, aunque esto depende únicamente de lo que hace exactamente el archivo por lotes, lo más probable es que no sea un problema.
MaQleod
55
Pruébelo y vea: p
Sandeep Bansal
@MaQleod El archivo bat en sí mismo tiene solo 1kb de tamaño. Sin embargo, ejecuta una comprobación de desfragmentación, y si la estación de trabajo se debe a una desfragmentación, el script espera a que finalice la desfragmentación antes de pasar al siguiente comando. ¿Cree que la estación de trabajo está conectada activamente a ese archivo .bat en el servidor o si se importa temporalmente localmente cuando se accede a ella?
Mechaflash
Tenga en cuenta que el programador de tareas tiene una función para variar los tiempos de inicio de un trabajo programado, precisamente para que 50 máquinas no se sincronicen perfectamente. Está en Win7 pero no en Win2K; No sé cuándo fue presentado. Si su configuración le causa problemas, esa es una forma posible de mitigarlo.
RBerteig
2
Mi red utiliza una aplicación de implementación para administrar ~ estaciones de trabajo 4K. Hay un único servidor que actúa como repositorio de nuestros scripts y software. He programado trabajos para que se ejecuten en miles de estaciones de trabajo simultáneamente. Si su infraestructura está a la altura, todo estará bien. Teniendo en cuenta que es un archivo por lotes de texto simple, no puedo imaginar que sea un problema.
jscott

Respuestas:

11

Esto debería funcionar siempre que la cuenta que ejecuta la tarea programada tenga acceso correcto al recurso compartido de red donde se encuentra el archivo bat.

Dependiendo de lo que haga el script, escalonaría los tiempos de ejecución por departamento. Solo necesita un minuto o dos de variación para minimizar las probabilidades de un golpe asombroso justo en 12. Con respecto al comentarista anterior que menciona un script de inicio de sesión que golpea un gran número de máquinas, los inicios de computadora no ocurren exactamente en el mismo momento. Incluso una segunda diferencia entre los inicios de sesión dará como resultado diferentes tiempos para acceder al script, por lo que su caso, aunque cercano, no es exactamente el mismo que el suyo con respecto a los altos niveles de acceso simultáneo a los archivos.

music2myear
fuente
Sí, he estado implementando la secuencia de comandos de prueba en algunas estaciones de trabajo y funciona bien. Sin embargo, todavía no los he ejecutado al mismo tiempo y tenía curiosidad por saber si me encontraría o no con un inconveniente si todos ejecutaran un script al mismo tiempo. No quiero venir a la oficina a la mañana siguiente con todas las estaciones de trabajo con una pantalla de error y mi jefe no técnico enloqueciendo jajaja
Mechaflash
Con 50 estaciones de trabajo, no creo que sea demasiado probable que el servidor esté paralizado o que las estaciones de trabajo individuales tengan problemas. Pero por dos razones, sería mejor hacerlo "correctamente" desde el principio: no tendrá que cambiar nada si actualiza o expande, y es mejor prevenir que curar. Con esas pocas estaciones de trabajo, no sería demasiado difícil distribuir los tiempos de ejecución en 5 grupos que cada uno procesa un minuto después de que comience el grupo anterior, o 2 grupos, lo que funcione.
music2myear
1
Si. Mis pensamientos originales eran espaciarlo en intervalos de media hora y cada departamento obtendría su propio día del mes para el mantenimiento para ayudar a mitigar cualquier problema que pueda surgir del mantenimiento.
Mechaflash
5

Tener un archivo por lotes funcionará, pero tenga en cuenta las limitaciones, como tener el permiso apropiado y los requisitos administrativos.

Puede considerar implementarlo como Logon Script a través de Active Directory.

Chico loco
fuente
5

¿Por qué te imaginas que podría fallar? Cada estación de trabajo simplemente lee el archivo y ejecuta sus comandos. Siempre que su servidor sea un servidor real y no solo una estación de trabajo que pretenda ser un servidor, no habrá problemas.

Lo único que debe tener en cuenta es que un archivo por lotes se lee y ejecuta un comando a la vez. Por lo tanto, si tuviera que hacer un cambio en ese archivo mientras se estaba ejecutando, el comportamiento puede ser algo impredecible. Los resultados reales dependerán de lo que ha cambiado y exactamente en qué parte del archivo se encuentra el cliente en ese momento.

John Gardeniers
fuente
3

Creo que funciona bien. Pero la realidad es mejor, así que permítanme decir que usamos un archivo .cmd como nuestro script de inicio de sesión. Está alojado de forma centralizada en un servidor y se accede a él por 6-800 PC todas las mañanas durante el inicio de sesión. Nunca hemos visto un problema con múltiples accesos al script a la vez.

uSlackr
fuente
¿Qué pasaría si tuviera que arrancar todas las máquinas y enviara un comando de ejecución a las 800 PC para acceder a ese script de una vez? XD Esa es la pregunta
Mechaflash
Esto debería funcionar de todos modos. Mientras no escriba en el archivo, 800 máquinas pueden leerlo.
MadBoy
Mechaflash: mi punto es que tenemos muchas estaciones de trabajo haciendo esto todos los días. Programado o no, muchos llegan al archivo de una vez sin incidentes.
uSlackr
3

Esperaría que la respuesta fuera sí.

La compañía en la que trabajo tiene un archivo por lotes que se ejecuta desde un recurso compartido de archivos de red que se ejecuta a medida que se inicia cada máquina. Si hubiera algún problema del tipo que espera en su pregunta, el archivo por lotes fallará razonablemente regularmente, pero que yo sepa, funciona todo el tiempo.

Mokubai
fuente
Lo mismo con nosotros. Sin embargo, cada máquina no arranca exactamente en el mismo milisegundo de tiempo. E incluso si se iniciaron al mismo tiempo, cada computadora se carga a diferentes velocidades, por lo que no importaría. Este archivo por lotes se ejecuta en el medio de la noche, mientras que todas las máquinas ya están arrancadas y en una pantalla de inicio de sesión ctrl + alt + dlt.
Mechaflash
Buen punto, aunque en nuestro caso algunas de las máquinas funcionan a través de enlaces VPN lentos, lo que podría "bloquear" el archivo por lotes durante períodos prolongados (del orden de decenas de segundos), sin embargo, esto no parece ser un problema.
Los archivos solo deben bloquearse si se abren para editarlos. En el caso de ejecutar un archivo por lotes, no se bloquea cuando las estaciones de trabajo solo lo leen o lo ejecutan.
KJ-SRS
1

Una posible razón por la que esto podría no funcionar es si su servidor no tiene licencia para 50 conexiones simultáneas. Es poco probable que esto sea un problema en una implementación real, pero si el "servidor" es, por ejemplo, una caja de Windows XP o algo así, tendrá problemas. Si tiene una edición de servidor real de Windows y suficientes CAL, no veo ninguna razón por la cual tener 50 clientes que lean un solo archivo por lotes simultáneamente sería un problema en sí mismo.

Andrés
fuente