ich bin gerade dabei ein Windows Updatescript zu schreiben.
Das Script soll die Powershell aufrufen, welches auch wunderbar funktioniert.
Anschließend soll auf laufende Prozesse innerhalb der Powershell geprüft werden und bei Bedarf sollen diese Prozesse gekillt werden.
Das habe ich in der Powershell Skirptsprache geschrieben. Normal als .ps1 Datei ausgeführt funktionert auch alles.
Wenn ich nun mittels ExecWith_Powershell die Powershell aufrufe, öffnet sich diese, jedoch werden die nachfolgenden Eingaben dort nicht eingegeben. Auch im Hintergrund passiert nichts, wenn ich sehe, dass die Dienste bereits laufen und gekillt werden sollen.
Da es sich hier bei mir um eine Art Prüfung handelt, kann ich leider keine Ausschnitte aus meinem Skript posten.
Ich habe schon viel gesucht, bin allerdings nicht fündig geworden, deswegen die Frage an euch:
Wie kann ich opsi dazu bringen, die Befehle in die Powershell einzugeben?
So in etwa sieht der Teil des Scriptes aus:
Code: Alles auswählen
[ExecWith_Powershell]
Start-Process powershell -Verb runAs
Die folgenden Eingaben sollen anschließend komplett der Reihenfolge nach eingegeben werden. Das funktioniert allerdings nicht.
Hier verfeinfacht dargestellt:
Code: Alles auswählen
powershell.exe set-executionpolicy RemoteSigned
$tasks = @("hier die Prozesse die gekillt werden sollen")
for($i=0; $i -le ($tasks.length -1); $i++)
{
$no_running_process =Hier die Überprüfung auf laufende Prozesse, eben 3 stück}
if ($no_running_process -imatch $tasks[$i])
{
Hier wird dann der Prozess gestoppt
}
}
exit 0
Desweiteren habe ich noch eine kleine Frage.
Ich führe zwei mal hintereinander die Powershell aus, möchte jedoch, dass opsi zwischen Sektion 1 und Sektion 2 5 Sekunden wartet.
Der Befehl zum ausführen lautet
Code: Alles auswählen
ExecWith_Powershell "%Systemdrive%\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" /WaitSeconds 5
Als Fehlermeldung im Skript Tester kommt dann:
Code: Alles auswählen
Die Benennung "/WaitSeconds" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist
Vielen Dank für die Hilfe!
LG
Vir2ell