Wie kann ich unter Windows 7 eine ausführbare Datei auf einem Remote-PC ausführen und auf die Ergebnisse warten und sie abrufen?

0

Ich habe einen Build-PC, der ausführbare Dateien auf einem anderen PC im Netzwerk bereitstellt. Ich habe ein zugeordnetes Netzlaufwerk zum Kopieren, aber ich könnte auch FTP verwenden. Das Kopieren ist also ziemlich trivial.

Sobald diese ausführbaren Dateien kopiert sind, möchte ich den Remote-PC anweisen, die Anwendung auszuführen. Sobald die Anwendung abgeschlossen ist, werden einige Protokolle generiert. Der Build-PC muss wissen, wann der Remote-PC fertig ist, damit er die Protokolle vom Netzwerklaufwerk sammeln kann.

Wie kann ich das erreichen? - Derzeit sind meine Build-Skripte in VBScript.

code_fodder
quelle
Durch die Mitteilung der Fertigstellung. Sie können eine PowerShell-Remotesitzung vom Build-PC aus verwenden, um das Skript auf dem Remote-PC auszuführen. Sie können Dateien verwenden, um jede Art von Abschluss anzuzeigen, indem Sie den Build-PC oder den Remote-PC drücken / ziehen lassen. Sie könnten eine Datenbank einbeziehen und nach etwas Ausschau halten, das darauf geschrieben ist. Sie können Ihren Build-PC das Remote-EventLog überwachen lassen und nach Abschluss Ihres Skripts in das Protokoll schreiben. Es gibt wahrscheinlich mehr Alternativen.
Seth
Ist es für Sie geeignet, Befehle aus der Ferne über psexec zu senden?
Zumo de Vidrio
Möglicherweise ist mein Verständnis nicht korrekt, aber versuchen Sie, den Modul- Unterprozess in Python und seine Methode zu betrachtencommunicate()
Pavel,
@Seth Danke dafür - ich habe noch nie eine Power Shell benutzt. Ich glaube, ich muss diese installieren, damit sie funktioniert. Ist das richtig? (Ich denke PS1 ist installiert, aber ich brauche PS3). Ich hoffte auf eine eingebaute Option oder etwas einfacheres.
code_fodder
@ZumodeVidrio ohhh ... das sieht sehr vielversprechend aus! - infact wahrscheinlich genau das, was ich brauche. Ich muss es ausprobieren - aber eine interaktive Befehlszeile klingt so, als könnte sie über mein VBScript ausgeführt werden. Findest du das richtig?
code_fodder

Antworten:

1

In Ihrem Szenario gibt es viele verschiedene Ansätze. Beispiele wären:

  • Verwenden von Dateien, um anzuzeigen, wann Ihr Skript abgeschlossen wurde (mithilfe eines Push / Pull-Mechanismus an beiden Enden)
  • Verwenden eines Netzwerks für die direkte Kommunikation (kann mit VBScript schwierig sein)
  • Verwenden einer Datenbank anstelle eines Datei- und Basis-Push / Pull-Mechanismus
  • Beobachten Sie das EventLog der Remote-Maschine und schreiben Sie darauf, wenn die Skripte abgeschlossen sind.
  • Verwenden einer Remote-Sitzung in irgendeiner Form (z. B. PowerShell)

Meiner Meinung nach ist die letzte Option wahrscheinlich die bequemste. Für PowerShell bedeutet dies, dass Sie PowerShell-Remoting auf dem Remotecomputer aktivieren und eine Verbindung von Ihrem Buildserver herstellen müssen, um Befehle direkt auf dem Remotehost auszuführen.

Es gibt verschiedene Anleitungen zum Einrichten ( Kurzanleitung für PowerShell v2 Remoting mit PSSession ). Nach dem ersten Setup ist es so einfach, eine neue Sitzung zu erstellen ( New-PSSession/ Enter-PSSession) und zu verwenden ( Enter-PSSession/ Invoke-Command).

Wenn Sie sich nicht darauf verlassen möchten, können Sie dies auch psexecin Betracht ziehen, was Teil der Sysinternals-Tools ist. Auch hier müssten Sie sicherstellen, dass Sie über bestimmte Ports auf den Remotecomputer zugreifen können. In Kombination mit VBScript (Originalvorschlag von Zumo de Vidrio) könnte dies jedoch einfacher sein.

Seth
quelle