Jump to content

Netzwerkbefehl - Batch/exe per Batch übers Netzwerk ausführen


xman197382465

Empfohlene Beiträge

Ich brauch mal wieder ne kleine Hilfestellung!

Ich habe ne Batch erstellt, die ich ganz gern übers Netzwerk ausführen möchte.

Die Batch auf dem PC könnte ich auch in ne .exe verwandeln, wenns dann einfacher ist....

 

Ich habs schon mit dem "net start"-Befehl probiert, aber damit passiert gar nüschts...

Bin mir aber nicht sicher, ob ich den Befehl korrekt eingegeben habe.

 

Bei mir siehts so aus:

net start \\10.0.0.5\"C:\Dokumente und Einstellungen\User\Desktop\Batch.bat"

 

 

Vielen Dank

Basti

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

Ich brauch mal wieder ne kleine Hilfestellung!

Ich habe ne Batch erstellt, die ich ganz gern übers Netzwerk ausführen möchte.

Die Batch auf dem PC könnte ich auch in ne .exe verwandeln, wenns dann einfacher ist....

 

Ich habs schon mit dem "net start"-Befehl probiert, aber damit passiert gar nüschts...

Bin mir aber nicht sicher, ob ich den Befehl korrekt eingegeben habe.

 

Bei mir siehts so aus:

net start \\10.0.0.5\"C:\Dokumente und Einstellungen\User\Desktop\Batch.bat"

 

 

Vielen Dank

Basti

 

Wie ausführen?

Soll das auf dem Rechner laufen auf dem die Batch-Datei liegt oder auf dem von dem sie aufgerufen wird?

 

Statt einer BAT würde ich dazu eine CMD-Datei nehmen und achte auf die Rechte sonst wird das nicht laufen, also die CMD muss auf einer Freigabe liegen auf die vom Client auch zugegriffen werden kann und der Benutzer der das macht muss ausreichende Rechte haben um diese ausführen zu dürfen.

 

Im Standart-Befehlssatz wirst du dazu nichts finden, gibt im Resourcekit "Remote.exe" besser finde ich "psexec" von systernals.com, damit solltest du das machen können was du willst.

 

Hier einige Infos dazu und runterladen kannst du es auch hier. ( PsTools-Paket )

http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Batch liegt auf Rechner A und auch auf dem soll die batch ausgeführt werden.

Von hand ist das kein problem, die batch ist fertig und funktioniert auch bestens.

Nur der rechner auf dem die batch liegt, ist in nem anderen Stockwerk und ich würde mir ganz gern den Gang ersparen und die Batch von Rechner B ausführen.

ALso kurz:

Auf Rechner A liegt die Batch und auch hier soll sie ihre Auswirkungen haben und Rechner B soll die Batch auf Rechner A starten

Link zu diesem Kommentar
Auf anderen Seiten teilen

Auf Rechner A liegt die Batch und auch hier soll sie ihre Auswirkungen haben und Rechner B soll die Batch auf Rechner A starten

Mit dem oben erwähnten psexec funktioniert das einwandfrei.

PsExec is a light-weight telnet-replacement that lets you execute processes on other systems

In Deinem Fall müsste

psexec \\10.0.0.5 "C:\Dokumente und Einstellungen\User\Desktop\Batch.bat"

ausreichen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich versuchs mal auf die psexec version!

psexec kriegt ne Verbindung zu dem pc und will die batch ausführen.

Aber irgendwie liest er nur die erste Zeile der Batch und macht nichts weiter...

Wenn ich die Batch zu ner exe wandel funktioniert die Verbindung aber ich bekomme folgenen Fehler

psexec \\10.0.0.5 "C:\Dokumente und Einstellungen\User\Desktop\a.exe" exited on 10.0.0.5 with error code 0

Link zu diesem Kommentar
Auf anderen Seiten teilen

also zuerst löscht die Batch auf dem anderen rechner ein paar Dateien.

Danach wartet sie 2 min und danach startet sie X mal acrobat reader und öffnet in jedem fenster eine andere PDF...

 

Wenn ich die Datei als .cmd statt .bat abspeicher passiert das selbe wie bei .bat!

Kann auch in der AUsführung keinen unterschied feststellen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Spiel mal mit den Parametern von psexec rum.

 

Google "psexec cmd" hat u.a. das zu Tage gefördert:

http://powershellcrashkurs.wordpress.com/2008/12/29/und-es-geht-doch-remoting-mit-psexec/

Möchte man einen UI-Prozess starten (besonders beliebt ist zu Testzwecken Calc.exe) und dieser sichtbar sein, muss Psexec.exe mit dem Schalter -i aufgerufen werden.

 

Hat das Userkonto auf Rechner A genügend Rechte?

http://www.administrator.de/index.php?content=8043

Weitere Fehlermöglichkeit ist, daß die verwendete Kennung evtl. nicht das Recht hat, einen Dienst zu installieren. psexec installiert nämlich witzigerweise einen Dienst, führt dann das angegebene Programm aus und deinstalliert den Dienst wieder in Sekundenschnelle.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe auch schon bissl mit Psexec zur Remote Datensicherung rumgespielt.

Versuch mal folgenden Code....

Damit sollte zumindest etwas sichtbares auf dem Remote Rechner passieren...

 

