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"
$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"
$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
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"
- Prüfen ob ein Programm ausgeführt wird
- Wenn nicht, Starte das die in $Program gespeicherte Anwendung
$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"
- Prüfen ob ein Programm ausgeführt wird
- Wenn nicht, Starte das die in $Program gespeicherte Anwendung
$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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 486718
Url: https://administrator.de/forum/win10-zwei-gleiche-prozessname-ueberpruefen-und-bei-absturz-neustarten-486718.html
Ausgedruckt am: 15.05.2025 um 02:05 Uhr
2 Kommentare
Neuester Kommentar

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}