Hi @ all...
So...ich reg mich jetzt erstma auf, weil meine Kiste hier mir gerade einfach so meinen Eintrag gelöscht hat, bevor ich auf Erstellen klicken konnte...111 eins eins elf
So, ich versuche, per Programm Dateien im größeren Stil auf verschiedene Rechner in einer Domäne zu kopieren und dort auch teilweise ausführen.Bevor ich die Befehle in C# umwandle, teste ich sie auf Funktionsweise in der Kommandozeile. Ist der Test erfolgreich, hacke ich sie in mein Programm rein, was bisher auch gut funktioniert hat.
Als ich aber eine TestBuildAndAvailability.bat ausführen wollte, um die Vorraussetzungen "Erreichbarkeit" und "Erforderliches Build" testen wollte, klappte es zwar in der Kommandozeile, nicht aber nach der Umwandlung in C#. Ich habe mir den Befehl ausgeben lassen mittels einer MessageBox und den Befehl 1 zu 1 abgetippt, und dort funktionierte es dann wieder...verstehe wer will...
Der Befehl für das ausführen der Batch-Datei auf einem Fremd-Pc lautet wie folgt mit folgenden Angaben:
Remote_PC: Remote
Local_PC: Local
Domain: Hasenstall
Dieser Befehl funktioniert auch, Vorraussetzungen sind halt unter anderen: Administrator, Administrativer Zuigriff auf Fremd-PC, Firewall und AntiVir aus etc...
Den Befehl hatte ich anschließend in C# umgewandelt und sah dann wie folgt aus:
Wenn es dann an die entsprechende Stelle im Code kommt, dann zeigt er mir nur noch ein schwarzes Dos-Fenster an...Klasse, warum denn das? Weil ich es von hier nach da ausführe? Ich habe es ebenfalls mit rüberkopieren und anschließend dort starten probiert...auch nicht besser...und es funktioniert ja hier in der Kommandozeile, warum also geht da nichts weiter?
Es funktioniert auf der Kommandozeile, im Programm jedoch mag er dann nicht mehr weiter...weiß einer weiter?
Liebe Grüße, Hawkin
Nachtrag: Mittlerweile geht es zwar im Programm weiter, aber es bleibt ein schwarzes Fenster mit dem Befehl \\Test2: cmd / c .... als ÜBerschrift bestehen...! Und wenn ich es schließe, gibt er mir nen dicken Error zurück...
So...ich reg mich jetzt erstma auf, weil meine Kiste hier mir gerade einfach so meinen Eintrag gelöscht hat, bevor ich auf Erstellen klicken konnte...111 eins eins elf
So, ich versuche, per Programm Dateien im größeren Stil auf verschiedene Rechner in einer Domäne zu kopieren und dort auch teilweise ausführen.Bevor ich die Befehle in C# umwandle, teste ich sie auf Funktionsweise in der Kommandozeile. Ist der Test erfolgreich, hacke ich sie in mein Programm rein, was bisher auch gut funktioniert hat.
Als ich aber eine TestBuildAndAvailability.bat ausführen wollte, um die Vorraussetzungen "Erreichbarkeit" und "Erforderliches Build" testen wollte, klappte es zwar in der Kommandozeile, nicht aber nach der Umwandlung in C#. Ich habe mir den Befehl ausgeben lassen mittels einer MessageBox und den Befehl 1 zu 1 abgetippt, und dort funktionierte es dann wieder...verstehe wer will...
Der Befehl für das ausführen der Batch-Datei auf einem Fremd-Pc lautet wie folgt mit folgenden Angaben:
Remote_PC: Remote
Local_PC: Local
Domain: Hasenstall
PHP:
psexec \\Remote -u Hasenstall\Administrator -p lala cmd /c "\\Local\C$\temp\TestBuildAndAvailability.bat"
Dieser Befehl funktioniert auch, Vorraussetzungen sind halt unter anderen: Administrator, Administrativer Zuigriff auf Fremd-PC, Firewall und AntiVir aus etc...
Den Befehl hatte ich anschließend in C# umgewandelt und sah dann wie folgt aus:
Code:
string lmachine = System.Environment.MachineName;
string lRemote = f2.remote_path;
char lLaufwerk = lRemote[0];
string lTestBatch = lForm1.strAppDir + @"\TestBuildAndAvailability.bat";
lRemote = lTestBatch.Substring(3);
MessageBox.Show(lmachine+" : "+lLaufwerk+" : "+lRemote);
string myTime = System.DateTime.Now.ToShortDateString();
string logmess = "";
for (int i = 0; i < lForm1.currentNumHosts; i++)
{
//Test auf Verfügbarkeit per Batch-File
Process xProcess = new Process();
xProcess.StartInfo.FileName = lForm1.strAppDir + @"\Requirements\psexec.exe"; //muss auf beiden Clients installiert sein
xProcess.StartInfo.Arguments = @" \\" + lForm1.clientArr[i] + " -n 5 -u " + lDomain + "\\" + lUID + " -p " + lPW + @" cmd /c " + " \"" + @"\\" + lmachine + @"\" + lLaufwerk + @"$\" + lRemote + "\"";// +f2.remote_path + @"\TestBuildAndAvailability.bat";
MessageBox.Show(xProcess.StartInfo.Arguments);
xProcess.StartInfo.RedirectStandardError = true;
//xProcess.StartInfo.RedirectStandardOutput=true;
xProcess.StartInfo.UseShellExecute = false;
if (xProcess.Start() == false)
........
...
Wenn es dann an die entsprechende Stelle im Code kommt, dann zeigt er mir nur noch ein schwarzes Dos-Fenster an...Klasse, warum denn das? Weil ich es von hier nach da ausführe? Ich habe es ebenfalls mit rüberkopieren und anschließend dort starten probiert...auch nicht besser...und es funktioniert ja hier in der Kommandozeile, warum also geht da nichts weiter?
Es funktioniert auf der Kommandozeile, im Programm jedoch mag er dann nicht mehr weiter...weiß einer weiter?
Liebe Grüße, Hawkin
Nachtrag: Mittlerweile geht es zwar im Programm weiter, aber es bleibt ein schwarzes Fenster mit dem Befehl \\Test2: cmd / c .... als ÜBerschrift bestehen...! Und wenn ich es schließe, gibt er mir nen dicken Error zurück...
Zuletzt bearbeitet: