37414
27.10.2006, aktualisiert am 30.10.2006 um 15:39:41 Uhr
18510
14
0
Aufruf einer Batch-Datei auf einem anderem PC im Netzwerk, die eine EXE-Datei auf einem Netzlaufwerk startet
Hallo - ich schon wieder
Nachdem ich mit Euren gestrigen Tipps einen super Erfolg hatte, bitte ich Euch nochmal um Hilfe.
Es geht wieder um ein Programm-Update.
Diesmal befindet sich die Update-Datei (Update.exe) auf einem Serverlaufwerk und muss von jedem Client aus gestartet werden, damit der jeweilige Client upgedatet wird.
Ich möchte nun eine Batch-Datei schreiben, die das von meinem Arbeitsplatz aus oder vom Server aus automatisiert.
Also... jeder einzelne Client muss die Datei "S:\OH\Update\Update.exe" starten.
Es handelt sich um etwa 15 PCs, die so upgedatet werden müssen und alle befinden sich im Netzwerk in der gleichen Domaine.
--> Ich vermute, dass ich eine Batch-Datei haben müßte, die auf jedem Client wiederum eine Batch-Datei startet. Und diese enthält
dann den Start der o.g. Update.exe
Habt Ihr Tipps, wie beide Batch-Dateien aussehen müßten?
Vielen Dank schonmal & Grüsse,
Ingo
Nachdem ich mit Euren gestrigen Tipps einen super Erfolg hatte, bitte ich Euch nochmal um Hilfe.
Es geht wieder um ein Programm-Update.
Diesmal befindet sich die Update-Datei (Update.exe) auf einem Serverlaufwerk und muss von jedem Client aus gestartet werden, damit der jeweilige Client upgedatet wird.
Ich möchte nun eine Batch-Datei schreiben, die das von meinem Arbeitsplatz aus oder vom Server aus automatisiert.
Also... jeder einzelne Client muss die Datei "S:\OH\Update\Update.exe" starten.
Es handelt sich um etwa 15 PCs, die so upgedatet werden müssen und alle befinden sich im Netzwerk in der gleichen Domaine.
--> Ich vermute, dass ich eine Batch-Datei haben müßte, die auf jedem Client wiederum eine Batch-Datei startet. Und diese enthält
dann den Start der o.g. Update.exe
Habt Ihr Tipps, wie beide Batch-Dateien aussehen müßten?
Vielen Dank schonmal & Grüsse,
Ingo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 43146
Url: https://administrator.de/contentid/43146
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
14 Kommentare
Neuester Kommentar
Hallo Ingo!
Schau Dir doch einmal PsExec an - insbesondere auch die Option "@file" zum bequemen Festlegen der Zielrechner.
HTH
bastla
Schau Dir doch einmal PsExec an - insbesondere auch die Option "@file" zum bequemen Festlegen der Zielrechner.
HTH
bastla
Hallo Ingo!
Mit PsExec müsstest Du etwa folgende Befehlszeile verwenden:
bzw für alle in der Datei "Clients.txt" gespeicherten Rechner
Anmerkungen:
Die obigen Befehlszeilen gehen von einem Server "UpdateServer" mit passender Freigabe "UpdateFreigabe" aus - in Deiner Pfadangabe wäre analog dazu S: auf "\\UpdateServer\UpdateFreigabe" gemapped, was aber beim Remote-Zugriff vermutlich nicht gewährleistet wäre.
Gestartet wird das Update (auf dem Zielrechner) unter dem Benutzeraccount des Administrators der Domäne "test.local" ("-u test\Administrator"); das Passwort wird beim Ausführen von psexec abgefragt.
Die Angabe von "-d -n 5" beschleunigt den Ablauf, da bei nicht erreichbarem Zielrechner nur 5 Sekunden gewartet und bei erreichbarem Zielrechner nur das Update gestartet, aber nicht dessen Abschluss abgewartet wird.
Zu überlegen wäre noch, wie sich der Erfolg des Updates kontrollieren lässt.
Natürlich ließe sich das Ganze auch über lokale Batchdateien auf den Clients lösen - die entsprechenden Überlegungen dazu hat gestern bereits Biber im anderen Thread angemerkt.
Falls das mehrfache Updaten mit der selben Version unproblematisch ist, kannst Du einfach in das StartUp-Script der Clients folgende Zeile aufnehmen:
Soll ein neues Update freigegeben werden, hinterlegst Du die "Update.exe" wie gehabt im entsprechenden Ordner des Servers. Sobald Du davon ausgehen kannst, dass alle Rechner das Update erhalten haben, kannst Du die "Update.exe" wieder aus diesem Ordner löschen (oder auch nur umbenennen), sodass das neuerliche Installieren wegen der Existenzprüfung ("if exist") unterbleibt.
So wie oben müsstest Du auch bei dieser Variante den UNC-Pfad statt eines Laufwerkmappings verwenden (wozu ich ohnehin generell raten würde).
HTH
bastla
Mit PsExec müsstest Du etwa folgende Befehlszeile verwenden:
psexec \\Zielrechner -u test\Administrator -d -n 5 \\UpdateServer\UpdateFreigabe\OH\Update\Update.exe
bzw für alle in der Datei "Clients.txt" gespeicherten Rechner
psexec @Clients.txt -u test\Administrator -d -n 5 \\UpdateServer\UpdateFreigabe\OH\Update\Update.exe
Anmerkungen:
Die obigen Befehlszeilen gehen von einem Server "UpdateServer" mit passender Freigabe "UpdateFreigabe" aus - in Deiner Pfadangabe wäre analog dazu S: auf "\\UpdateServer\UpdateFreigabe" gemapped, was aber beim Remote-Zugriff vermutlich nicht gewährleistet wäre.
Gestartet wird das Update (auf dem Zielrechner) unter dem Benutzeraccount des Administrators der Domäne "test.local" ("-u test\Administrator"); das Passwort wird beim Ausführen von psexec abgefragt.
Die Angabe von "-d -n 5" beschleunigt den Ablauf, da bei nicht erreichbarem Zielrechner nur 5 Sekunden gewartet und bei erreichbarem Zielrechner nur das Update gestartet, aber nicht dessen Abschluss abgewartet wird.
Zu überlegen wäre noch, wie sich der Erfolg des Updates kontrollieren lässt.
Natürlich ließe sich das Ganze auch über lokale Batchdateien auf den Clients lösen - die entsprechenden Überlegungen dazu hat gestern bereits Biber im anderen Thread angemerkt.
Falls das mehrfache Updaten mit der selben Version unproblematisch ist, kannst Du einfach in das StartUp-Script der Clients folgende Zeile aufnehmen:
if exist \\UpdateServer\UpdateFreigabe\OH\Update\Update.exe \\UpdateServer\UpdateFreigabe\OH\Update\Update.exe
Soll ein neues Update freigegeben werden, hinterlegst Du die "Update.exe" wie gehabt im entsprechenden Ordner des Servers. Sobald Du davon ausgehen kannst, dass alle Rechner das Update erhalten haben, kannst Du die "Update.exe" wieder aus diesem Ordner löschen (oder auch nur umbenennen), sodass das neuerliche Installieren wegen der Existenzprüfung ("if exist") unterbleibt.
So wie oben müsstest Du auch bei dieser Variante den UNC-Pfad statt eines Laufwerkmappings verwenden (wozu ich ohnehin generell raten würde).
HTH
bastla
Hallo Ingo!
Falls es tatsächlich erforderlich wäre, während des Update-Vorganges interaktiv Eingaben zu tätigen, würde eine Automatisierung ohnehin kaum funktionieren - allenfalls könntest Du Dir über RemoteDesktop (VNC) den Weg zu den Workstations sparen ...
Ansonsten könntest Du versuchen, Dir mit der Eingabe von
oder
eventuelle Befehlszeilenschalter anzeigen zu lassen und dadurch die Benutzereingaben zu ersetzen.
Vermutlich wird es aber am sinnvollsten sein, direkt den Hersteller auf die Problematik anzusprechen - und ihm gegebenen Falls nahe zu legen, die Updates (über die angesprochenen Befehlszeilenschalter) "scripting-fähig" zu machen.
Grüße
bastla
Falls es tatsächlich erforderlich wäre, während des Update-Vorganges interaktiv Eingaben zu tätigen, würde eine Automatisierung ohnehin kaum funktionieren - allenfalls könntest Du Dir über RemoteDesktop (VNC) den Weg zu den Workstations sparen ...
Ansonsten könntest Du versuchen, Dir mit der Eingabe von
Update.exe /?
Update.exe -?
Vermutlich wird es aber am sinnvollsten sein, direkt den Hersteller auf die Problematik anzusprechen - und ihm gegebenen Falls nahe zu legen, die Updates (über die angesprochenen Befehlszeilenschalter) "scripting-fähig" zu machen.
Grüße
bastla