Probleme beim Batchskript zum Auslesen der IPv4-Adresse aus der IP Config unter Windows 2008
Ich nutze zurzeit auf einem Windows 2003 ein Batchskript, welches die IPv4-Adresse aus der IP Config ausliest, nachdem ich mit rasdial eine VPN Verbindung gestartet habe. Lief wunderbar. Nun habe ich versucht dieses Skript auf einen Windows 2008 Server zu starten und stoße hier auf Probleme.
Hi,
kurz zum Scenario:
Bisher habe ich auf einem Windows 2003 Server, RDP Verbindungen auf Kundenserver durch ein Batchskript realisiert.
Mein Problem ist nun, dass dieses auf nach einer Umstellung auf Windows Server 2008 nicht mehr bzw. nur sporadisch funktioniert. Ich habe einmal den Bereich des Skripts eingeschränkt der Probleme verursacht:
01. rasdial Kunde user password
02. @echo off
03. IPConfig|findstr "Kunde">nul
04. IF Errorlevel 1 goto ErrorVPNHHNotFound
05. ipconfig >%temp%\Ipconf.txt
06. For /f "delims=:" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "Kunde"') do set /a line=%%i+3
07. For /f "delims=: tokens=3" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "%line%:"') do @set IpHH=%%i
08. Set IPHH=%IPHH:~1%
09. route add IPDESRECHNERS MASK 255.255.255.255 %IPHH%
10. echo %username% >c:\programme\user\userKunde.txt
11. cls
12. echo Verbindung hergestellt... Bitte nicht beenden!
13. mstsc "%homepath%\Kunde.rdp" /w:1024 /h:768
Beim Test ist mir aufgefallen, dass in Zeile 9 die Variable %IPHH% keinen bzw. einen falschen Wert besitzt.
Für jede Hilfe wäre ich dankbar.
Gruß
Philipp
Hi,
kurz zum Scenario:
Bisher habe ich auf einem Windows 2003 Server, RDP Verbindungen auf Kundenserver durch ein Batchskript realisiert.
Mein Problem ist nun, dass dieses auf nach einer Umstellung auf Windows Server 2008 nicht mehr bzw. nur sporadisch funktioniert. Ich habe einmal den Bereich des Skripts eingeschränkt der Probleme verursacht:
01. rasdial Kunde user password
02. @echo off
03. IPConfig|findstr "Kunde">nul
04. IF Errorlevel 1 goto ErrorVPNHHNotFound
05. ipconfig >%temp%\Ipconf.txt
06. For /f "delims=:" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "Kunde"') do set /a line=%%i+3
07. For /f "delims=: tokens=3" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "%line%:"') do @set IpHH=%%i
08. Set IPHH=%IPHH:~1%
09. route add IPDESRECHNERS MASK 255.255.255.255 %IPHH%
10. echo %username% >c:\programme\user\userKunde.txt
11. cls
12. echo Verbindung hergestellt... Bitte nicht beenden!
13. mstsc "%homepath%\Kunde.rdp" /w:1024 /h:768
Beim Test ist mir aufgefallen, dass in Zeile 9 die Variable %IPHH% keinen bzw. einen falschen Wert besitzt.
Für jede Hilfe wäre ich dankbar.
Gruß
Philipp
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 190528
Url: https://administrator.de/contentid/190528
Ausgedruckt am: 26.11.2024 um 08:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
auch wir, die die Dir helfen sollen, sind für jede Hilfe dankbar. Damit meine ich z. B. die Formatierungshilfen zu nutzen und auch etwas mehr Infos. Das erhöht dann auch gleich die Chance "geholfen zu werden" ;)
Du schreibst, Zeile 9 hat einen falschen Wert. Was für einen? Und was steht vor Zeile 8 in der Variablen?
vg
auch wir, die die Dir helfen sollen, sind für jede Hilfe dankbar. Damit meine ich z. B. die Formatierungshilfen zu nutzen und auch etwas mehr Infos. Das erhöht dann auch gleich die Chance "geholfen zu werden" ;)
Du schreibst, Zeile 9 hat einen falschen Wert. Was für einen? Und was steht vor Zeile 8 in der Variablen?
vg
moin,
@bytecounter:
ich vermute mal, er hat ein Problem damit, dass unter W2k3 noch nicht, bei W2k8 jedoch schon im std. ein IPv6 läuft.
#
@ TO:
Merkst du was?
Gruß
IPConfig|findstr "Kunde">nul
versteh ich nicht....@bytecounter:
ich vermute mal, er hat ein Problem damit, dass unter W2k3 noch nicht, bei W2k8 jedoch schon im std. ein IPv6 läuft.
#
@ TO:
Ich habe einmal den Bereich des Skripts eingeschränkt der Probleme verursacht:
Tja ich hab da auch ein Problem in einem Script, die betreffende Zeile ist:if not "%%a"=="erfolg" echo Fehler
Merkst du was?
Gruß
Hallo,
ich habe jetzt auch nochmal an dem gleichen Script weitergeforscht.
Also die Datei, die er durchsucht - also die txt-Datei hat folgenden Inhalt
Jetzt sucht er zuerst nach der richtigen Zeile in der Kunde steht und addiert 3 hinzu
als Ergebnis bekomme ich richtigerweise
als nächstes sucht er die IP in Zeile 8 und speichert Sie unter IPHH
Hier bekomme ich als Ergebnis recht unerwartet
Wie kann es dazu kommen - in Zeile 8 steht nichts von intern.local..
Vielen Dank und viele Grüße
ich habe jetzt auch nochmal an dem gleichen Script weitergeforscht.
Also die Datei, die er durchsucht - also die txt-Datei hat folgenden Inhalt
Windows-IP-Konfiguration
PPP-Adapter Kunde:
Verbindungsspezifisches DNS-Suffix:
IPv4-Adresse . . . . . . . . . . : 192.168.55.107
Subnetzmaske . . . . . . . . . . : 255.255.255.255
Standardgateway . . . . . . . . . :
Ethernet-Adapter LAN-Verbindung 3:
Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix: intern.local
Ethernet-Adapter LAN-Verbindung 2:
Verbindungsspezifisches DNS-Suffix: intern.local
Verbindungslokale IPv6-Adresse . : fe80::d1d4:baf8:f940:55a1%12
IPv4-Adresse . . . . . . . . . . : 192.168.42.36
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.42.1
Tunneladapter isatap.intern.local:
Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix: intern.local
Jetzt sucht er zuerst nach der richtigen Zeile in der Kunde steht und addiert 3 hinzu
06. For /f "delims=:" %%i in ('findstr /n "." %temp%\Ipconf.txt^|findstr "Kunde"') do set /a line=%%i+3
als Ergebnis bekomme ich richtigerweise
set /a line=5+3
als nächstes sucht er die IP in Zeile 8 und speichert Sie unter IPHH
For /f "delims=: tokens=3" %%i in ('findstr /n "." "C:\Program Files (x86)\Temp\Ipconf.txt"^|findstr "%line%:"') do @set IpHH=%%i
Set IPHH="%IPHH:~1%"
Hier bekomme ich als Ergebnis recht unerwartet
Set IPHH="intern.local"
Wie kann es dazu kommen - in Zeile 8 steht nichts von intern.local..
Vielen Dank und viele Grüße
moin,
was gibt wohl findstr "8:" für ne Ausgabe? eventuell auch eine 18. und 28. Zeile!
Besser so?:
Gruß Phil
was gibt wohl findstr "8:" für ne Ausgabe? eventuell auch eine 18. und 28. Zeile!
Besser so?:
set "Kunde=Meier"
set "gefunden="
set "IPHH="
for /f "tokens=2*delims=:" %%i in ('IPconfig ^|findstr "%Kunde%: IPv4" ^|findstr /n "^" ^|findstr /b "[12]:" ') do (
for /f "tokens=1,2" %%i in ("%%j%%i") do (
if defined gefunden set "IPHH=%%i"
if %%j equ %Kunde% set "gefunden=%%j"
) )
if not defined gefunden echo Fehler! %Kunde% nicht gefunden. & exit /b 2
echo Kunde: %Kunde% gefunden.
if not defined IPHH echo Keine IPAdresse gefunden. &exit /b 1
echo IP Adresse: %IPHH%
Gruß Phil