Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Script zum prüfen von Prozessen

Frage Microsoft Windows Server

Mitglied: Florian86

Florian86 (Level 1) - Jetzt verbinden

22.09.2014, aktualisiert 23.09.2014, 1011 Aufrufe, 5 Kommentare

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
Mitglied: Sheogorath
LÖSUNG 22.09.2014, aktualisiert 23.09.2014
Moin,


Das ist nicht schwer:
01.
tasklist | find "httpd"
Edit: Wichtig ist nur, dass du den Prozessnamen (in desem Fall httpd) in "" schreibst. Funktioniert ansonsten genaus wie ein einfaches grep unter Linux

Der Rest ist die Abfrage des Errorlevels.

Gruß
Chris
Bitte warten ..
Mitglied: Florian86
23.09.2014 um 07:42 Uhr
Hallo Chris,

ich habe nun folgenden stehen:

tasklist |find "putty.exe"
if errorlevel 0 goto end
if errorlevel 1 goto taskkill

:taskkill
taskkill /im putty.exe /f
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop"
start putty.exe -load "waage-208"
goto end
:end

Problem ist das bei Errorlevel 0 >= gemeint ist.
Wie kann ich vermitteln das er bei keinem Fehler einfach zu END gehen soll???

MfG

Florian86
Bitte warten ..
Mitglied: Sheogorath
LÖSUNG 23.09.2014, aktualisiert um 09:48 Uhr
Moin,

also ich würde es so lösen:
01.
tasklist |find "putty.exe" 
02.
if %errorlevel% eq 0 goto end 
03.
 
04.
:taskkill 
05.
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop" 
06.
start putty.exe -load "waage-208" 
07.
goto end 
08.
 
09.
: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:

01.
set remoteip 192.168.1.1 
02.
set remotecomputername waage-208 
03.
netstat -a |find "%remoteip%:22" 
04.
if errorlevel 0 goto end 
05.
netstat -a |find "%remotecomputername%:22" 
06.
if errorlevel 0 goto end 
07.
 
08.
 
09.
:taskkill 
10.
taskkill /im putty.exe /f 
11.
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop" 
12.
start putty.exe -load "waage-208" 
13.
goto end 
14.
 
15.
: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
Bitte warten ..
Mitglied: Florian86
23.09.2014 um 09:51 Uhr
Hallo Chris,

Danke für die Unterstützung.

Ich habe es nun anders gemacht:

Man kann im Putty auch sagen, dass er bei einem Fehler putty ohne Meldung schliesen soll.
So lasse ich dann nur prüfen ob Putty noch läuft. Wenn es läuft soll er abbrechen und wenn nicht dann starten.

Tasklist |find "putty.exe"
if "%errorlevel%" == "0" goto end
if errorlevel 1 cd "C:\Users\decker-f.HENGLEIN-KH\Desktop\waage-208\"
start putty.exe -load "test"

:end

MfG

Florian
Bitte warten ..
Mitglied: Sheogorath
23.09.2014 um 10:32 Uhr
Moin,

das geht natürlich auch, ja.

allerdings kannst du es dann noch richtig elegant lösen:
01.
Tasklist |find "putty.exe" 
02.
if %errorlevel% eq 1 ( 
03.
cd "C:\Users\decker-f.HENGLEIN-KH\Desktop\waage-208\" 
04.
start putty.exe -load "test" 
05.
)
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel: Text in Zellbereich prüfen mit Vergleichstext ggf. mit Exact-Funktion (5)

Frage von Michi1 zum Thema Microsoft Office ...

Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...