Powershell: Fenster nach Skriptausführung nicht automatisch schließen

Wenn man ein Powershell-Skript testet und dieses nicht wie gewünscht funktioniert, gibt es nichts nervigeres, als wenn dieses dann einfach geschlossen wird. Die eventuell aufgetretenen Fehlermeldungen kann man dann nicht mehr einsehen. In der Powershell ISE ist dies natürlich kein Problem, aber beim Test auf einem Zielsystem, wo das Skript vielleicht automatisch laufen soll, schon eher. Schon bei Batch-Dateien konnte man sich mit dem Befehl „pause“ am Ende des Skripts behelfen. Bei der Powershell gibt es noch andere Möglichkeiten.

 

Lösungsmöglichkeiten pro Skript:

Die folgenden Möglichkeiten müssen bei jedem Skript am Ende eingebaut werden um ein automatisches Schließen zu verhindern:

Wie auch in der CMD funktioniert der pause-Befehl, allerdings mit einem Unterschied. Soweit ich dies getestet habe, kann man die Unterbrechung nur mit der Enter- und nicht mit einer beliebigen Taste beenden:

Wie auch schon in C#-Konsolenprogrammen kann man einfach auf eine beliebige Eingabe des Benutzers warten, als würde man diese in eine Variable einlesen wollen. Nach der Entgegennahme der eingegebenen Daten folgt kein Befehl mehr und die Konsole wird geschlossen:

Natürlich kann man das Skript auch einfach eine extrem lange Zeit pausieren lassen, bevor sich das Fenster von selber schließen würde. In diesem Fall kommt aber keine Rückmeldung des Skriptes mehr und man müsste das Konsolenfenster dann selber schließen:

 

Einmalige Lösungsmöglichkeit:

Damit sich das Skript bei der nächsten Ausführung nicht schließt, kann man dieses auch einfach aus der Konsole starten. Hierzu öffnet man einfach ein Powershell-Fenster und ruft dann das Skript auf, beispielsweise so:

 

Dauerhafte Lösungsmöglichkeit:

Angeblich soll man das Verhalten auch per Registry so konfigurieren können, dass dauerhaft die Powershell-Konsole nach Abarbeitung des Skriptes nicht geschlossen wird. Ich konnte die entsprechenden Einträge aber in der Registry bei Windows 10 und Windows Server 2016 nicht finden 🙁

Schreibe einen Kommentar