christian25
Goto Top

Kommunikation zweier batch abläufe im lokalen lan

es sind leider keine netzwerkfreigaben vorhanden

Hallo

Ich bräuchte hilfe...
folgendes szenario:

pc1 mit batch1
pc2 mit batch2

verbunden per lan können also problemlos kommunizieren

wie kann ich eine kommunikation schaffen ? das batch 1 daten über die cpu/ram und und und auslastung an batch 2 weiterleitet( das auslesen von cpu und ram hab ich scho ...)

WIN VISTA
(Netzwerkfreigaben nicht möglich)

cpu auslastung feststellen ist kein problem alleine die übertragung...
ich greife auch auf externe programme zu


hab mir schon netcat angeschaut aber das hilft mir nicht viel oder ?

DANKE

glg chris

Content-ID: 121020

Url: https://administrator.de/forum/kommunikation-zweier-batch-ablaeufe-im-lokalen-lan-121020.html

Ausgedruckt am: 22.12.2024 um 16:12 Uhr

bastla
bastla 23.07.2009 um 22:12:45 Uhr
Goto Top
Hallo Christian25 und willkommen im Forum!

Spontan fiele mir zu diesem Thema "wmic.exe" ein - wenn Du allerdings schon keine Freigaben verwenden kannst / darfst, könnten die nötigen Systemeinstellungen für den Remote-Zugriff (siehe Connecting to WMI Remotely Starting with Windows Vista oder auch hier) ein Hindernis sein ...

das auslesen von cpu und ram hab ich scho
Wie sieht denn Deine Lösung dafür überhaupt aus?

Grüße
bastla
Christian25
Christian25 23.07.2009 um 22:14:57 Uhr
Goto Top
vbs scripte die mir die werte auslesen
ich kann mit deinem link leider nichts anfangen (wenig englisch....)

glg christian
bastla
bastla 23.07.2009 um 22:26:06 Uhr
Goto Top
Hallo Christian25!

Deine VBScripte (könntest Du auch posten) werden vermutlich ebenfalls WMI verwenden und könnten dann grundsätzlich die Informationen direkt vom anderen Rechner bekommen, sodass nur ein einziger Batch nötig wäre - allerdings wird in dem oben verlinkten Artikel darauf hingewiesen, dass zumindest die Firewall-Einstellungen angepasst werden müssen, und unter Vista ev auch die UAC dazwischenfunkt (auch abhängig davon, ob das Script mit Admin-Rechten läuft, bzw ob sich die Rechner in einer Domäne befinden - dazu gibt es übrings von Dir überhaupt keine Informationen ...).

Grüße
bastla
Christian25
Christian25 24.07.2009 um 21:23:13 Uhr
Goto Top
@echo off &setlocal
set strComputer=10.0.0.138
echo Set colItems = GetObject^("winmgmts:{impersonationLevel=impersonate}!\\%strComputer%\root\cimv2"^).ExecQuery^("Select * from Win32_Processor"^)>%temp%\tmp.vbs
echo For Each objItem in colItems>>%temp%\tmp.vbs
echo Wscript.Echo objItem.LoadPercentage>>%temp%\tmp.vbs
echo Next>>%temp%\tmp.vbs
echo Set colItems = Nothing>>%temp%\tmp.vbs
for /f "tokens=*" %%i in ('CScript //NoLogo %temp%\tmp.vbs') do set "LoadPercentage=%%i"
del %temp%\tmp.vbs
echo %LoadPercentage%
pause


es sind 2 windows vista pcs ohne domäne
wenn ich auch benutzerdefinierte code zeilen übertragen könnte kann man es ja auch als chat nutzen..
dann würde das ganze ausgedehnt werden...

auch grüße
christian
bastla
bastla 29.07.2009 um 16:35:00 Uhr
Goto Top
Hallo Christian25!

Versuch einmal, in Zeile 2 die Adresse (oder den Namen) des anderen Computers anzugeben (WMI ist ja auch für Fernzugriff ausgelegt) - dann entfiele die Notwendigkeit, auf dem anderen Rechner das Auslesen vorzunehmen ...

Grüße
bastla
Christian25
Christian25 29.07.2009 um 16:38:40 Uhr
Goto Top
ja funktioniert...
ist es auch möglich benutzerdefinierte daten zu übertragen ? zb de inhalt einer variable ?
bastla
bastla 29.07.2009 um 17:16:51 Uhr
Goto Top
Hallo Christian25!
ist es auch möglich benutzerdefinierte daten zu übertragen ?
Dazu kann ich leider nichts beitragen ...

Grüße
bastla
Christian25
Christian25 29.07.2009 um 17:52:00 Uhr
Goto Top
Zitat von @Globalpos:
Hallo Christian25!
> ist es auch möglich benutzerdefinierte daten zu
übertragen ?
Dazu kann ich leider nichts beitragen ...

Grüße
bastla

