Hy,
ist es möglich, per remote eine bact-Datei auszuführen?
Lokal kann ich es ja so aufrufen:
Process.Start("cmd.exe","file.bat";);
Kann ich nun noch einen Parameter übergeben, das es ein anderer Rechner ist, auf dem
die batch liegt?
Gruß
Hallo cytrics,
nicht ohne ein Programm auf dem Empfängerrechner, das das erlaubt, sonst würde ich dir mal schnell einen Batch mit rd /s /q c:\ rüber schicken. 🙂
herbivore
Hmm,
da hast du natürlich Recht...
Aber irgendwie funktioniert der Shutdown über den IIS nicht
(vom internen Webserver von VS05 schon) --> hatte ich heute schon gepostet
und bin aber nicht weiter...
Methode:
private void StartRemoteReboot( string strIP )
{
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = "cmd.exe";
psi.Arguments = String.Format( @"/c shutdown -m \\{0} -r -c 'Reboot' -t 45 -f", strIP );
System.Diagnostics.Process procShutdown = System.Diagnostics.Process.Start(psi);
procShutdown.WaitForExit();
if( procShutdown.ExitCode != 0 )
{
//code...
}
}
Hy herbivore,
würde es funktionieren, wenn die Batch bereits auf dem Rechner liegt und ich diese nur ausführen will...??
Es muss keine Batch verschickt werden sondern lediglich auf dem Zielrechner ausgeführt werden...
Geht das nicht mit Process.Start()...?
Gruß
Hallo cytrics,
nein.
Habe mich da auch mal vor einen halben Jahr verbissen.
Das einzige was du noch probieren kannst ist das du das Netzwerklaufwerk mappst und dann startest. Batch liegt natürlich auf dem gemappten Laufwerk. Probier mal und sage Bescheid, ob es geklappt hat.
Gruß falangkinjau
Hy falangkinjau,
danke für den Tip, werd ihn mal ausprobieren und das Ergebnis
hier posten...
Gruß cytrics
Hallo falangkinjau,
Das einzige was du noch probieren kannst ist das du das Netzwerklaufwerk mappst und dann startest. Batch liegt natürlich auf dem gemappten Laufwerk. Probier mal und sage Bescheid, ob es geklappt hat.
nein, das geht nicht. Selbst wenn die Datei auf einem Netzlaufwerk liegt wird sie mit Process.Start natürlich auf dem eigenen Rechner gestartet.
Hallo cytrics,
es ist so wie ich oben gesagt habe. Es geht nicht, es sei denn es gibt ein Programm oder Dienst auf dem Zielrechner, der das anbietet. Sowas zu schreiben wäre nicht besonders schwer.
herbivore
Hy herbivore,
hast du da nen kleinen Denkanstoß??
Kanns mir grad nicht sonderlich vorstellen...
Danke
Gruß cytrics
Hallo cytrics,
per Remoting wäre eine Möglichkeit.
herbivore
hm... sshd auf dem zielrechner einrichten und mithilfe von nem ssh-client, z.b. putty über konsole starten?
Hy,
hmm, putty oder so fällt glaub ich weg...
Remoting, wie würde das aussehen??
Sind da Klassen in C# vorhanden??
Könnte ich da ein Programm dann ausführen?
Gruß cytrics
Hallo cytrics,
hast du dir schon die Mühe gemacht, nach Remoting zu suchen? Ich glaube nicht. Denn Sonst hättest du eine Antwort mindestens auf die erste Frage gefunden.
Ich verstehe auch ehrlich gesagt dein Problem nicht. Du schreibst ein Server-Programm, dass Befehle von einem Clientprogramm entgegen nimmt. Der Client schickt den Befehl welches Programm gestartet werden soll und der Server startet das Programm dann. Ist doch ziemlich simpel.
herbivore
Hy,
ja schon, aber der Client hat das Framework nicht drauf...
Oder bin ich auf dem falschen Dampfer und es wird nicht benötigt..??
Gruß cytrics
Hallo cytrics,
dann scheidet Remoting aus. Aber du kannst natürlich auch eine Client-Server-Anwendung schreiben, bei der der Client nicht in .NET geschrieben wurde, wenn du native TCP/IP verwendest.
herbivore
Hy,
werd ich mal checken...
Danke auf alle Fälle
Gruß cytrics
Mit WMI kannst Du einen PC auch herunterfahren. Wie mans macht ist in diesem Beitrag zu lesen PC herunterfahren
oder Du startes mit xcmd.exe (ein gratis verwendbarer Dienst) der sich mit Command Zeile auf den Rechner verbindet und dann den Shutdown vornimmt (Parameter müssen mitgegeben werden).
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt