50 postes de travail, 1 fichier .bat sur un serveur réseau, cela fonctionnera-t-il?

10

J'ai un fichier .bat pour effectuer la maintenance sur les machines. J'ai placé le fichier .bat sur un serveur connecté au réseau pour que tous les postes de travail y accèdent.

Si je devais utiliser le planificateur Windows pour faire fonctionner ce fichier .bat à 12: 00: 00.000 sur, disons ... 50 postes de travail, seront-ils tous en mesure de l'exécuter ou est-ce que l'erreur se produira?

PS ne me demandez pas de l'essayer = P

Mechaflash
la source
2
Cela ne devrait pas poser de problème car c'est une pratique assez courante dans les environnements Windows. Le seul problème possible auquel vous pourriez être confronté avec 50 postes de travail exécutant le fichier à la fois est la bande passante sur le réseau, bien que cela dépende uniquement de ce que fait exactement le fichier de commandes - très probablement, ce ne sera pas un problème.
MaQleod
5
Essayez-le et voyez: p
Sandeep Bansal
@MaQleod Le fichier bat lui-même ne fait que 1 Ko. Cependant, il exécute une vérification de défragmentation et si le poste de travail doit subir une défragmentation, le script attend la fin de la défragmentation avant de passer à la commande suivante. Pensez-vous que le poste de travail est activement attaché à ce fichier .bat sur le serveur ou s'il est temporairement importé localement lors de l'accès?
Mechaflash
Notez que le planificateur de tâches a une fonction pour faire varier les heures de début d'un travail planifié, précisément afin que 50 machines ne se déclenchent pas parfaitement synchronisées. C'est dans Win7 mais pas dans Win2K; Je ne sais pas quand il a été présenté. Si votre configuration vous cause des problèmes, c'est un moyen possible de l'atténuer.
RBerteig
2
Mon réseau utilise une application de déploiement pour gérer ~ les postes de travail 4K. Il existe un seul serveur qui sert de référentiel pour nos scripts et logiciels. J'ai planifié des travaux pour qu'ils s'exécutent simultanément sur des milliers de postes de travail. Si votre infrastructure est à la hauteur, tout ira bien. Étant donné qu'il s'agit d'un simple fichier batch de texte, je ne peux pas imaginer que ce serait un problème.
jscott

Réponses:

11

Cela devrait fonctionner tant que le compte avec lequel vous exécutez la tâche planifiée dispose d'un accès correct au partage réseau où se trouve le fichier bat.

Selon ce que fait le script, je décalerais les temps d'exécution par département. Vous n'avez besoin que d'une ou deux minutes d'écart pour minimiser les chances d'un succès stupéfiant à 12. En ce qui concerne le commentateur ci-dessus qui mentionne un script de connexion qu'un nombre élevé de machines a atteint, les connexions informatiques ne se produisent pas exactement au même moment. Même une différence de quelques secondes entre les connexions entraînera un accès différent au script, donc son cas, bien que fermé, n'est pas exactement le même que le vôtre concernant les niveaux élevés d'accès simultané aux fichiers.

music2myear
la source
Oui, j'ai testé le déploiement du script sur quelques postes de travail et cela fonctionne très bien. Cependant, je ne les ai pas encore exécutés en même temps et j'étais curieux de savoir si je rencontrerais un problème si tous exécutaient le même script en même temps. Je ne veux pas entrer au bureau le lendemain matin avec tous les postes de travail ayant un écran d'erreur et mon patron non technique
panique
Avec 50 postes de travail, je ne pense pas qu'il soit trop probable que le serveur soit paralysé ou que les postes de travail individuels aient des problèmes. Mais pour deux raisons, il serait préférable de le faire "correctement" dès le début: vous n'aurez rien à changer si vous effectuez une mise à niveau ou une extension, et il vaut mieux prévenir que guérir. Avec ces quelques postes de travail, il ne serait pas trop difficile de répartir les temps d'exécution en 5 groupes qui traitent chacun une minute après le démarrage du groupe précédent, ou 2 groupes, selon le cas.
music2myear
1
Ouais. Mes pensées originales étaient de l'espacer en intervalles d'une demi-heure et chaque département aurait son propre jour du mois pour la maintenance afin d'atténuer les problèmes pouvant survenir lors de la maintenance.
Mechaflash
5