PSEXEC -i \\10.0.0.5 cmd /c "C:\Dokumente und Einstellungen\User\Desktop\a.bat"

 

in der a.bat sollte natürlich auch was drinstehen :)...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also er startet jetzt die batch auf dem remoterechner, sagt aber, dass er das dokument (die pdf, die per batch geöffnet wird) nicht finden kann.

Wenn ich die batch auf dem rechner per hand starte geht sie komischerweise....

Naja hatte so was ähnliches auch mal....

Kann es sein das der Pfad zur PDF Datei auf ein Verbundenes Netzlaufwerk verweist.

Dann funktioniert das nämlich nicht so ohne weiteres weil die Psexec immer in einem eigenen Prozess läuft.

Verbundene Netzlaufwerke kennt dieser eigenständige Prozess dann nicht...

Dazu müsstest du in der Batch vorher explizit noch einmal "net use K: \\10.0.0.100\share" benutzen um auch diesem einem Prozess das Netzlaufwerk zu Verfügung stellen. Wird die Batch nämlich von PSexec gestartet ist das der feine, kleine Unterschied...

Handelt es sich nicht um ein Netzlaufwerk bin ich grad etwas überfragt woran das mit dem nicht gefunden Pfad liegen kann....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gut erraten, es handelt sich um ein netzwerklaufwerk (O:)

Wär nett, wenn jemand mir mal genau schreiben könnte, was wo in die batch muss....

 

Bisheriger Batchinhalt Rechner A:

start C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" O:\IM\DB\02-04.pdf

 

Bisheriger Batchinhalt Rechner B:

psexec \\10.0.0.5 -i "C:\Dokumente und Einstellungen\User\Desktop\Batch.bat"

 

Wo soll ich nun was per Net use verändern.

Beide PC's haben die selben Rechte und werden über das selbe Netzwerkkonto betrieben.

Der manuelle Zugriff von Rechner A: auf die Serverplatte "O:" ist dauerhaft gewährleistet und bringt keine Probleme mit sich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wo soll ich nun was per Net use verändern.

Beide PC's haben die selben Rechte und werden über das selbe Netzwerkkonto betrieben.

Der manuelle Zugriff von Rechner A: auf die Serverplatte "O:" ist dauerhaft gewährleistet und bringt keine Probleme mit sich.

Das ist auch nicht das Problem an der Sache.... Das sieht man ja daran das wenn du die Batch per Hand startest alles funktioniert.

Wie ich vorher schon geschrieben habe findet aber die Batch-Datei wenn sie per Psexec gestartet wird O: nicht bzw. kennt es nicht.

Das liegt irgendwie an den technischen gegebenheiten das PSexec dann auf dem Zielrechner in einem "parallel (komplett eigenständiger Prozess)" Mode arbeitet.

Die einfachste Lösung wäre denk ich erstmal einfach anstatt "O:\IM\DB\02-04.pdf" den langen UNC-Path zu verwenden. Das sollte funktionieren.

Anstatt:

start C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" O:\IM\DB\02-04.pdf

das hier

start C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" \\10.0.0.10\Freigabeshare\IM\DB\02-04.pdf

 

oder in die Batchdatei auf Rechner A O-Laufwerk in der Batch verbinden (gleicher Prozess).

net use O: \\10.0.0.10\Freigabeshare
start C:\Programme\Adobe\Reader 9.0\Reader\AcroRd32.exe" O:\IM\DB\02-04.pdf

 

Das würde dazu führen das wenn du den Batch per Hand startest auf dem Rechner ne Fehermeldung kommt weil das Laufwerk ja bereits verbunden ist.

Per Psexec müsste das aber dann klappen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja welche IP's jetzt welcher Rechner bei dir hat kann ich dir nicht sagen :).

Die musst natürlich selber entsprechend eintragen bzw. ändern.

Du hast doch irgendwann mal das Netzlaufwerk O: verbunden - mit nem Freigabenamen für ein Verzeichnis.

Genau das meine ich mit Freigabeshare. Normal steht der Freigabeordner doch auch hinter dem zugewiesenen Laufwerksbuchstaben.

(Zumindest bei WinXP und Vista).

 

Hier mal ein Ein kleines Beispiel.

Hier: beide Rechner haben ebenfalls den selben Benutzer. (Gleicher Benutzer und Passwort)

Desktop Rechner: 192.168.1.1

Laptop: 192.168.1.105

 

Auf dem Laptop ist ein Ordner Freigegeben mit dem Namen "Z_Transfer".

Genau diesen Ordner unter dem gleichen Namen kann ich jetzt vom Desktop Rechner als Netzlaufwerk einbinden z.B. O:.

Der Befehl per Batch wäre dann "net use O: \\192.168.1.101\Z_Transfer". Natürlich kannst das auch händisch per Explorer machen.

Extras - Netzlaufwerk zuordnen bzw. verbinden.

Jetzt kannst du ganz normal auf dem Desktop mit dem Pfad O: arbeiten. Von diesem Netzlaufwerk weiss nur Psexec nichts.

Anstatt mit O: zu arbeiten kann man auch den ganzen langen sog. UNC-Path angeben der in diesem Fall dann lauten würde (wie unten geschrieben).

 

\\192.168.1.105\Z_Transfer

 

Hier ein Bild wie das verbundenen Laufwerk sich unter Vista darstellt wenn es verbunden ist.

netzlaufwerk.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...