Hallo Powershell-Profis,
ich schreibe ein Powershell-Skript (PSVersion 5.1.14393.2636) auf Windows Server 2016.
Das Skript soll am Ende mehrere verschiedene Aufgaben erfüllen, daher ist es untergliedert:
"Programmstart.ps1"
"Programmphase1.ps1"
"UnterprogrammPhase1a.ps1"
"UnterprogrammPhase1b.ps1"
"UnterprogrammPhase1c.ps1"
"Programmphase2.ps1"
"UnterprogrammPhase2a.ps1"
"UnterprogrammPhase2b.ps1"
"Programmphase3.ps1"
"UnterprogrammPhase3a.ps1"
"UnterprogrammPhase3b.ps1"
"UnterprogrammPhase3c.ps1"
"UnterprogrammPhase3d.ps1"
"Programmstart.ps1" ruft die Dateien "Programmphase....ps1" auf, welche wiederum die Dateien "UnterprogrammPhase....ps1" aufrufen.
Der Aufruf erfolgt über powershell.exe -file Programmphase1.ps1 -parameter1 $parameter1 - parameter2 $parameter2
Grundsätzlich funktioniert dieses Prinzip, bis auf zwei Punkte:
Punkt1: Benutzereingaben über die Konsole
(Ich möchte keine GUI verwenden, mit GUI funktioniert es)
Benutzereingaben über read-Host sind nur in der obersten Ebene "Programmstart.ps1" möglich.
Bereits in der nächsten Ebene "Programmphase1.ps1" bleibt das Skript einfach stehen. Es können weder Eingaben gemacht werden, noch kann das Skript abgebrochen werden.
Ich hatte schon versucht das Skript auszutricksen und habe anstatt read-host eine separate Datei mit Mandatory-Parameter aufgerufen, dies hat leider nicht funktioniert.
Gibt es eine Möglichkeit auch in dieser Ebene Benutzereingaben abzufragen?
Punkt2: Darstellung von Schriftfarben in der Konsole
Zur besseren Orientierung im Programmablauf der Konsole sollen bestimmte Textabschnitte farblich hervorgehoben werden. Dies funktioniert nur in der obersten Ebene "Programmstart.ps1" des Programms, nicht in den Unterebenen "Programmphase.....ps1"
bzw "UnterprogrammPhase....ps1"
write-host "schwarze Schrift auf grünem Untergrund" -BackgroundColor Green -ForegroundColor Black
Hier werden die Farbanweisungen einfach ignoriert.
Ich habe selbst an mehreren Tagen über mehrere Stunden gegoogelt und ausprobiert, aber keine Lösung finden können.
Es wäre super, wenn mir hier jemand weiterhelfen könnte.
Vielen Dank schon mal im Voraus.
Viele GrüßePSNeuling