Hallo zusammen,
habe nachfolgendes Problem mit der Bitte um Unterstützung:
Auf einem meiner Windows-Systeme läuft ein Prozess, welcher sich regelmäßig in einer Endlosschleife verliert.
Der Prozess startet sich zeitgesteuert selbstständig mit einem anderen Systemuser und exportiert Daten.
Wenn er in die Endlosschleife läuft, dann werden die Folgeexporte nicht mehr ausgeführt (es wird immer gewartet bis der vorherige Export beendet wurde).
Bis ich das Ursprungsproblem in meiner Exportengine gefunden habe, wollte ich nachfolgenden Workaround umsetzen, damit die Folgeexporte wieder laufen:
Alle 15 Minuten wird ein Prozess gestartet, welcher prüft ob der Prozess (export.exe) aktiv ist und mindestens 10 Minuten läuft (Kein Export dauert länger als 5 Minuten), falls ja dann soll der Prozess beendet werden.
Folgende Ansätze habe ich bisher verfolgt:
1. Umsetzung über „normale“ Batch:
"Könnte" funktionieren, da es mir aber um die Laufzeit des Prozesses geht und nicht um die CPUTIME komm ich damit (soweit ich das sehe) nicht zum gewünschten Szenario.
Ein passendes Filterelement von taskkill.exe für meine Anforderung habe ich leider nicht gefunden.
2. Umsetzung über PowerShell (bisher noch nie verwendet)
Würde funktionieren, wenn $date den richtigen Inhalt hätte.
Erwartet werden Werte wie beispielsweise „20140429085258.332435+120“, also Datum in Format yyyymmddhhmmss.uuuuuu+NNN (u=ms;N=Differenz zu UTC).
Leider bekomm ich bisher weder $date richtig gesetzt, noch vom dort enthaltenen Wert (=Zeitpunkt) zehn Minuten abgezogen.
Habe bereits versucht $date so zu definiere, hat leider nicht funktioniert:
Daher nachfolgende Fragen:
1. Wie bekomme ich $date so gesetzt, dass es richtig formatiert ist?
2. Wie bekomm ich von diesem „richtigen“ $date die 10-Minuten abgezogen?
3. Gibt es vielleicht eine viel bessere/leichtere Lösung für mein Problem?
Vorab vielen, vielen Dank für die Hilfe!
habe nachfolgendes Problem mit der Bitte um Unterstützung:
Auf einem meiner Windows-Systeme läuft ein Prozess, welcher sich regelmäßig in einer Endlosschleife verliert.
Der Prozess startet sich zeitgesteuert selbstständig mit einem anderen Systemuser und exportiert Daten.
Wenn er in die Endlosschleife läuft, dann werden die Folgeexporte nicht mehr ausgeführt (es wird immer gewartet bis der vorherige Export beendet wurde).
Bis ich das Ursprungsproblem in meiner Exportengine gefunden habe, wollte ich nachfolgenden Workaround umsetzen, damit die Folgeexporte wieder laufen:
Alle 15 Minuten wird ein Prozess gestartet, welcher prüft ob der Prozess (export.exe) aktiv ist und mindestens 10 Minuten läuft (Kein Export dauert länger als 5 Minuten), falls ja dann soll der Prozess beendet werden.
Folgende Ansätze habe ich bisher verfolgt:
1. Umsetzung über „normale“ Batch:
Code:
taskkill.exe /IM export.exe /F /FI "CPUTIME gt 00:10:00"
Ein passendes Filterelement von taskkill.exe für meine Anforderung habe ich leider nicht gefunden.
2. Umsetzung über PowerShell (bisher noch nie verwendet)
Code:
(Get-WmiObject win32_process -Filter "CreationDate <'$date' and name = export.exe'").Terminate()
Würde funktionieren, wenn $date den richtigen Inhalt hätte.
Erwartet werden Werte wie beispielsweise „20140429085258.332435+120“, also Datum in Format yyyymmddhhmmss.uuuuuu+NNN (u=ms;N=Differenz zu UTC).
Leider bekomm ich bisher weder $date richtig gesetzt, noch vom dort enthaltenen Wert (=Zeitpunkt) zehn Minuten abgezogen.
Habe bereits versucht $date so zu definiere, hat leider nicht funktioniert:
Code:
$date=get-Date -format yyyymmddhhmmss.uuuuuu+nnn
Daher nachfolgende Fragen:
1. Wie bekomme ich $date so gesetzt, dass es richtig formatiert ist?
2. Wie bekomm ich von diesem „richtigen“ $date die 10-Minuten abgezogen?
3. Gibt es vielleicht eine viel bessere/leichtere Lösung für mein Problem?
Vorab vielen, vielen Dank für die Hilfe!
Zuletzt bearbeitet:
(' vor $date gesetzt)