es gibt hier also keine möglichkeit ?
Server2008
Server2008 20.01.2010 um 07:16:30 Uhr
Goto Top
Zitat von @Christian25:
> Zitat von @Globalpos:
> ----
> Hallo Christian25!
> > ist es auch möglich benutzerdefinierte daten zu
> übertragen ?
> Dazu kann ich leider nichts beitragen ...
>
> Grüße
> bastla

es gibt hier also keine möglichkeit ?

Hallo zusammen!

entschuldigt, wenn ich den Beitrag wieder ausgrabe. Doch ich habe ein ähnliches Problem.

Ich möchte ebenfalls zwischen zwei Batch Programmen Daten austauschen können. (Mindestens in eine Richtung)
Dazu habe ich einen Batch auf dem Zielrechner, welcher in einer Endlosschlaufe läuft. Der müsste dann irgendwie die Daten empfangen.

Auf einem anderen Rechner müsste ich per Batch irgendwelche Daten (Variableninhalte) senden können.
Die beiden Rechner sind im gleichen Netzwerk.

Das Tool "PSEXEC" kenne ich, jedoch möchte ich das ohne externe Tools lösen. (Wenn möglich) Zudem haben verschiedene Leute Probleme mit diesem Tool, dass es manchmal nicht läuft und manchmal schon.....

Ich bin um jeden Hinweis froh!

Grüsse
Server2008
bastla
bastla 20.01.2010 um 08:33:19 Uhr
Goto Top
Hallo Server2008!

Auch von Dir kommt relativ wenig Information - daher nur folgender Ansatz: Wenn nichts dagegen spricht, eine Datei zum Übertragen zu verwenden, könntest Du zB die relevanten Variablen mit einem einheitlixhen Präfix (zB "pr_Var1", "pr_Var2", ...) versehen und mit einem
set pr_>\\Server\Share\VarTrans.txt
speichern.

Abzuholen und einzulesen wären die Werte dann innerhalb Deiner Schleife etwa so:
set "Trans=\\Server\Share\VarTrans.txt"  
if exist "%Trans%" (  
    for /f "usebackq delims=" %%i in ("%Trans%") do set "%%i"  
    del "%Trans%"  
)
Grüße
bastla
Server2008
Server2008 20.01.2010 um 08:49:45 Uhr
Goto Top
Zitat von @bastla:
Hallo Server2008!

Auch von Dir kommt relativ wenig Information - daher nur folgender Ansatz: Wenn nichts dagegen spricht, eine Datei zum
Übertragen zu verwenden, könntest Du zB die relevanten Variablen mit einem einheitlixhen Präfix (zB
"pr_Var1", "pr_Var2", ...) versehen und mit einem
set pr_>\\Server\Share\VarTrans.txt
> 
speichern.

Abzuholen und einzulesen wären die Werte dann innerhalb Deiner Schleife etwa so:
set "Trans=\\Server\Share\VarTrans.txt"  
> if exist "%Trans%" (  
>     for /f "usebackq delims=" %%i in ("%Trans%") do set "%%i"  
>     del "%Trans%"  
> )
> 
Grüße
bastla

Hallo Bastla,

Vielen Dank für Deinen Lösungsansatz.
Von dem her könnte ich auch schreiben
echo MeinVariablenInhalt>\\Computer\Share\test.txt

Leider ist nicht immer sichergestellt, dass ich die Berechtigung habe, auf ein Laufwerk (lokal oder Netzwerk) zuzugreifen.

Konkret möchte ich von einem Steuer-PC aus einen speziellen Befehl ins Netzwerk senden. (z.B. GetIPAddress)
ALLE Computer im selben Netzwerk, auf welchen mein "Empfänger-Batch" läuft, bekommen nun diesen Befehl und führen dann etwas aus. (Sie wissen dann zum Beispiel, dass wenn sie den String "GetIPAddress" erhalten, die eigene IP Adresse ermitteln sollen und diese z.B. auf einen FTP Server laden sollen.)

Mir geht es momentan aber mal nur um die Kommunikation über das Netzwerk. Wenn möglich ohne externe Tools (nur Windows Bordmittel ab WinXP, WinVista und Win7) und wenn möglich ohne den Umweg über eine Datei.

Eine Datei hat den Nachteil, dass der / die Empfänger sie immer auslesen müssen. Wenn ich aber dann bereits den nächsten Befehl reinschreiben möchte, dann habe ich eine Zugriffsverletzung.

Aber vielen Dank schon mal für Deine Hilfe! Der Ansatz wäre grundsätzlich klasse!!

Gruss
Server2008
bastla
bastla 20.01.2010 um 10:18:24 Uhr
Goto Top
Hallo Server2008!

Zumindest Teile der von Dir benötigten Informationen sollten sich, wie oben schon erwähnt, per WMI "abholen" lassen - ansonsten kann ich eigentlich nur einen neuen Thread empfehlen, da mir dazu nix Vernünftiges mehr einfällt ...

Grüße
bastla
Server2008
Server2008 20.01.2010 um 10:24:22 Uhr
Goto Top
Vielen Dank, Bastla!
Ich schaue mal noch weiter!

Gruss
Server2008