Avoir un fichier de commandes fonctionnera mais envisagez des limitations telles que les autorisations appropriées et les exigences administratives.

Vous pouvez envisager de le déployer en tant que script d'ouverture de session via Active Directory.

Garçon furieux
la source
5

Pourquoi imaginez-vous que cela pourrait entraîner une erreur? Chaque poste de travail lit simplement le fichier et exécute ses commandes. À condition que votre serveur soit un vrai serveur et pas seulement un poste de travail se faisant passer pour un serveur, il n'y aura pas de problème.

La seule chose que vous devez garder à l'esprit est qu'un fichier batch est lu et exécuté une commande à la fois. Par conséquent, si vous apportez une modification à ce fichier pendant son exécution, le comportement peut être quelque peu imprévisible. Les résultats réels dépendraient de ce qui a changé et de l'endroit exact où se trouve le client à ce moment-là.

John Gardeniers
la source
3

Je pense que cela fonctionne bien. Mais la réalité est meilleure, alors permettez-moi de dire que nous utilisons un fichier .cmd comme script de connexion. Il est hébergé de manière centralisée sur un serveur et accessible par 6 à 800 PC chaque matin lors de la connexion. Nous n'avons jamais vu de problème avec plusieurs accès au script à la fois.

uSlackr
la source
Et si vous deviez démarrer toutes les machines et envoyer une commande d'exécution aux 800 PC pour accéder à ce script à la fois? XD C'est la question
Mechaflash
Cela devrait fonctionner de toute façon. Tant que vous n'écrivez pas dans le fichier, 800 machines peuvent le lire.
MadBoy
Mechaflash - mon point était que nous avons beaucoup de postes de travail qui font cela tous les jours. Programmés ou non, beaucoup accèdent au fichier en une seule fois sans incident.
uSlackr
3

Je m'attendrais à ce que la réponse soit oui.

La société dans laquelle je travaille possède un fichier de commandes qui s'exécute à partir d'un partage de fichiers réseau qui s'exécute au démarrage de chaque machine. S'il y avait des problèmes du type que vous attendez dans votre question, le fichier de commandes échouerait raisonnablement régulièrement, mais pour autant que je sache, cela fonctionne à chaque fois.

Mokubai
la source
Même chose avec nous. Cependant, chaque machine ne démarre pas à la même milliseconde exacte dans le temps. Et même s'ils ont démarré en même temps, chaque ordinateur se charge à des vitesses différentes, donc cela n'a pas d'importance. Ce fichier batch s'exécute au milieu de la nuit alors que toutes les machines sont déjà démarrées et sur un écran de connexion ctrl + alt + dlt.
Mechaflash
Bon point, bien que dans notre cas, certaines machines fonctionnent sur des liaisons VPN lentes, ce qui pourrait potentiellement "verrouiller" le fichier de commandes pendant des périodes prolongées (de l'ordre de dizaines de secondes), cela ne semble cependant pas être un problème.
Les fichiers ne doivent être verrouillés que s'ils sont ouverts pour modification. Dans le cas de l'exécution d'un fichier de commandes, il n'est pas verrouillé lorsque les postes de travail le lisent ou l'exécutent uniquement.
KJ-SRS
1

Une des raisons possibles pour lesquelles cela pourrait ne pas fonctionner est que votre serveur n'est pas autorisé à utiliser 50 connexions simultanées. Il est peu probable que cela soit un problème dans un déploiement réel, mais si le "serveur" est, disons, une boîte Windows XP ou quelque chose, vous aurez des problèmes. Si vous avez une édition serveur réelle de Windows et suffisamment de licences d'accès client, je ne vois aucune raison pour laquelle avoir 50 clients lisant simultanément un seul fichier de commandes serait un problème en soi.

Andrew
la source