So führen Sie den Prozess auf remote-Maschine, die in C#
Wie kann ich einen Prozess auf einem remote-computer in c#, sagen computer name = "someComputer", mit System.Diagnostik.Process-Klasse?
Habe ich ein kleines console-app auf dem remote-computer, der einfach nur schreibt "Hallo Welt" in eine txt-Datei, und ich möchte sagen, es aus der Ferne.
Console-app-Pfad: c:\MyAppFolder\MyApp.exe
Derzeit habe ich dieses:
ProcessStartInfo startInfo = new ProcessStartInfo(string.Format(@"\\{0}\{1}", someComputer, somePath);
startInfo.UserName = "MyUserName";
SecureString sec = new SecureString();
string pwd = "MyPassword";
foreach (char item in pwd)
{
sec.AppendChar(item);
}
sec.MakeReadOnly();
startInfo.Password = sec;
startInfo.UseShellExecute = false;
Process.Start(startInfo);
Dass ich immer "der Netzwerkpfad wurde nicht gefunden".
InformationsquelleAutor der Frage DJPB | 2010-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können PsExec von http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
Oder WMI:
InformationsquelleAutor der Antwort Ivan G.
Verwenden Sie eine der folgenden:
Oder, wenn Sie Lust haben, Spritzen Sie Ihre eigenen Dienst oder COM-Komponente. Das wäre sehr nahe an dem, was PsExec funktioniert.
Alle diese Methoden, die ich bevorzuge, task scheduler. Die sauberste API, die ich denke. Die Verbindung zum remote-task-scheduler, erstellen Sie eine neue Aufgabe für die ausführbare Datei, führen Sie es. Hinweis: der name der ausführbaren Datei sollte es sich um ein lokales dass Maschine. Nicht \servername\path\file.exe aber c:\path\file.exe. Die Aufgabe löschen, wenn Sie das Gefühl, wie es.
Alle diese Methoden erfordern, dass Sie den administrativen Zugriff auf den Zielrechner.
ProcessStartInfo
ist nicht in der Lage, dem Start von remote-Prozessen.InformationsquelleAutor der Antwort Seva Alekseyev
Laut MSDNein
Process
- Objekt erlaubt nur die Zugang remote-Prozesse, die nicht die Möglichkeit zum starten oder stoppen von remote-Prozessen. Also um deine Frage zu beantworten mit Bezug auf die Verwendung dieser Klasse können Sie nicht.InformationsquelleAutor der Antwort
Beispiel mit WMI und andere Anmeldeinformationen als die aktuellen Verfahren, die auf Standard-es verwendet die gleiche Benutzer wie der Prozess läuft.
InformationsquelleAutor der Antwort live2
Ich glaube nicht, können Sie einen Prozess starten, durch einen UNC-Pfad direkt; das heißt, wenn System.Prozess verwendet die windows comspec um die Anwendung zu starten... wie über Sie testen diese Theorie durch die Zuordnung eines Laufwerks zu "\someComputer\somePath", dann ändern Sie Ihre Kreation ProcessStartInfo? Wenn es so funktioniert, dann möchten Sie vielleicht zu prüfen, vorübergehend mapping-Laufwerk programmgesteuert, Ihre app starten, dann entfernen Sie die Zuordnung (ähnlich wie pushd/popd Werke aus einem Kommando-Fenster).
InformationsquelleAutor der Antwort F3.