Top-Themen

Aktuelle Themen (A bis Z)

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

Prozess im Taskmanager überprüfen

Frage Entwicklung Batch & Shell

Mitglied: xm-bit

xm-bit (Level 2) - Jetzt verbinden

21.04.2009, aktualisiert 23.04.2009, 11138 Aufrufe, 13 Kommentare

Ich möchte einen Prozess im Taskmanager überprüfen ob dieser läuft.
Wenn er nicht läuft, dann soll dieser gestartet werden, und das Ergebnis des Neustarts in einer Log-Datei abgelegt werden.

Hi,

wir haben bei uns einen Prozess, der in regelmäßigen Abständen überprüft werden solll, ob dieser auch richtig läuft.
Wenn sich dieser Prozess aufgehängt haben sollte, soll er neu gestartet werden.
Dieser Neustart soll dann in einer Log-Datei gespeichert werden.

Das ganze würde ich gerne per windows scripting realisieren wollen.

Als einfache Lösung habe ich schon eine Batchdatei mit findstr.
Find ich aber nicht so schön...

Aber ich würde das gerne per wsh lösen. Da aber meine WSH Kenntnisse sich gerade mal bei Grundkenntnissen bewegen, wollte ich euch mal fragen, ob ihr mir da ein wenig unter die Arme greifen könnt.

Das wäre echt klasse...

mfg
Sascha
Mitglied: over23
21.04.2009 um 13:35 Uhr
Hallo,

ich würde das mit einem Powershell-Skript lösen.

$prozess = Get-Process Prozessname

Mit $prozess.Responding kann abgefragt werden, ob der Prozess noch reagiert. Es wird true oder false zurückgegeben.

In Kombination mit einer if-Schleife sollte es kein Problem sein, den Prozess gegebenenfalls neu zu starten.
Bitte warten ..
Mitglied: xm-bit
21.04.2009 um 14:57 Uhr
Hi, danke dir für deine schnelle Antwort.

Aber mit der Powershell, habe ich mich noch nicht so intensiv beschäftigt.
Gensauso wie mit schleifen.
Die Funktionsweise einer schleife verstehe ich ja. Aber das umsetzen, da hapert es bei mir.

Theoretisch soll es so aussehen:

Prüfen ob eine Datei namens xy.exe gestartet ist und käuft.

Wenn nicht, dann starte datei xy.exe
schreibe den start der Datei mit einem Zeitstempel in eine Log-Datei.

Läuft diese Datei schon, mache nix und beende das Programm.

Edit:
mittlerweile habe ich es soweit wie hier:
pc = "localhost"

Set wmi = GetObject("winmgmts:\\" & pc & "\root\cimv2:Win32_Process")

returncode = wmi.Create("calc.exe", Null, Null, ProcessID)
MsgBox "Returncode: " & returncode & " Prozess-ID: " & ProcessID

Aber das startet mir nur die Datei. Wie baue ich dort eine if Anweisung ein, das wenn diese datei gestartet ist. Das nix passiert...


mfg
Sascha
Bitte warten ..
Mitglied: over23
21.04.2009 um 20:11 Uhr
Hallo,

ich hätte es so gelöst

