Ein bestimmtes Programm vom Server aus , auf allen Clients in der Domäne abschalten bzw. schliessen
Ziel dessen ist es bei einem Programm ein Update auf dem Server durchzuführen, wobei alle angemeldeten Clients an diesem Programm sich schliessen und das Update erfolgen kann.
Dies ist lt der Software "Evident" - PRaxissoftware, zwingend nötig und muss so sein.
Da es in der Domain 2 Reale Standorte gibt getrennt ca 250 Meter ist es schwer das per "Turnschuh" zu realisieren
Ist es möglich das, wenn das Programm ein Update auf dem Server durchführen will , alle angemeldeten Clients an diesem Programm sich schliessen und das Update erfolgen kann.
Dies ist lt der Software "Evident" - PRaxissoftware, zwingend nötig und muss so sein.
Ich habe schon gegoogelt wie ein Weltmeister, aber bin auch leider nicht so der Script-Gott das ich mir eine Batch von 0 an selber erstellen kann.
Habe schon das Programm pskill.exe probiert aber es ist nicht das was ich gesucht habe.
Hat wer eine Idee?
LG
Martin
Dies ist lt der Software "Evident" - PRaxissoftware, zwingend nötig und muss so sein.
Da es in der Domain 2 Reale Standorte gibt getrennt ca 250 Meter ist es schwer das per "Turnschuh" zu realisieren
Ist es möglich das, wenn das Programm ein Update auf dem Server durchführen will , alle angemeldeten Clients an diesem Programm sich schliessen und das Update erfolgen kann.
Dies ist lt der Software "Evident" - PRaxissoftware, zwingend nötig und muss so sein.
Ich habe schon gegoogelt wie ein Weltmeister, aber bin auch leider nicht so der Script-Gott das ich mir eine Batch von 0 an selber erstellen kann.
Habe schon das Programm pskill.exe probiert aber es ist nicht das was ich gesucht habe.
Hat wer eine Idee?
LG
Martin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 180200
Url: https://administrator.de/contentid/180200
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
14 Kommentare
Neuester Kommentar
Hallo,
sollten die Updates nicht sowieso besser ausgeführt werden, wenn keiner am arbeiten ist?
Ansonsten könnte man leicht mit powershell eine COmputerliste abarbeiten, die nach der "Programm.exe" sucht und wenn gefunden das Programm beendet.
Damit könnte man anfangen:
tasklist | find '"firefox'"
if($lastexitcode -eq 0){
taskkill /IM "firefox.exe"'
}
Edit:
Im Prinzip muss man noch nicht mal überprüft werden ob das Programm läuft.
Achte dadrauf, dass das Skript unter einem Account ausgeführt wird, der auf allen Clients Admin Berechtigung hat.
sollten die Updates nicht sowieso besser ausgeführt werden, wenn keiner am arbeiten ist?
Ansonsten könnte man leicht mit powershell eine COmputerliste abarbeiten, die nach der "Programm.exe" sucht und wenn gefunden das Programm beendet.
Damit könnte man anfangen:
tasklist | find '"firefox'"
if($lastexitcode -eq 0){
taskkill /IM "firefox.exe"'
}
Edit:
Im Prinzip muss man noch nicht mal überprüft werden ob das Programm läuft.
Achte dadrauf, dass das Skript unter einem Account ausgeführt wird, der auf allen Clients Admin Berechtigung hat.
moin,
eine Grußformel hätts auch getan....
Und einen hab ich noch - mal eben alle rauswerfen, weil man dringend was aktualisieren muß - von dem man nicht weiß ob das Update funktioniert....
Ohne Sicher stellen zu können, das Kollege x nicht grade vom MC Donalds kommt und mal eben Programm y anwirft - ohne zu wisssen, dass da grade....
Nö
Geht mit Batch, aber sowas ist nicht mein Bereich.
Gruß
eine Grußformel hätts auch getan....
Die Arbeitszeiten din generell 365 Tage im Jahr von 07:00 Uhr bis 22:00 Uhr im 4 Schichtbetrieb. von daher ist die Updatezeit begrenzt.
Naja -also ehrlich.... von 22:01 bis 6:59 ist massenhaft ZeitUnd einen hab ich noch - mal eben alle rauswerfen, weil man dringend was aktualisieren muß - von dem man nicht weiß ob das Update funktioniert....
Ohne Sicher stellen zu können, das Kollege x nicht grade vom MC Donalds kommt und mal eben Programm y anwirft - ohne zu wisssen, dass da grade....
Nö
Geht mit Batch, aber sowas ist nicht mein Bereich.
Gruß
Also ohne Überprüfung und Abfragen von Fehlern kannst du es einfach so machen.
Schöner wäre es, die Clients in einer separaten txt Datei zu schreiben und davon zu lesen. Dann kannst du mittels Schleife immer eine Zeile einlesen und den Computernamen in einer Variable abspeichern. Die Variable benutzt du dann in deinem taskkill Befehl.
taskkill /S Client01 "evident.exe"
taskkill /S Client02 "evident.exe"
Schöner wäre es, die Clients in einer separaten txt Datei zu schreiben und davon zu lesen. Dann kannst du mittels Schleife immer eine Zeile einlesen und den Computernamen in einer Variable abspeichern. Die Variable benutzt du dann in deinem taskkill Befehl.
Und?
Dabei hast du doch sicher gemerkt, dass du dir ein Grab schaufelst?
Keine Ahnung, was die Software macht, wenn die einer beim patchen auf hat - bei irgendwas in einem Krankenhaus oder dort, wo es wirklich um Hopp oder Topp geht und nicht um so was popeliges, was meine Rechner/Kollegen veranstalten und es "nur" um Kohle geht - wenn ich selbst da schon meine Zweifel habe, dann hätte ich die an deiner Stelle in deiner Stelle erst recht.
Zitat von @60730:
> Zitat von @LordXearo:
> ----
> Die Arbeitszeiten din generell 365 Tage im Jahr von 07:00 Uhr bis 22:00 Uhr im 4 Schichtbetrieb. von daher ist die Updatezeit
begrenzt.
Naja -also ehrlich.... von 22:01 bis 6:59 ist massenhaft Zeit
> Zitat von @LordXearo:
> ----
> Die Arbeitszeiten din generell 365 Tage im Jahr von 07:00 Uhr bis 22:00 Uhr im 4 Schichtbetrieb. von daher ist die Updatezeit
begrenzt.
Naja -also ehrlich.... von 22:01 bis 6:59 ist massenhaft Zeit
Eben,
- Anmeldezeit passend einstellen (Nach 22.00 keine Anmeldung mehr möglich).
- Mit Shutdown per Holzhammer alle Clients runterfahren.
- Updates einspielen
- Wenn man nett ist, morgens um 7 die Clients wieder mit WOL hochfahren.
Mit ein bischen Übung kann man das sogar von zuhause vom Bett aus.
lks
Hoi,
gebe mal meinen Senf dazu, halte mich aber mal mit den hier geäußerten Bedenken zurück, denen ich mich jedoch anschließe.
Du solltest auch den zeitlichen Askpekt des Batchlaufes nicht ausgrenzen, wenn Du die Sachen hintereinander im Batch abfackelst. Da Du immer einen zeitlichen Verzug bei Taskkill, PSKILL, PSEXEC und Co hast kann das bei der Menge der Maschinen schon recht langwierig sein. Haust Du das Update erst dann drauf wenn alle Maschinen durch sind, kann das Programm an anderen schon wieder laufen. Also solltest Du parallel arbeiten.
Du könntest die Sachen allerdings auch per Scheduled Task auf den Maschinen abfackeln, die damit gleichzeitig loslaufen, bei dem die KILL-Batch auf einem Share liegt und damit flexibel für weitere Eingriffe angepasst werden können. Die Batch könnte z.B. auch eine Textdatei abarbeiten in denen die zu killenden Tasks abgelegt sind und und und ...
ach es gibt so viele Möglichkeiten.....
bye Karo
gebe mal meinen Senf dazu, halte mich aber mal mit den hier geäußerten Bedenken zurück, denen ich mich jedoch anschließe.
Du solltest auch den zeitlichen Askpekt des Batchlaufes nicht ausgrenzen, wenn Du die Sachen hintereinander im Batch abfackelst. Da Du immer einen zeitlichen Verzug bei Taskkill, PSKILL, PSEXEC und Co hast kann das bei der Menge der Maschinen schon recht langwierig sein. Haust Du das Update erst dann drauf wenn alle Maschinen durch sind, kann das Programm an anderen schon wieder laufen. Also solltest Du parallel arbeiten.
Du könntest die Sachen allerdings auch per Scheduled Task auf den Maschinen abfackeln, die damit gleichzeitig loslaufen, bei dem die KILL-Batch auf einem Share liegt und damit flexibel für weitere Eingriffe angepasst werden können. Die Batch könnte z.B. auch eine Textdatei abarbeiten in denen die zu killenden Tasks abgelegt sind und und und ...
ach es gibt so viele Möglichkeiten.....
bye Karo
es kann dem TO auch blühen, daß jemand nachdem der Batch angelaufen ist, daherkommt und eine Kiste neu anwirft udn dort den Client startet, wie es schon beim "Broadcast" per Turnschuh auch schon der Fall ist.
Die einzig sichere Methode ist imho alle rauszuschmeißen und dafür zu sorgen, daß die nicht mehr reinkönnen, bevor das update erledigt ist. (siehe auch mein obiges posting).
lks
Die einzig sichere Methode ist imho alle rauszuschmeißen und dafür zu sorgen, daß die nicht mehr reinkönnen, bevor das update erledigt ist. (siehe auch mein obiges posting).
lks
Hallo Dentologicum,
nur mal so als Ergängzung:
Ich würde vorher mit net send eine Nachricht an die User senden und sie benachrichtigen, dass Evident beendet werden muss für das Update am Server.
Das sie selbst das Evident beenden sollen oder es automatisch in 1 Minute geschlossen wird.
Dann kannst du Evident ja per taskkill beenden.
Bedenke aber, ob du damit nicht Datensätze oder sonstiges beschädigst, wenn du auf so vielen Rechner das geöffnete Programm so beendest.
nur mal so als Ergängzung:
Ich würde vorher mit net send eine Nachricht an die User senden und sie benachrichtigen, dass Evident beendet werden muss für das Update am Server.
Das sie selbst das Evident beenden sollen oder es automatisch in 1 Minute geschlossen wird.
Dann kannst du Evident ja per taskkill beenden.
Bedenke aber, ob du damit nicht Datensätze oder sonstiges beschädigst, wenn du auf so vielen Rechner das geöffnete Programm so beendest.