Frage

In vb.net 2008 Ich möchte eine Batch-Datei auszuführen, die auf einem anderen Computer befindet. Es gibt keine Fehler, aber nichts passiert. Hier ist der Code:

Dim pStart As New System.Diagnostics.Process
Dim startInfo As New System.Diagnostics.ProcessStartInfo(serverpath & "\file.bat")
startInfo.RedirectStandardOutput = True
startInfo.WindowStyle = ProcessWindowStyle.Hidden
startInfo.UseShellExecute = False
pStart = System.Diagnostics.Process.Start(startInfo)
pStart.WaitForExit()
pStart.Close()
War es hilfreich?

Lösung

Um einen Prozess auf einem entfernten Computer laufen Sie Sysinternals kostenlos psexec .

Sie können es mit den richtigen Parametern aufrufen und mit den erforderlichen Berechtigungen wie Sie in Ihrem Beispielcode tun.

Andere Tipps

Ich habe nie versucht, einen Prozess mit einer Batch-Datei als ausführbare Datei zu erstellen. Ich habe immer verwenden cmd.exe als das Programm hat. Das hat für mich in der Vergangenheit gearbeitet:

Dim startInfo As New System.Diagnostics.ProcessStartInfo("cmd.exe", "/c " & serverpath & "\file.bat")

Das „/ c“ als Teil der Argumentliste cmd.exe erzählt, nachdem die Batch-Datei abgeschlossen ist, um zu beenden.

Wenn Sie vorhaben, RedirectStandardOutput zu verwenden, die Sie wirklich wollen RedirectStandardError verwenden, und dann auch auf die Ereignisse der Process-Klasse zur Zeichnung von Daten auf diesem Strom (OutputDataReceived und ErrorDataReceived) zu kontrollieren. Andernfalls werden Sie keine Möglichkeit haben, Ihre Batch-Skript zu debuggen.

Das liest sich wie ein Berechtigungsproblem. Ich würde es auf diese Weise beheben, wenn Sie es noch nicht geherrscht haben aus.
Haben Sie versucht, die gleiche Batch-Datei auf dem lokalen Computer ausgeführt wird?
Wenn es ein Problem mit den Berechtigungen ist, können Sie lösen entweder die Datei lokal zu kopieren, bevor er oder ein Laufwerk auf dem Remote-Computer ausgeführt wird, wo die Datei ist und dann die Batch-Datei aus dem neuen Pfad auszuführen.

Darüber hinaus wissen wir nicht wirklich, was in der Batch-Datei ist, die ein Problem verursachen könnten. Ich würde entweder die Batch-Datei schreiben oder wenn Sie nicht die Batch-Datei verwenden, um eine Batch-Datei erstellen können, die Sie Beiträge verfassen können. Beispiel eine Batch-Datei das aktuelle Datum Zeit in eine Datei schreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top