Powershell Exit

InQyyy

Cadet 2nd Year
Registriert
Okt. 2014
Beiträge
18
Hallihallo,

Ich habe aktuell ein Problem bei einem Script das über den Task Scheduler laufen soll.
Wenn das Script ausgeführt wurde bleibt Powershell ofeen wodurch beim nächsten ausführen des Scripts die offene Konsole verwendet wird und das Script nicht korrekt ausgeführt wird da einige Parts des Skriptes nicht von Grundauf navigiert werden.

Die Frage ist vermutlich recht easy, ich möchte das sich die Konsole nach einiger Zeit automatisch wieder schließt damit beim nächsten Durchgang Powershell von vorne gestartet wird.
Im Internet habe ich leider keine Möglichkkeit gefunden den Befehl "exit" nach einer Zeit auszuführen wie z.B. das herunterfahren des PC's/Servers "shutdown -t -s 1800" e.p.
Kennt heir jemand zufälligerweise die Parameter die hinter Exit müssen? "-s -t etc" funktioneirt nicht.



Danke im Vorraus InQyyy
 
<skript>
"Sleep"
Exit

???
 
Das Script selber erzeugt eine excel Datei aus RVTools. Dieser Vorgang zieht sich gut 15 Minuten hin und wird abgebrochen sobald sich die powershell schließt.
Wenn ich Exit mache schließt er doch die Powershell sobald er am ende des Scriptes ist. Wenn die restlichen Vorgänge nicht ausgeführt wurden bis dann, wars für die Katz.


Theobald93, einen Sleep befehl kenne ich noch nciht. geht der mit den standartparametern so das ich ihm Sagen kann nach wievielzeit er das Script weiter abarbeiten soll?


Danke danke, mit Sleep habe ich das Problem lösen können.

"Start-Sleep -s 1800"
"Exit"

Danke kann geclosed werden
 
Zuletzt bearbeitet:
Wenn du aus dem Skript externe Programme aufrufst, dann nutz dafür den Befehl "Start-Process" und häng ein "-wait" mit dran, dann wartet das Skript so lange, bis es von der aufgerufenen Anwendung eine Rückmeldung bekommt.
Alternativ kannst du mit "Start-Sleep -Seconds $Zeit" eine entsprechende Anzahl Sekunden warten. Wenn das Skript immer unterschiedlich läuft, kannst du einfach eine Do... While Schleife machen. Die While Bedingung ist, das ein bestimmter Prozess läuft und in der Schleife wird immer eine bestimmte Zeit lang gewartet.

Mfg Kae
 
Dafür auch danke, ich sehe Morgen oob es so funktioniert ansonsten ist das nh gute Alternative die ich anwenden werde.
 
Das braucht normalerweise keine Anpassung im Skript, sondern in den Powershell Startparametern.
Programm: powershell.exe
Argumente: -noninteractive -command "Pfad\Zum\Skript.ps1"

PS: Das programmiere das Skript lieber so, dass es dir eine Art Logfile schreibt. Kannste ja mit Get-Date | Out-File -append machen.
 
Huhu,

Ich habe nun Zeit zu Antworten. Für Zukünftige die auf das Problem stoßen könnten,

gelöst wurde es wie folgt, zum einen in Task-Schedule so wie Morcego es schon vorgeschlagen hat ein -command vorsetzen. Zum anderen habe ich nicht gesehen das es eine stelle gitb an der man ein Häkchen für "Run with highest privileges" setzen kann. Diese beiden in Kombination haben am ende den gewünschten Erfolg gebracht das das ps1 Script läuft.


Dazu muss ich noch sagen, dass das Script die Datei nciht erzeugt sondern ein programm anspricht welches eines erzeugt und diese Datei dann nur von Server A nach Terminal.Server schiebt damit alle darauf zugreifen können.
 
Zurück
Oben