Je nach IP-Adresse Server für auszuführende Datei ändern
Hallo,
ich benötige eure Hilfe. Ich habe verschiedene Server (in Europa verteilt) auf denen jeweils in einem Share die gleiche auszuführende Datei liegt.
Per Loginscript wird eine Batchdatei ausgeführt, die die jeweiliege Datei ausführen soll die auf dem jeweiligen location Server liegt.
Das ganze soll ungefähr so aussehen.
:LOCATION
for /f "delims= tokens=2" %%a in ('ping -4 %computername% -n 1 ^| findstr "["') do (set ipaddress=%%a)
echo IP address detected: %ipaddress%
REM detect server site and set server
REM detect DE set NAS
if "%ipaddress%"=="%ipaddress:"xxx.xxx.102"=%" (
set server=Germany\public\TIAudit
GOTO WINNT
)
if "%ipaddress%"=="%ipaddress:"xxx.xxx.105"=%" (
set server=AUSTRIA\public\TIAudit
GOTO WINNT
)
if "%ipaddress%"=="%ipaddress:"xxx.xxx.109"=%" (
set server=FRANCE\public\TIAudit
GOTO WINNT
)
:WINNT
REM Run TrackIT Audit
Echo Please Wait....processing inventory
\\%SERVER%\AUDIT.EXE /NOREGAPPS
Leider wird immer der GERMANY Server verwendet.
Hat hier jemand eine Idee?
Danke für eure Hilfe.
Gruß & schon mal Frohe Weihnachten
Carsten
ich benötige eure Hilfe. Ich habe verschiedene Server (in Europa verteilt) auf denen jeweils in einem Share die gleiche auszuführende Datei liegt.
Per Loginscript wird eine Batchdatei ausgeführt, die die jeweiliege Datei ausführen soll die auf dem jeweiligen location Server liegt.
Das ganze soll ungefähr so aussehen.
:LOCATION
for /f "delims= tokens=2" %%a in ('ping -4 %computername% -n 1 ^| findstr "["') do (set ipaddress=%%a)
echo IP address detected: %ipaddress%
REM detect server site and set server
REM detect DE set NAS
if "%ipaddress%"=="%ipaddress:"xxx.xxx.102"=%" (
set server=Germany\public\TIAudit
GOTO WINNT
)
if "%ipaddress%"=="%ipaddress:"xxx.xxx.105"=%" (
set server=AUSTRIA\public\TIAudit
GOTO WINNT
)
if "%ipaddress%"=="%ipaddress:"xxx.xxx.109"=%" (
set server=FRANCE\public\TIAudit
GOTO WINNT
)
:WINNT
REM Run TrackIT Audit
Echo Please Wait....processing inventory
\\%SERVER%\AUDIT.EXE /NOREGAPPS
Leider wird immer der GERMANY Server verwendet.
Hat hier jemand eine Idee?
Danke für eure Hilfe.
Gruß & schon mal Frohe Weihnachten
Carsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 225047
Url: https://administrator.de/forum/je-nach-ip-adresse-server-fuer-auszufuehrende-datei-aendern-225047.html
Ausgedruckt am: 05.02.2025 um 19:02 Uhr
14 Kommentare
Neuester Kommentar
Hallo Carsten,
warum er immer nur den Germany-Server verwendet? Ist eindeutig:
Du sagt Ihm doch nachdem "detect"
das er ein "goto" machen sollen.
Somit wird nach der ersten Setzung direkt nach:
gesprungen.
Gruß, Sascha
warum er immer nur den Germany-Server verwendet? Ist eindeutig:
Du sagt Ihm doch nachdem "detect"
REM detect DE set NAS
if "%ipaddress%"=="%ipaddress:"xxx.xxx.102"=%" (
set server=Germany\public\TIAudit
GOTO WINNT
)
Somit wird nach der ersten Setzung direkt nach:
:WINNT
REM Run TrackIT Audit
Echo Please Wait....processing inventory
\\%SERVER%\AUDIT.EXE /NOREGAPPS
Gruß, Sascha
Hallo Carsten,
Lösung-1 ist mit weiteren "Goto's":
Oder Lösung-2, Du lässt die "Goto's" weg:
Habe Dir dazwischen Mal "echo's/Ausgaben" gemacht, damit kannst Du dann sehen ob er auch wirklich dort ist.
Gruß, Sascha
Lösung-1 ist mit weiteren "Goto's":
REM detect DE set NAS
IF "%ipaddress%"=="%ipaddress:"xxx.xxx.102"=%" (
set server=Germany\public\TIAudit
echo ger
GOTO AUSTRIA
)
:AUSTRIA
IF "%ipaddress%"=="%ipaddress:"xxx.xxx.105"=%" (
set server=AUSTRIA\public\TIAudit
echo austria
GOTO FRANCE
)
:FRANCE
IF "%ipaddress%"=="%ipaddress:"xxx.xxx.109"=%" (
set server=FRANCE\public\TIAudit
echo france
GOTO WINNT
)
Oder Lösung-2, Du lässt die "Goto's" weg:
REM detect DE set NAS
IF "%ipaddress%"=="%ipaddress:"xxx.xxx.102"=%" (
set server=Germany\public\TIAudit
echo ger
)
IF "%ipaddress%"=="%ipaddress:"xxx.xxx.105"=%" (
set server=AUSTRIA\public\TIAudit
echo austria
)
IF "%ipaddress%"=="%ipaddress:"xxx.xxx.109"=%" (
set server=FRANCE\public\TIAudit
echo france
GOTO WINNT
)
Gruß, Sascha
Hallo Carsten,
bitte den code mit "<"code">" "</"code">" formatieren, siehe dazu auch
Wenn ich es richtig verstanden haben:
Hast Du die 3 x Server (Deutschland, Frankreich und Österreichen), auf denen jeweils in einem shared-folder, die gleiche auszuführende Datei liegt.
Du möchtest jetzt von deinem lokalen Computer aus per Batch (Loginskript), dich zu den Servern verbinden und die Datei ausführen, Richtig?
Wenn das Skript ausgeführt wird, möchtest Du dann, dass auf allen 3 x Servern die Datei ausgeführt wird oder auf einem bestimmten? Oder beides?
bitte den code mit "<"code">" "</"code">" formatieren, siehe dazu auch
Wenn ich es richtig verstanden haben:
Hast Du die 3 x Server (Deutschland, Frankreich und Österreichen), auf denen jeweils in einem shared-folder, die gleiche auszuführende Datei liegt.
Du möchtest jetzt von deinem lokalen Computer aus per Batch (Loginskript), dich zu den Servern verbinden und die Datei ausführen, Richtig?
Wenn das Skript ausgeführt wird, möchtest Du dann, dass auf allen 3 x Servern die Datei ausgeführt wird oder auf einem bestimmten? Oder beides?
durch das Script soll quasi gefiltert werde, von welchem Server die Datei gestartet wird. Sprich der Computer in Deutschland soll
natürlich die Datei vom Deutschen Server starten, der Computer aus Frankreich natürlich die Datei vom Frankreich
Server....
Also wird das Loginskript von unterschiedlichen Computer ausgeführt und nicht von einem zentralen?natürlich die Datei vom Deutschen Server starten, der Computer aus Frankreich natürlich die Datei vom Frankreich
Server....
Die Versionsprüfung ist wofür gedacht?
PC FR führt Datei für Server FR aus.
PC AU Datei für Server AU aus.
PC DE Datei für Server DE aus.
Nur so oder darf PC DE auch die Datei von FR & AU ausführen?
Hi, eigentlich ganz einfach:
das Problem ist dass Deine Bedingung
IF "%ipaddress%"=="%ipaddress:"xxx.xxx.105"=%"
IMMER zutrifft.
Deshalb hat er bei Deinem allerersten Versuch auch immer den 1. getroffen, also GERMANY,
(und ist wegen des GOTOS da ausgestiegen)
und beim letzten Versuch immer AUSTRIA, weil die GOTOS fehlen und er alle 3 (zutreffenden) Abfragen
durchläuft und die letzte halt gilt.
Also -> an der IF-Zeile arbeiten :O)
Kleine Hilfe:
IF %ipaddress:~8,-4%==101 ( blabla
SO sollte es gehen, und lass die GOTOs WEG, die brauchst Du (dann) gar nicht.
Gruss
RS
das Problem ist dass Deine Bedingung
IF "%ipaddress%"=="%ipaddress:"xxx.xxx.105"=%"
IMMER zutrifft.
Deshalb hat er bei Deinem allerersten Versuch auch immer den 1. getroffen, also GERMANY,
(und ist wegen des GOTOS da ausgestiegen)
und beim letzten Versuch immer AUSTRIA, weil die GOTOS fehlen und er alle 3 (zutreffenden) Abfragen
durchläuft und die letzte halt gilt.
Also -> an der IF-Zeile arbeiten :O)
Kleine Hilfe:
IF %ipaddress:~8,-4%==101 ( blabla
SO sollte es gehen, und lass die GOTOs WEG, die brauchst Du (dann) gar nicht.
Gruss
RS
Mein Vorschlag:
Es geht auch noch mit Forschleifen, Zeigern und hastdunichtgesehen...
lg.
IF NOT "%ipaddress%"=="%ipaddress:xxx.xxx.xxx.101=%" set "server=GERMANY\public\TIAudit"&ECHO GERMANY
IF NOT "%ipaddress%"=="%ipaddress:xxx.xxx.xxx.102=%" set "server=FRANCE\public\TIAudit"&ECHO FRANCE
IF NOT "%ipaddress%"=="%ipaddress:xxx.xxx.xxx.103=%" set "server=AUSTRIA\public\TIAudit"&ECHO AUSTRIA
IF NOT DEFINED server ECHO Uups! Server for %ipaddress% not found.&PAUSE
lg.