2017-02-08 3 views
0

Ich habe ein Powershell-Skript Ich bringe zusätzliche Powershell-Instanzen zum Ausführen von Cmdlets hervor.Powershell Zusätzliche Powershell-Instanz starten und stoppen foreach loop

Ich muss Start-Process, eine Powershell-Instanz, aus einer verschachtelten foreach-Schleife und ermöglichen den Prozess durchlaufen und dann diesen Prozess, wenn es abgeschlossen ist.

Wie stoppe ich den Prozess, der speziell mit meiner foreach-Schleife verbunden ist, wenn es mit seiner Aufgabe abgeschlossen ist?

+0

Was ist Ihre Frage? –

+0

Bearbeitet, um meine Frage hinzuzufügen. Ich habe hastig gepresst Frage stellen! – johnnyb

+0

Gibt es eine Möglichkeit, mehrere Instanzen von powershell.exe zu starten, um meinen Befehl auszuführen und den Prozess dann zu beenden, wenn er abgeschlossen ist? – johnnyb

Antwort

0

Wenn Sie nichts tun, für das Anmeldeinformationen erforderlich sind, können Sie Aufträge verwenden.

$job = Start-Job { # Do stuff } 
$job.StopJob() 

Alles, was Anmeldeinformationen beteiligt ruft den Zorn Doppel Hopping, aber ich glaube nicht, dass es so funktioniert, sind Sie es in Ihrer Frage läuft entweder so kein Problem sein sollte.

Alternativ können Sie runspaces verwenden, aber das ist eine große Dose Würmer. Siehe this link, wenn Sie dorthin gehen wollen.

+0

theres nichts falsch mit runspaces – 4c74356b41

+0

Nein, aber sie sind wesentlich komplexer als Jobs –

+0

und wesentlich schneller;) – 4c74356b41