Es gibt Anwendungen, die in bestimmten Umgebungen unbedingt ausgeführt werden müssen. Idealerweise gibt es hierfür Dienste, aber ich erlebe es auch oft, dass Anwendungen im Vordergrund ausgeführt werden. Um diese Umgebungen zu überwachen, habe ich ein kleines Skript geschrieben, welches überprüft, ob ein bestimmter Prozess ausgeführt wird und diesen bei Bedarf startet.
Prüfen ob ein Programm ausgeführt wird per Powershell
In dem folgenden Beispielskript überprüfe ich mit der Windows PowerShell, ob der Windows Calculator aktuell ausgeführt wird. Ist dies nicht der Fall, so wird er automatisch gestartet. Das Skript lässt sich sehr leicht anpassen. Es müssen nur die Werte für die beiden Variablen ProcessName und Program geändert werden.
ProcessName ist der Name des Prozesses, wie er im Windows Task Manager angezeigt wird (ohne Endung / z.B. .exe). Program beinhaltet den ausführbaren Dateinamen – handelt es sich dabei um eine Anwendung eines Drittherstellers, muss gegebenenfalls der komplette Pfad zur Datei angegeben werden.
Der Rest des kleinen Skriptes sollte selbsterklärend sein, bzw. habe ich die Schritte auch kommentiert.
# TITLE Check If Process Is Running
#
# Dieses Skript überprüft, ob ein bestimmter Prozess auf dem lokalen Rechner gestartet ist
# Wird der Prozess zum Zeitpunkt der Überprüfung nicht ausgeführt, wird er gestartet
# Prozess und auszuführendes Programm festlegen
# ProcessName = Name des Prozesses im Windows Task Manager
# Program = Aufruf des Programmes in der Windows Eingabeaufforderung / ggfs. Pfad mit angeben
$ProcessName = "calculator"
$Program = "calc.exe"
# Prüfen ob ein Programm ausgeführt wird
# 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"
}
Prozess automatisch starten, wenn dieser nicht ausgeführt wird
Das obenstehende PowerShell Skript startet eine Anwendung, wenn diese zum Zeitpunkt der Überprüfung nicht ausgeführt wird. Um diese Prüfung regelmäßig auszuführen, bedienen wir uns der Windows Aufgabenplanung. Hier kann man festlegen, dass das Skript beispielsweise alle 5 Minuten ausgeführt wird. Dadurch kann sichergestellt werden, dass das benötigte Programm automatisch wieder gestartet wird, wenn es einmal (versehentlich) geschlossen wurde. Oder wenn es nach einem Neustart des Servers vergessen wurde zu starten.
Ebenfalls interessant:
- PowerShell Skript ausführen
- Prozesse zeitgesteuert beenden per PowerShell
- Powershell – Ordner erstellen, wenn dieser noch nicht vorhanden ist
- PowerShell Skript pausieren
Dieser Artikel ist wie alle anderen auf dieser Seite kostenlos für Dich und ich hoffe, ich konnte Dir weiterhelfen. Wer möchte, kann diesem Blog eine kleine Aufmerksamkeit in Form einer kleinen Spende (PayPal) oder über die Amazon Wunschliste zukommen lassen.
Hinterlasse einen Kommentar