50 Workstations, 1 .bat-Datei auf einem Netzwerkserver, funktioniert das?

10

Ich habe eine .bat-Datei, um Wartungsarbeiten an Maschinen durchzuführen. Ich habe die .bat-Datei auf einem Server mit Netzwerkanschluss abgelegt, damit alle Workstations darauf zugreifen können.

Wenn ich den Windows-Scheduler verwenden würde, um diese .bat-Datei um 12: 00: 00.000 auf beispielsweise ... 50 Workstations auszuführen, können sie dann alle ausgeführt werden oder tritt ein Fehler auf?

PS Bitten Sie mich nicht, es zu versuchen = P.

Mechaflash
quelle
2
Es sollte keine Probleme damit geben, da dies in Windows-Umgebungen ziemlich üblich ist. Das einzig mögliche Problem, das bei 50 Workstations auftreten kann, auf denen die Datei gleichzeitig ausgeführt wird, ist die Bandbreite im Netzwerk. Dies hängt jedoch nur davon ab, was genau die Batchdatei tut - höchstwahrscheinlich ist dies kein Problem.
MaQleod
5
Probieren Sie es aus und sehen Sie: p
Sandeep Bansal
@MaQleod Die Bat-Datei selbst ist nur 1 KB groß. Es wird jedoch eine Defragmentierungsprüfung ausgeführt. Wenn für die Workstation eine Defragmentierung erforderlich ist, wartet das Skript, bis die Defragmentierung abgeschlossen ist, bevor mit dem nächsten Befehl fortgefahren wird. Glauben Sie, dass die Workstation aktiv an diese .bat-Datei auf dem Server angehängt ist oder dass sie beim Zugriff vorübergehend lokal importiert wird?
Mechaflash
Beachten Sie, dass der Taskplaner über eine Funktion verfügt, mit der die Startzeiten eines geplanten Jobs genau variiert werden können, damit 50 Computer nicht perfekt synchronisiert ablaufen. Es ist in Win7, aber nicht in Win2K. Ich weiß nicht, wann es eingeführt wurde. Wenn Ihr Setup Probleme verursacht, ist dies eine Möglichkeit, dies zu verringern.
RBerteig
2
Mein Netzwerk verwendet eine Bereitstellungsanwendung zum Verwalten von ~ 4K-Workstations. Es gibt einen einzelnen Server, der als Repository für unsere Skripte und Software fungiert. Ich habe Jobs geplant, die auf Tausenden von Arbeitsstationen gleichzeitig ausgeführt werden sollen. Wenn Ihre Infrastruktur dazu in der Lage ist, ist alles in Ordnung. Da es sich um eine einfache Text-Batch-Datei handelt, kann ich mir nicht vorstellen, dass dies ein Problem wäre.
Jscott

Antworten:

11

Dies sollte funktionieren, solange das Konto, mit dem Sie die geplante Aufgabe ausführen, über korrekten Zugriff auf die Netzwerkfreigabe verfügt, in der sich die Bat-Datei befindet.

Je nachdem, was das Skript tut, würde ich die Laufzeiten nach Abteilungen verschieben. Sie benötigen nur ein oder zwei Minuten Varianz, um die Wahrscheinlichkeit eines atemberaubenden Treffers bei 12 zu minimieren. In Bezug auf den obigen Kommentator, der ein Anmeldeskript erwähnt, bei dem eine hohe Anzahl von Maschinen getroffen wurde, werden Computeranmeldungen nicht genau im selben Moment durchgeführt. Selbst ein paar Sekunden Unterschied zwischen den Anmeldungen führen zu unterschiedlichen Zeiten für den Zugriff auf das Skript. Daher ist sein Fall, obwohl er geschlossen ist, in Bezug auf ein hohes Maß an gleichzeitigem Dateizugriff nicht genau der gleiche wie Ihr Fall.

music2myear
quelle
Ja, ich habe das Skript auf einigen Workstations getestet und es funktioniert einwandfrei. Ich habe sie jedoch noch nicht zur gleichen Zeit ausgeführt und war gespannt, ob ich auf einen Haken stoßen würde, wenn alle genau zur gleichen Zeit das eine Skript ausführen würden. Ich möchte nicht am nächsten Morgen ins Büro kommen, da alle Workstations einen
Fehlerbildschirm haben
Bei 50 Workstations ist es meiner Meinung nach nicht zu wahrscheinlich, dass der Server verkrüppelt wird oder einzelne Workstations Probleme haben. Aber aus zwei Gründen ist es besser, es von Anfang an "richtig" zu machen: Sie müssen nichts ändern, wenn Sie ein Upgrade oder eine Erweiterung durchführen, und es ist besser, auf Nummer sicher zu gehen. Mit diesen wenigen Arbeitsstationen wäre es nicht allzu schwierig, die Laufzeiten auf 5 Gruppen aufzuteilen, die jeweils eine Minute nach dem Start der vorherigen Gruppe verarbeitet werden, oder auf 2 Gruppen, je nachdem, was funktioniert.
music2myear
1
Ja. Meine ursprünglichen Gedanken waren, es in halbstündigen Intervallen zu verteilen, und jede Abteilung würde ihren eigenen Tag im Monat für die Wartung erhalten, um eventuelle Probleme bei der Wartung zu mindern.
Mechaflash
5

