Wie starte ich eine Anwendung in PowerShell im Hintergrund?
- Einführung
- Der Unterschied zwischen Vordergrund- und Hintergrundausführung
- Anwendungen mit Start-Process im Hintergrund starten
- Start-Job für PowerShell-spezifische Hintergrundaufgaben
- Alternativen zur Hintergrundausführung
- Fazit
Einführung
In der Windows PowerShell gibt es verschiedene Möglichkeiten, Programme und Skripte auszuführen.
Dabei kann es vorkommen, dass man eine Anwendung starten möchte, ohne dass diese das aktuelle PowerShell-Fenster blockiert.
Dies wird oft als "im Hintergrund starten" bezeichnet. Hierbei läuft die Anwendung weiter, während die PowerShell-Sitzung sofort wieder Eingaben annimmt.
Der Unterschied zwischen Vordergrund- und Hintergrundausführung
Standardmäßig wartet PowerShell darauf, dass ein gestarteter Prozess beendet wird, bevor es weitere Befehle ausführt.
Dies ist sinnvoll, wenn man sicherstellen möchte, dass ein bestimmter Vorgang abgeschlossen ist, bevor es weitergeht.
Möchte man jedoch mehrere Aufgaben parallel ausführen oder eine Anwendung starten, ohne auf deren Abschluss zu warten,
Das bedeutet, dass die PowerShell-Sitzung sofort wieder bedienbar ist, während die gestartete Anwendung unabhängig weiterläuft.
Anwendungen mit Start-Process im Hintergrund starten
Eine der häufigsten Methoden, um Programme im Hintergrund zu starten, ist die Verwendung des Cmdlets Start-Process.
Standardmäßig startet Start-Process eine Anwendung ohne, dass die PowerShell auf deren Beendigung wartet.
Um beispielsweise den Windows-Editor zu starten, ohne zu warten, kann folgender Befehl verwendet werden:
Start-Process notepad.exe
Nach Ausführung dieses Befehls ist die PowerShell-Eingabeaufforderung sofort wieder verfügbar, während der Editor geöffnet bleibt.
Start-Job für PowerShell-spezifische Hintergrundaufgaben
Möchte man PowerShell-Skripte oder Kommandos im Hintergrund ausführen, kann man auch das Cmdlet Start-Job nutzen.
Dies startet einen PowerShell-Job im Hintergrund, der unabhängig von der Hauptsitzung läuft.
Die Steuerung und Ergebnisse des Jobs können später abgerufen werden. Dieses Verfahren eignet sich besonders für komplexe oder längere Tasks, die nicht das Starten externer Programme betreffen.
Alternativen zur Hintergrundausführung
Neben Start-Process gibt es weitere Varianten, um Programme im Hintergrund zu starten, wie z.B. das Verwenden des Ampersands & oder auch der WScript-Shell im COM-Objekt, allerdings sind diese oft komplizierter oder weniger transparent.
Für die meisten Anwendungsfälle ist Start-Process die empfohlene Methode unter PowerShell.
Fazit
Um eine Anwendung in PowerShell im Hintergrund zu starten, ohne dass die Eingabeaufforderung blockiert wird, ist das Cmdlet Start-Process die einfachste und effizienteste Lösung.
Für PowerShell-eigene Aufgaben bietet sich das Starten von Hintergrund-Jobs mit Start-Job an.
Beide Methoden tragen dazu bei, dass Prozesse und Skripte parallel ausgeführt werden können, ohne dass der Benutzer warten muss.
