Programm reagiert nicht - per Powershell neu starten?
Hallo liebe Administratoren,
wir haben auf verschiedenen Windows Servern Anwendungen laufen die, die Gewohnheit haben sich ab und zu aufzuhängen.
Bedeutet: Ich höre das etwas nicht funktioniert, schalte mich auf den Betreffenden Server und finde die Betreffende Anwendung hinter einem Windows Fehlerfenster vor.
Ich wollte nun fragen ob es eine Möglichkeit gibt (möglichst über Powershell) ein Script zu schreiben das über eine Schleife prüft ob eine Anwendung noch vollständig läuft (eine Anwendung die sich aufgehängt hat wird ja im Taskmanager immernoch angezeigt) und diese im Fehlerfall komplett schließt und neu öffnet.
Unter Linux gibt es meine ich einen Begriff für so etwas aber ich komme nicht ganz darauf.
wir haben auf verschiedenen Windows Servern Anwendungen laufen die, die Gewohnheit haben sich ab und zu aufzuhängen.
Bedeutet: Ich höre das etwas nicht funktioniert, schalte mich auf den Betreffenden Server und finde die Betreffende Anwendung hinter einem Windows Fehlerfenster vor.
Ich wollte nun fragen ob es eine Möglichkeit gibt (möglichst über Powershell) ein Script zu schreiben das über eine Schleife prüft ob eine Anwendung noch vollständig läuft (eine Anwendung die sich aufgehängt hat wird ja im Taskmanager immernoch angezeigt) und diese im Fehlerfall komplett schließt und neu öffnet.
Unter Linux gibt es meine ich einen Begriff für so etwas aber ich komme nicht ganz darauf.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 265164
Url: https://administrator.de/contentid/265164
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Nathalem,
z.B. hiermit ...
Kannst du ganz einfach testen indem du z.B. in Excel ein Makro ala
startest während dass Powershell-Script läuft. Excel sollte dann neu gestartet werden während es in der Endlosschleife hängt.
Grüße Uwe
z.B. hiermit ...
# Pfad zur Anwendung die überwacht werden soll
$appPath = "C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE"
# Wartezeit zwischen den Überprüfungen (s)
$wait = 10
while ($true){
# Prozessreferenz holen
$proc = (Get-Process ([System.IO.Path]::GetFileNameWithoutExtension($appPath)) -EA SilentlyContinue)
# Wenn Prozess existiert und nicht reagiert ...
if ($proc -ne $null -and !$proc.Responding){
write-host "Anwendung reagiert nicht, versuche einen Neustart" -ForegroundColor Red
# kille Prozess
Stop-Process $proc -Force
# starte Prozess neu
Start-Process $appPath
}
write-host "Sleeping $wait seconds..."
sleep $wait
}
Sub hang_excel()
While true
Wend
End Sub
Grüße Uwe