Das Vorhandensein einer Batchdatei funktioniert, berücksichtigt jedoch Einschränkungen wie die entsprechenden Berechtigungen und Administratoranforderungen.

Sie können es als Anmeldeskript über Active Directory bereitstellen.

MadBoy
quelle
5

Warum würden Sie sich vorstellen, dass es einen Fehler geben könnte? Jede Workstation liest einfach die Datei und führt ihre Befehle aus. Vorausgesetzt, Ihr Server ist ein echter Server und nicht nur eine Workstation, die vorgibt, ein Server zu sein, gibt es kein Problem.

Das einzige, was Sie beachten müssen, ist, dass eine Batchdatei jeweils einzeln gelesen und ausgeführt wird. Wenn Sie diese Datei während der Ausführung ändern, kann das Verhalten daher etwas unvorhersehbar sein. Die tatsächlichen Ergebnisse hängen davon ab, was sich geändert hat und wo genau sich der Client zu diesem Zeitpunkt in der Datei befindet.

John Gardeniers
quelle
3

Ich glaube es funktioniert gut. Aber die Realität ist besser. Lassen Sie mich sagen, dass wir eine CMD-Datei als Anmeldeskript verwenden. Es wird zentral auf einem Server gehostet und wird jeden Morgen während der Anmeldung von 6-800 PCs aufgerufen. Wir haben noch nie ein Problem mit mehreren Zugriffen auf das Skript gleichzeitig gesehen.

uSlackr
quelle
Was wäre, wenn Sie alle Computer booten und einen Ausführungsbefehl an alle 800 PCs senden würden, um gleichzeitig auf dieses Skript zuzugreifen? XD Das ist die Frage
Mechaflash
Das sollte sowieso funktionieren. Solange Sie nicht in die Datei schreiben, können 800 Maschinen sie lesen.
MadBoy
Mechaflash - mein Punkt war, dass wir jeden Tag viele Workstations haben, die dies tun. Geplant oder nicht, viele treffen die Datei auf einmal ohne Zwischenfälle.
uSlackr
3

Ich würde erwarten, dass die Antwort ja ist.

Das Unternehmen, bei dem ich arbeite, verfügt über eine Batchdatei, die von einem Netzwerk-Fileshare ausgeführt wird, das beim Start jedes Computers ausgeführt wird. Wenn es Probleme des Typs gäbe, den Sie in Ihrer Frage erwarten, würde die Batch-Datei ziemlich regelmäßig fehlschlagen, aber soweit ich weiß, funktioniert sie jedes Mal.

Mokubai
quelle
Das gleiche gilt für uns. Allerdings startet nicht jeder Computer genau zur gleichen Millisekunde. Und selbst wenn sie gleichzeitig gestartet werden, wird jeder Computer mit unterschiedlichen Geschwindigkeiten geladen, sodass dies keine Rolle spielt. Diese Batch-Datei wird mitten in der Nacht ausgeführt, während alle Computer bereits hochgefahren sind und sich auf einem Anmeldebildschirm mit Strg + Alt + Dlt befinden.
Mechaflash
Ein guter Punkt, obwohl in unserem Fall einige der Maschinen über langsame VPN-Verbindungen arbeiten, die die Batchdatei möglicherweise für längere Zeiträume (in der Größenordnung von zehn Sekunden) "sperren" könnten, scheint dies jedoch kein Problem zu sein.
Dateien sollten nur gesperrt werden, wenn sie zur Bearbeitung geöffnet werden. Wenn eine Batchdatei ausgeführt wird, ist sie nicht gesperrt, wenn die Arbeitsstationen sie nur lesen oder ausführen.
KJ-SRS
1

Ein möglicher Grund, warum dies möglicherweise nicht funktioniert, ist, wenn Ihr Server nicht für 50 gleichzeitige Verbindungen lizenziert ist. Es ist unwahrscheinlich, dass dies bei einer echten Bereitstellung ein Problem darstellt. Wenn es sich bei dem "Server" beispielsweise um eine Windows XP-Box oder etwas anderes handelt, treten Probleme auf. Wenn Sie eine aktuelle Server-Edition von Windows und genügend CALs haben, sehe ich keinen Grund, warum es ein Problem für sich wäre, wenn 50 Clients gleichzeitig eine einzelne Batch-Datei lesen.

Andrew
quelle