darkfire
Goto Top

Win10, zwei gleiche Prozessname überprüfen und bei Absturz neustarten

Hallo,

ich benutze aktuell das Windows-Programm "RestartOnCrash" um zwei gleiche Prozesse zu überwachen und bei Absturz jeweils den betroffenen Prozess neu zu starten.
Das Problem dabei ist, das der Prozessname gleich ist und falls einer von beiden Prozesse abstürtzt, dieser nicht gestartet wird, da noch ein Prozess läuft.
Nur wenn beide Prozesse abgestürzt sind, wird ein Prozess gestartet.

Nun habe ich versucht mittels Aufgabenplanung (Überprüfen alle 5 Minuten) und einer Batch-Datei mit folgendem Inhalt, diese Problem zulösen:
powershell.exe -noprofile -executionpolicy bypass -File "C:\Users\Downloads\Prog1.ps1"
powershell.exe -noprofile -executionpolicy bypass -File "C:\Users\Downloads\Prog2.ps1"

Folgende Powershell-Dateien:

Prog1.ps1

$ProcessName = "Prog"
$Program = "C:\Users\Downloads\Prog1\Prog.exe"
  1. Prüfen ob ein Programm ausgeführt wird
  2. Wenn nicht, Starte das die in $Program gespeicherte Anwendung
$CheckProcess = ""
$CheckProcess = Get-Process | Where-Object {$_.ProcessName -eq $ProcessName}
If($CheckProcess -eq $null){start $Program}
else {Write-Host "Prozess wird aktuell ausgeführt"}


Prog2.ps1

$ProcessName = "Prog"
$Program = "C:\Users\Downloads\Prog2\Prog.exe"
  1. Prüfen ob ein Programm ausgeführt wird
  2. Wenn nicht, Starte das die in $Program gespeicherte Anwendung
$CheckProcess = ""
$CheckProcess = Get-Process | Where-Object {$_.ProcessName -eq $ProcessName}
If($CheckProcess -eq $null){start $Program}
else {Write-Host "Prozess wird aktuell ausgeführt"}


Leider habe ich das gleiche Problem, wie mit dem Programm "RestartOnCrash".

Gibt es eine Möglichkeit mittels Powershell den Prozess mit dem Pfad des jeweiligem laufendem Programm abzufragen?
z.B. wenn Prozess "Prog" mit dem Pfad "C:\Users\Downloads\Prog1\Prog.exe" nicht läuft, dann neustarten,
bzw. wenn Prozess "Prog" mit dem Pfad "C:\Users\Downloads\Prog2\Prog.exe" nicht läuft, dann neustarten?

Vielen Dank im Voraus

Content-Key: 486718

Url: https://administrator.de/contentid/486718

Printed on: April 20, 2024 at 00:04 o'clock

Mitglied: 140777
140777 Aug 20, 2019 updated at 16:17:52 (UTC)
Goto Top
Gibt es eine Möglichkeit mittels Powershell den Prozess mit dem Pfad des jeweiligem laufendem Programm abzufragen?
Sischer dat wofür hat Redmond wohl die "Path" Property eines Prozesses erfunden...
$prog1 = 'C:\Users\Downloads\Prog1\Prog.exe'  
$prog2 = 'C:\Users\Downloads\Prog2\Prog.exe'  
if (!(get-Process | ?{$_.Path -eq $prog1})){Start-Process $prog1}
if (!(get-Process | ?{$_.Path -eq $prog2})){Start-Process $prog2}
Member: DarkFire
DarkFire Aug 20, 2019 at 16:38:06 (UTC)
Goto Top
Vielen Dank, funktioniert einwandfrei face-smile