Powershell Waitforexit Fernbedienung


Ich hatte ein kleines Programm in F (ähnlich wie C), das Prozesse nach Namen, dann filtert das eine durch seinen Pfad und wartet darauf, dass es zu beenden: Aber dieser Code funktioniert nur auf dem lokalen Computer. Jetzt möchte ich die gleiche Funktionalität auf Remote-Computer zu erreichen. So thats, warum ich PowerShell (Im völlig neu zu ihm) wähle. Ist es möglich, Prozess durch seinen Pfad zu filtern und warten, bis es mit einer Zeile in Powershell zu beenden, wenn nicht, vielleicht können Sie mehr Lösung Wie ich diese Zeile auf Remote-Computer ausführen Ich habe bereits eine Idee. Ich brauche nur diese magische Linie. EDIT: Eigentlich sollte diese Zeile auf lokalen Rechner arbeiten, weil ich es mit msdeploy übergeben möchte, das es auf der entfernten Maschine als lokalen Befehl ausführt. Ich versuche, ein Programm von PowerShell auszuführen, für den Ausgang warten, dann erhalten Sie Zugriff auf die ExitCode, aber nicht viel Glück. Ich möchte nicht - Wait mit Start-Prozess, wie ich einige Verarbeitung, um im Hintergrund zu tragen brauchen. Heres ein vereinfachtes Testskript: Wenn Sie dieses Skript ausführen, wird der Notizblock gestartet. Nachdem dieser manuell geschlossen wurde, wird der Exit-Code ausgedruckt, und er startet wieder ohne Verwendung von - wait. Kein ExitCode wird zur Verfügung gestellt, wenn dieses beendet wird: Ich muss in der Lage sein, eine zusätzliche Verarbeitung zwischen dem Starten des Programms und dem Warten auf es zu beenden ausführen, so kann ich nicht verwenden - Wait. Irgendeine Idee, wie ich dies tun kann und immer noch Zugriff auf die. ExitCode-Eigenschaft aus diesem Prozess gefragt werden Es gibt zwei Dinge, die hier erinnern. Eines ist, das - PassThru-Argument hinzuzufügen, und zwei ist das - Wait-Argument hinzuzufügen. Sie müssen das Warteargument wegen dieses Defekts hinzufügen connect. microsoftPowerShellfeedbackdetails520554start-process-does-not-return-exitcode-property Sobald Sie ein Prozessobjekt zurückgeben und Sie können die ExitCode-Eigenschaft des Objekts anzeigen. Hier ist ein Beispiel: Wenn Sie es ohne - PassThru oder - Wait ausführen, wird es nichts ausdrucken. CarlR Dies ist ein Quirk der Implementierung des Process-Objekts. Die Implementierung der ExitCode-Eigenschaft prüft zunächst, ob der Prozess beendet wurde. Aus irgendeinem Grund sieht der Code, der diese Überprüfung ausführt, nicht nur die HasExited-Eigenschaft an, sondern überprüft auch, dass der Prozedur-Handle im proces-Objekt vorhanden ist und eine Ausnahme auslöst, wenn dies nicht der Fall ist. PowerShell nimmt diese Ausnahme ab und gibt null zurück. Ndash Jakub Berezanski Vor 2 Tagen

Comments