01.
$liste = ps 
02.
If ($liste -match "xy") { 
03.
  $prozess = Get-Process xy 
04.
  If ($prozess.Responding -match "False") { 
05.
    Stop-Process -name "xy" 
06.
    C:\Pfad\xy.exe 
07.
    Date >>C:\Irgendwo\log.txt 
08.
09.
10.
else { 
11.
C:\Pfad\xy.exe 
12.
}
xy durch den Prozessnamen und C:\Pfad bzw. C:\Irgendwo durch den entsprechenden Pfad ersetzen

Die erste If-Schleife prüft, ob Prozess xy läuft, wenn nein wird er gestartet, wenn ja wird geprüft ob er reagiert.
Wenn er nicht reagiert, wird er beendet, neu gestartet und das Datum in die log.txt geschrieben.
Bitte warten ..
Mitglied: xm-bit
21.04.2009 um 20:57 Uhr
Hi Over23,


danke schön.

Dann werd ich das morgen früh gleich mal testen.
Ich meld mich dann, wie es ausgegangen ist.

mfg
Sascha
Bitte warten ..
Mitglied: xm-bit
22.04.2009 um 10:11 Uhr
Moin moin over23,

das sieht soweit schon mal ganz gut aus. Aber ich bekomme keinerlei Einträge in die Log-Datei. Hab alles so umgesetzt wie du es beschrieben hast.

Woran kann es denn liegen???

mfg
Sascha
Bitte warten ..
Mitglied: over23
22.04.2009 um 10:39 Uhr
Guten Morgen Sascha,

momentan schreibt er ja nur in die Log-Datei, wenn sich der Prozess aufgehängt hat und ihn dann neu startet. Wenn der Prozess nicht vorhanden ist und "nur" gestartet wird, gibt es keinen Eintrag.

Solltest du das getestet haben und es trotzdem nicht funktionieren, poste ich dir nacher nochmal was, wenn ich im Büro bin.
Bitte warten ..
Mitglied: xm-bit
22.04.2009 um 10:51 Uhr
Hi over23,

danke.
Momentan schreibt er ja nichts ins Logfile. Nur es läßt sich ein aufgehangener Prozess schlecht simulieren.

Wie kann ich in Powershell denn Text mit übergeben, bin gerade dabei das heruaszufinden. Ist nicht gerade einfach.

Aber mit den richtigen Hilfen, sollte das schon klappen.
Dann warte ich mal bis du im Büro bist.

mfg
Sascha
Bitte warten ..
Mitglied: over23
22.04.2009 um 13:12 Uhr
So, hier bin ich nochmal

01.
$liste = ps 
02.
$date = date 
03.
$ok = "Alles in Ordnung" 
04.
$gestartet = "Prozess gestartet" 
05.
$neu_gestartet = "Prozess neu gestartet" 
06.
If ($liste -match "xy") { 
07.
  $prozess = Get-Process xy 
08.
  If ($prozess.Responding -match "False") { 
09.
    Stop-Process -name "xy" 
10.
    C:\Pfad\xy.exe 
11.
    "$date | $neu_gestartet" >>C:\Irgendwo\log.txt 
12.
13.
  else { 
14.
  "$date | $ok" >>C:\Irgendwo\log.txt 
15.
16.
17.
else { 
18.
C:\Pfad\xy.exe 
19.
"$date | $gestartet" >>C:\Irgendwo\log.txt 
20.
}
Probiers mal so
Bitte warten ..
Mitglied: xm-bit
22.04.2009 um 13:37 Uhr
Hi over23,

das sieht schon besser aus. Aber wenn sich die Datei aufgehängt hat, wird es nicht gemeldet.
Besteht jetzt die Möglichkeit, die Datei zu überprüfen, ob diese läuft??

Denn momentan wird nur der Wert, das die Datei im Taskmanager aufgeführt ist, überprüft. Da sieht man ja keinerlei Veränderung. Wenn sich die Datei nun aufgehangen hat, wird es nicht erkannt.

Ich schaue mir gerade mit Get-Process an, wie man überprüfen kann, das die Datei am laufen ist, nun suche ich nen Wert der sich ändert, damit ich sehe das ich nen Wert finde der sich verändert...

mfg
Sascha
Bitte warten ..
Mitglied: over23
22.04.2009 um 13:50 Uhr
Ich verstehe glaube ich nicht, was du willst.

01.
 If ($prozess.Responding -match "False") {  
02.
    Stop-Process -name "xy"  
03.
    C:\Pfad\xy.exe  
04.
    "$date | $neu_gestartet" >>C:\Irgendwo\log.txt  
05.
  } 
prüft, ob der Prozess reagiert, wenn nicht wird er beendet, neu gestartet und ein Eintrag in den Log gemacht.

Was meinst du mit:
Zitat von xm-bit:
Denn momentan wird nur der Wert, das die Datei im Taskmanager
aufgeführt ist, überprüft. Da sieht man ja keinerlei
Veränderung. Wenn sich die Datei nun aufgehangen hat, wird es
nicht erkannt.

??
Bitte warten ..
Mitglied: xm-bit
22.04.2009 um 14:04 Uhr
Hi over23,

wie wird denn überprüft ob diese Datei reagiert???
Ich habe das gerade noch einmal getestet.

Ich habe eine Datei die Fehlerhaft ist, es kommt ein Fenster "xy.exe hat ein Problem festgestellt und muss beendet werden".
Solange dieses Fenster da ist, wird die Datei nicht neu gestartet.

Gibt es eine andere Art die Datei "abzuschießen"??

Über den Taskmanager kann ich es beenden. Aber mit dem Script schaffe ich es nicht.

Ich hofe ich habe mich verständlich ausgedrückt...

mfg
Sascha
Bitte warten ..
Mitglied: Mikefield
22.04.2009 um 22:55 Uhr
Bekommst Du einen Eintrag im Eventlog?

mf
Bitte warten ..
Mitglied: xm-bit
23.04.2009 um 12:52 Uhr
Hi Mikefield,

ja ich bekopmme einen Eintrag im Event-Log..

mfg

Sascha
Bitte warten ..
Ähnliche Inhalte
Hyper-V
Taskmanager - Kein Netzwerk
Frage von rurotilHyper-V4 Kommentare

Hallo Leute, wir haben 2 Hyper-V Server im Cluster und es funktioniert eigentlich alles. Außer das wir im Taskmanager ...

Windows 7
Netzwerkanmeldeinformationen überprüfen
Frage von HenereWindows 76 Kommentare

Hallo zusammen, auf einem meiner Laptops (Win7) kommt seit heute früh diese Meldung: Der Laptop ist in einem AD, ...

Windows 8
Taskmanager WIN 8.1
gelöst Frage von willy1896Windows 84 Kommentare

Hallo zusammen, wie bewerkstellige ich es, dass der Taskmanager unter WIN 8.1 sofort mit dem Reiter "Leistung" und nicht ...

Linux
Wiederkehrende Prozesse...
Frage von krueggeLinux1 Kommentar

Hallo, auf einem meiner Server sehe ich das sich folgende prozesse immer wieder starten 30973 ? Ss 0:00 ifconfig ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 1 StundePerl1 Kommentar

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 2 StundenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 108 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless11 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...