ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
776
776
EMPFEHLEN
-
Guten Tag.
Ich habe ein Batch-script geschrieben, welches aus einer Config Datei Netzwerke einliest und dann alle LAN-Verbindungen durchprobiert und wenn bei einer der Ping erfolgreich ist, weist das script auch der LAN-Verbindungen einen Namen zu(Welcher aus der Config Datei herausgenommen wird)
Vorgeschichte:
Arbeitskollegen müssen immer wieder auf einem neuen Server LAN-Verbindungen einrichten.
Dieser Server steht meist in etwa 4 verschiedenen LANs und bisher musste dies händisch eingerichtet und getestet werden.
Ein Batch script kann meines wissens nach auf jedem Windows Server ausgeführt werden.
Mein Batch script holt sich via IPConfig die Namen aller Ethernet Adapter und diese werden dann sofort weitergeleitet, wo dann mittels einer Schleife die Config Datei durchgegangen wird und jedes bisher noch nicht vergebene Netzwerk mit netsh dem jeweiligen Ethernet Adapter zugewiesen und getestet:
.) Wenn Erfolgreich:
Netzwerk wird in einer Variable gespeichert, damit keines 2-mal getestet wird, was wenig sinn hätte.
.) Wenn nicht Erfolgreich wird das nächste getestet
Ich habe das Script geschrieben und stehe derzeit vor einer Wand, weis nicht wirklich ob das funktioniert, bzw ob ich Fehler eingebaut habe.
Ich hoffe es gibt hier ein paar willige User die sich dieses Script durchschauen und es vielleicht verbessern bzw berichtigen können.
Informationen:
Es handelt sich um englisch sprachige Windows Server welche meist in 4 verschiedenen LANs stehen und die LAN-Verbindungen heißen am Anfang normalerweise so:
Local Area Connection 1
Local Area Connection 2
Local Area Connection 3
Local Area Connection 4
die Config Datei ist wie folgt aufgebaut:
<Neuer Name> <zu vergebene IP> <Subnet maske> <IP für Ping test>
z.B.:
LAN-01 10.48.222.34 255.255.248.0 10.48.222.1
LAN-02 124.23.12.56 255.255.248.0 124.23.12.1
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
@echo off set TMPIPCONFIGFILE=%TEMP%\~ipconfig%RANDOM%.txt set Connections=. set finishLANs=. set TEMPPINGFILE=$TEMP%\~ping%RANDOM%.txt set INPUTFILE="conffile ip Config.txt" type Nul > %TMPIPCONFIGFILE% type Nul > %TEMPPINGFILE% ipconfig | findstr /C:"Ethernet Adapter" /i > %TMPIPCONFIGFILE% for /F "usebackq tokens=1-6" %%a in (%TMPIPCONFIGFILE%) do ( if not "%%c %%d %%e %%f"==" " ( call :FirstSubRoutine %%c %%d %%e %%f ) ) del %TMPIPCONFIGFILE% > Nul del %TEMPPINGFILE% > Nul goto :EOF :FirstSubRoutine set Adapter="%1 %2 %3 %4" call :SecondSubRoutine %Adapter% goto :EOF :SecondSubRoutine set con=%1 for /F "usebackq tokens=1-4" %%a in (%INPUTFILE%) do ( call :ThirdSubRoutine %con% %%a %%b %%c %%d ) goto :EOF :ThirdSubRoutine set dName=%1 set dNewName=%2 set dIP=%3 set dSubnet=%4 set dGate=%5 set vorhanden= for %%a in (%finishLANs:;= %) do (if "%%a"=="%dNewName%" set vorhanden="1" ) if defined vorhanden ( set _break= call :pingTest %dname% %dNewName% %dIP% %dSubnet% %dGate% if defined _break ( goto :EOF ) ) goto :EOF :pingTest set Name=%1 set Name=%Name%## set Name=%Name: "##="##% set Name=%Name: "##="##% set Name=%Name: "##="##% set Name=%Name: "##="##% set Name=%Name: "##="##% set Name=%Name:"##="##% set Name=%Name:~0,-1%" set newname=%2 set IP=%3 set Subnet=%4 set PINGIPADDRESS=%5 set _ERG= set vorhanden= for %%a in (%Connections:;= %) do ( if "%%a"=="%Name%" set vorhanden="1" ) if defined vorhanden ( goto :EOF ) echo Interface=%Name% newname="%newname%" IP=%IP% SUBNET=%SUBNET% netsh interface ip set address name=%Name% static %IP% %SUBNET% > Nul if ERRORLEVEL 1 ( goto :EOF ) echo ping -n 5 %PINGIPADDRESS% ping -n 5 %PINGIPADDRESS% > %TMPPINGFILE% for /F "usebackq tokens=1-6" %%a in (%TEMPPINGFILE%) do ( if "%%a"=="Reply" ( if "%%b"=="from" ( if "%%c"=="%PINGIPADDRESS%:" ( set _ERG="1" ) ) ) ) if defined _ERG ( echo Ergebnis: ping erfolgreich netsh interface set interface name=%Name% newname=%newname% > Nul set finishLANs=%finishLANs%;%newname% set Connections=%Connections%;%Name% set _break=now ) if not defined _ERG ( echo Ergebnis: Ping fehlgeschlagen netsh interface ip set address name=%Name% source=dhcp ) goto :EOF
Ich bedanke mich schon mal im vorraus für alle die sich es angetan haben mein Script zu lesen, bzw es versucht haben.
Ich will keine Kritik an der Schreibweise, war meines Denkens nach so notwendig aufgrund der vielen Variablen die ich verwenden muss, ich suche verbesserungen, Tests, oder ähnliches.
MFG,
Doomt
-
Es wurde gerade ein Test durchgeführt und es funktioniert anscheinend. Trotzdem Danke an alle die es versucht haben

