Script zum prüfen von Prozessen
Hallo,
folgendes Problem:
ich möchte über ein Script was als geplanter Task läuft prüfen ob ein Programm auf einen Error gelaufen ist oder nicht und dieses evtl. neustarten.
folgenden Ablauf soll das Script haben:
1. Prüfung ob Programm läuft -> Script beenden
2. Prüfung ob Programm auf einen Error gelaufen ist -> wenn ja dann ::Taskkill und neustart
taskkill /im putty.exe /f
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop"
start putty.exe -load "waage-208"
Leider weis ich nicht wie ich die Prüfungen einbaue bzw. kenn ich die Befehle nicht.
MfG
Florian86
folgendes Problem:
ich möchte über ein Script was als geplanter Task läuft prüfen ob ein Programm auf einen Error gelaufen ist oder nicht und dieses evtl. neustarten.
folgenden Ablauf soll das Script haben:
1. Prüfung ob Programm läuft -> Script beenden
2. Prüfung ob Programm auf einen Error gelaufen ist -> wenn ja dann ::Taskkill und neustart
taskkill /im putty.exe /f
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop"
start putty.exe -load "waage-208"
Leider weis ich nicht wie ich die Prüfungen einbaue bzw. kenn ich die Befehle nicht.
MfG
Florian86
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 249831
Url: https://administrator.de/forum/script-zum-pruefen-von-prozessen-249831.html
Ausgedruckt am: 22.04.2025 um 16:04 Uhr
5 Kommentare
Neuester Kommentar
Moin,
also ich würde es so lösen:
Errorlevel 0 tritt ja auf, dass er putty findet. (weswegen du dir taskkill sparen kannst, weil kein putty mehr läuft). Was du machen willst, sieht mir aber eher danach aus, dass du die Fehlermeldung des Verbindungsabbruchs finden willst. Das ist natürlich etwas anderes, aber auch nicht unmöglich. Da würde die Abfrage wie folgt aussehen:
Hier musst du nur beachten, wie gut die rDNS eures unternehmens ist, also wie gut sich IPs zu DNS namen wieder auflösen lassen. Wenn diese richtig konfiguriert ist wird nämlich der DNS Namen statt der IP Adresse angezeigt. (Um zu verstehen wie das alles funktioniert, musst du natürlich wissen, was Putty macht, aber das kannst du dir natürlich anlesen)
Gruß
Chris
also ich würde es so lösen:
tasklist |find "putty.exe"
if %errorlevel% eq 0 goto end
:taskkill
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop"
start putty.exe -load "waage-208"
goto end
:end
Errorlevel 0 tritt ja auf, dass er putty findet. (weswegen du dir taskkill sparen kannst, weil kein putty mehr läuft). Was du machen willst, sieht mir aber eher danach aus, dass du die Fehlermeldung des Verbindungsabbruchs finden willst. Das ist natürlich etwas anderes, aber auch nicht unmöglich. Da würde die Abfrage wie folgt aussehen:
set remoteip 192.168.1.1
set remotecomputername waage-208
netstat -a |find "%remoteip%:22"
if errorlevel 0 goto end
netstat -a |find "%remotecomputername%:22"
if errorlevel 0 goto end
:taskkill
taskkill /im putty.exe /f
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop"
start putty.exe -load "waage-208"
goto end
:end
Hier musst du nur beachten, wie gut die rDNS eures unternehmens ist, also wie gut sich IPs zu DNS namen wieder auflösen lassen. Wenn diese richtig konfiguriert ist wird nämlich der DNS Namen statt der IP Adresse angezeigt. (Um zu verstehen wie das alles funktioniert, musst du natürlich wissen, was Putty macht, aber das kannst du dir natürlich anlesen)
Gruß
Chris
Moin,
das geht natürlich auch, ja.
allerdings kannst du es dann noch richtig elegant lösen:
Somit sollte es dann wirklich komplett ohne goto gehen (ist eben eine Stilfrage) ohne goto kannst du es übrigens auch um ein vielfaches besser in andere Script und Programmiersprachen übertragen.
Gruß
Chris
das geht natürlich auch, ja.
allerdings kannst du es dann noch richtig elegant lösen:
Tasklist |find "putty.exe"
if %errorlevel% eq 1 (
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop\waage-208\"
start putty.exe -load "test"
)
Somit sollte es dann wirklich komplett ohne goto gehen (ist eben eine Stilfrage) ohne goto kannst du es übrigens auch um ein vielfaches besser in andere Script und Programmiersprachen übertragen.
Gruß
Chris