Supportnet / Forum / Anwendungen(Java,C++...)
Netzlaufwerke über Batch verbinden, IP-Adressen abhängig.
Frage
Hallo Gemeinde,
neben meinen kleinen Problem "Über Batch Programm ausführen, wenn vorhanden" habe ich jetzt auch noch ein anderes.
Über ein Anmeldescript sollen Netzlaufwerke verbunden werden. Da wir bei uns verschiedene IP-Bereiche haben mit jeweils einen eigenen Server in diesem Bereich, müsste in der Batch eine Abfrage erfolgen:
Wenn du in in diesem IP-Bereich bist, verbinde deine Netzlaufwerke mit diesem Server an. Wenn du in einem anderen IP-Bereich bist, vervbinde deine Netzlaufwerke mit einen andern Server.
Das habe ich bereits jeschrieben, bzw. rausjesucht:
- - - - -
REM IP-Script fuer Herr Mustermann
for /f "Tokens=2 Delims=[] skip=1" %%i in (´ping -n 1 %computername%´) do set IPAdress=%%i
if "%ipadress%" == "128.26.10.*" goto M1
if not "%ipadress%" == "128.26.10.*" goto F1
:M1
REM M.Mustermann in Musterstadt
net use j: \\muster\muster
GOTO ENDE
REM - - - - - -
:F1
if "%ipadress%" == "128.26.30.*" goto M2
if not "%ipadress%" == "128.26.30.*" goto F2
:M2
REM M.Mustermann in Musterdorf
net use j: \\muster3\muster
GOTO ENDE
REM - - - - - -
:F2
@echo off
net send %computername% Hallo, %username%, der angebene IP-Bereich konnte nicht gefunden werden. Bitte wenden Sie sich an den Systemadministrator.
@echo on
GOTO ENDE
:ENDE
- - - - -
Leider funktioniert dat nicht richtig. Aber ich habe nicht den blassesten Schimmer, wie die Lösung des Problems seien könnte. Ich hoffe ihr könnt mir dabei helfen.
Im Vorraus möchte ich meine Dank ausdrücken.
DANKE; DANKE; DANKE
Liebe Grüße,
euer IT304
Antwort 1 von Das_Urmel
Kewin Bock durch deinen Code zu wandern.
Was ist dein Proibelm - auf den punkt gebracht?
mfg
Michael
Was ist dein Proibelm - auf den punkt gebracht?
mfg
Michael
Antwort 2 von IT304
Aus irgendeinen Grund wurde hier der Kopf abjeschnitten. Also nochmal von vorne.
Über eine Batch soll ermittelt werden, in welchen IP-Adressbereich man sich befindet.
Ist man in dem einen IP-Bereich soll z.B. das Netzlaufwerk J: mit Server 1 verbunden werden
wenn im IP - Bereich 128.28.10.* dann
J: \\server1\muster
Ist man in einem anderen IP-Bereich soll dat selbe Passieren, bloß mit dem dortigen Server, z.B. Server2
wenn im IP-Bereich 128.28.30.* dann
J:\\server2\muster
Ich hoffe ihr könnt mir jetzt helfen.
LG, IT304
Über eine Batch soll ermittelt werden, in welchen IP-Adressbereich man sich befindet.
Ist man in dem einen IP-Bereich soll z.B. das Netzlaufwerk J: mit Server 1 verbunden werden
wenn im IP - Bereich 128.28.10.* dann
J: \\server1\muster
Ist man in einem anderen IP-Bereich soll dat selbe Passieren, bloß mit dem dortigen Server, z.B. Server2
wenn im IP-Bereich 128.28.30.* dann
J:\\server2\muster
Ich hoffe ihr könnt mir jetzt helfen.
LG, IT304
Antwort 3 von Undertaker
Hi,
probiere es mal damit:
Gruß
Undertaker
probiere es mal damit:
IPCONFIG | FINDSTR "IP-Adresse" >ip.tmp
FOR /F "tokens=2,3,4 delims=:. " %%a IN (ip.tmp) DO SET SubNet=%%a.%%b.%%c
DEL ip.tmp
IF %SubNet% == 128.28.10 GOTO F1
IF %SubNet% == 128.28.30 GOTO F2
GOTO FEHLER
:F1
:: M.Mustermann in Musterstadt
NET USE J: \\server1\muster /PERSISTENT:NO
GOTO ENDE
:F2
:: M.Mustermann in Musterdorf
NET USE J: \\server2\muster /PERSISTENT:NO
GOTO ENDE
:FEHLER
@ECHO OFF
net send %computername% Hallo, %username%, der angebene IP-Bereich konnte nicht gefunden werden. Bitte wenden Sie sich an den Systemadministrator.
@ECHO ON
GOTO ENDE
:ENDEGruß
Undertaker
Antwort 4 von Undertaker
Nachtrag:
setzte vor jedes NET USE noch ein NET USE J: /DELETE um sicherzugehen, das J: nicht für ein Netzlaufwerk verwendet wird.
Gruß
Undertaker
setzte vor jedes NET USE noch ein NET USE J: /DELETE um sicherzugehen, das J: nicht für ein Netzlaufwerk verwendet wird.
Gruß
Undertaker
Antwort 5 von _gau_
Hatte mal ein ähnliches Problem und dafür ein Kommandozeilentool (Programm "isip.exe") geschrieben.
Dann kann man z.B. so ungefähr vorgehen:
@echo off
isip 128.28.10. >nul
if %errorlevel%==0 net use x: \\blabla1... & goto :EOF
isip 128.28.20. >nul
if %errorlevel%==0 net use x: \\blabla2... & goto :EOF
isip 128.28.30. >nul
if %errorlevel%==0 net use x: \\blabla3... & goto :EOF
echo Bereich nicht gefunden!
usw.
[gau]
Dann kann man z.B. so ungefähr vorgehen:
@echo off
isip 128.28.10. >nul
if %errorlevel%==0 net use x: \\blabla1... & goto :EOF
isip 128.28.20. >nul
if %errorlevel%==0 net use x: \\blabla2... & goto :EOF
isip 128.28.30. >nul
if %errorlevel%==0 net use x: \\blabla3... & goto :EOF
echo Bereich nicht gefunden!
usw.
[gau]
Antwort 6 von IT304
Hallo Gemeinde
der Tipp von Undertaker hat wunderbar jeklappt.
DANKE.
Euer, IT304
der Tipp von Undertaker hat wunderbar jeklappt.
DANKE.
Euer, IT304