mfg,
Doomt
-
wie wärs mit DHCP?
-
um dir zu antworten, muss ich wahrscheinlich etwas deutlicher werden, wobei ich dachte, dass es schon klar genug ist wenn ich von Windows Server rede.
Diese Server haben einen bestimmten zweck und damit müssen sie auch eine bestimmte Adresse bekommen, welche fix vergeben wird.
DHCP ist bei Servern nicht die richtige methode, aber trotzdem Danke.
DHCP ist bei zB Schülern, wo es egal ist welche IP Adresse die bekommen richtig.
Aja und mir soll jetzt niemand kommen mit Adresse reservieren
Wenn ich dhcp aufsetz und dann für jeden PC eine IP reserviere, dann soll mir einmal wer den Sinn hinter dhcp erklären
Es geht hier darum ob das Script funktioniert und nicht um den aufbau des Netzwerkes
Und einem Test eines bekannten von mir, funktioniert es anscheinend.
Freue mich über jede Antwort.
mfg,
Doomt
-
Nun, über die sinnhaftigkeit von DHCP in server netzen (egal ob windows oder nicht), wurde lange und viel von unterschiedlichen experten diskutiert.
Fakt ist, fast alle grossen provider setzen in ihren rechenzentren inzwischen fast ausschliesslich DHCP ein.
Und glaub mir... ich spreche aus erfahrung wenn ich sage - DHCP spaart ne menge administrativen aufwand. Von der zentralen managementkeit noch gar nicht zu reden.
Aber natürlich steht es jedem frei, seine IP addressen so zu vergeben wie er will.
Ich für meinen teil, würde bei unserer server farm den DHCP server definitiv nicht mehr missen wollen.
Was dein script betrifft, sieht es auf jedenfall so aus als könnte es funktionieren. Du solltest allerdings darauf achten, dass dein ping target auf jedenfall erreichbar ist, wenn du es einsetzt.
-
Ja okay, da gebe ich recht. Ich habe nichts gegen DHCP.
hatte noch keine Möglichkeit einsicht in ein Rechenzentrum zu bekommen, aber hab mir das fast schon gedacht. Und wieder was gelernt. (:
DHCP ist ein diskussionsthema, wobei ich nicht meine, dass DHCP schlecht ist, gott sei dank wurde es erfunden (:
Ja es ist natürlich die vorraussetzung für mein Script, dass es in diesem Netzwerk irgendetwas pingbares existiert.
Ähnliche Themen
-
Batch Script für download vom FTP Server
Von Lela im Forum Sonstige SprachenAntworten: 6Letzter Beitrag: 18.03.11, 20:27 -
Homepage Besucher Ip Adressen Script
Von son gohan im Forum PHPAntworten: 23Letzter Beitrag: 26.08.10, 14:20 -
lizens vergeben, such script!
Von harderph im Forum Coders TalkAntworten: 0Letzter Beitrag: 27.10.07, 15:44 -
PHP Adressen Script
Von alex130 im Forum PHPAntworten: 7Letzter Beitrag: 28.11.06, 23:19 -
Ausführen als per Batch-script
Von deadline im Forum Microsoft WindowsAntworten: 1Letzter Beitrag: 27.03.05, 20:06





Zitieren
Login





