Start-Process -wait funktioniert nicht, wenn das Skript über die Eingabeaufforderung gestartet wird, die mit Runas oder als geplante Aufgabe geöffnet wurde
Ich habe ein Skript, das ich als geplante Aufgabe ausführen möchte, aber es tut nicht das, was es soll. Ich versuche, eine ausführbare Datei mit Start-Process und der Option -Wait aufzurufen, bevor ich fortfahre. Linie ist
Start-Process -FilePath "C: \ Pfx Engagement \ Admin \ Dienstprogramme \ Backup Restore \ BackupRestoreUtil.exe" -ArgumentList "/ f"$backup_directory
"" -Warten
Wenn ich es von einer Eingabeaufforderung aus aufrufe, dh:
Powershell. \ script.ps1
Es klappt. Es führt den Befehl aus und wartet, bis er beendet ist, bevor es weitergeht. Nach Abschluss dieses Befehls muss noch mehr im Skript ausgeführt werden. Das Problem ist, dass es keine Wartezeit gibt, wenn es sich um eine geplante Aufgabe handelt. Bei einigen grundlegenden Schritten zur Fehlerbehebung habe ich zuerst versucht, ein Cmd-Fenster mit Runas über das geplante Taskkonto mit dem Namen "Scripts" zu öffnen. Also renne ich
runas / env / user: Skripte cmd
Öffnen eines Eingabeaufforderungsfensters mit dem Aufgabenkonto. Von dieser Eingabeaufforderung aus versuche ich es erneut mit der "Powershell. \ Script.ps1" und dieses Mal wartet sie nicht. Es führt den Befehl aus und fährt sofort fort, bevor der Befehl beendet ist. Daher dachte ich, es könnte ein Problem mit dem Konto "Scripts" geben, bis ich mit runas Administrator eine neue Eingabeaufforderung öffnete
runas / env / user: Administrator cmd
Wenn ich das Skript über diese Administrator-Eingabeaufforderung aufrufe, wird der Schalter -Wait ebenfalls ignoriert, und das Skript wird sofort nach dem Aufrufen weitergeschaltet, ohne auf den Abschluss zu warten.
Das seltsame daran ist, dass es funktioniert, wenn ich es von der Eingabeaufforderung des Administratorkontos aus aufrufe, ohne Runas auszuführen. Gleiches Konto, zwei unterschiedliche Ergebnisse. Irgendwelche Ideen, was zum Teufel hier vor sich geht und was ebenso wichtig ist, wie man es behebt?
Betriebssystem ist Server 2008 R2, auf dem Powershell 3.0 ausgeführt wird