Netzwerkeinstellungen ändern
Hallo Forumgemeinde,
Ich möchte mit Hilfe einer Batchdatei die kompletten Netzwerkeinstellungen ändern. habe schon bisschen gegooglet aber bin nicht so ganz fündig geworden.
Für die Ip und subnetzmaske hab ichs schon gefunden, aber der Rest???
das ganze soll dann in etwa so aussehen:
::-------------------------------------------------------------------------------------------
@echo off
cls
Set LName =Lan-Verbindung
Set IP = 000.000.000.000
Set Sub = 000.000.000.000
Set StandGate = 000.000.000.000
Set bevDNS = 000.000.000.000
set altDNS = 000.000.000.000
netsh interface ip set address name=LName static IP Sub
::-------------------------------------------------------------------------------------------
Aber wie geht das mit dem Rest?
Mein 2. Problem wäre das Auslesen der Namen aller Netzwerkverbindungen. Also "Lan-Verbindung"; "WLan-Verbindung" ... etc. und das dann am besten gleich in eine txt datei...
Es wäre auch schon wenn mir jemand dazu sagen könnte unter welchen Windowsversionen das läuft. Soll nämlich auf mehreren Rechnern laufen von Xp bis Windows 7.
Mit freundlichen Grüßen
Ich möchte mit Hilfe einer Batchdatei die kompletten Netzwerkeinstellungen ändern. habe schon bisschen gegooglet aber bin nicht so ganz fündig geworden.
Für die Ip und subnetzmaske hab ichs schon gefunden, aber der Rest???
das ganze soll dann in etwa so aussehen:
::-------------------------------------------------------------------------------------------
@echo off
cls
Set LName =Lan-Verbindung
Set IP = 000.000.000.000
Set Sub = 000.000.000.000
Set StandGate = 000.000.000.000
Set bevDNS = 000.000.000.000
set altDNS = 000.000.000.000
netsh interface ip set address name=LName static IP Sub
::-------------------------------------------------------------------------------------------
Aber wie geht das mit dem Rest?
Mein 2. Problem wäre das Auslesen der Namen aller Netzwerkverbindungen. Also "Lan-Verbindung"; "WLan-Verbindung" ... etc. und das dann am besten gleich in eine txt datei...
Es wäre auch schon wenn mir jemand dazu sagen könnte unter welchen Windowsversionen das läuft. Soll nämlich auf mehreren Rechnern laufen von Xp bis Windows 7.
Mit freundlichen Grüßen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 133359
Url: https://administrator.de/contentid/133359
Ausgedruckt am: 17.11.2024 um 01:11 Uhr
28 Kommentare
Neuester Kommentar
Hi,
hab so ne ähnliche Lösung auch in den letzen Tagen geschrieben und wollte die hier mal kund tun bevor es bastla & Biber lösen ;)
In jedem Fall vielen Dank an Biber und bastla für eure Lösungswege in anderen fällen; wenn ihr was zu ergänzen habt immer nur zu
Grüße
Marcel
hab so ne ähnliche Lösung auch in den letzen Tagen geschrieben und wollte die hier mal kund tun bevor es bastla & Biber lösen ;)
@echo off & setlocal
for /f "tokens=2,3" %%i in ('ipconfig^|find "Ethernetada"^|find /v "Drah"^|find /v "1394"') do set LANtmp=%%i %%j
Set LAN=%LANtmp::=%
Set /p IP=Bitte IP-Adresse eingeben:
Set /p SM=Bitte Subnetzmaske eingeben:
Set /p GW=Bitte Gateway eingeben:
Set /p DNS=Bitte DNS-Server eingeben:
netsh interface ip set address name="%LAN%" source=static addr=%IP% mask=%SM%
netsh interface ip set address name="%LAN%" gateway=%GW% gwmetric=0
netsh interface ip set dns name="%LAN%" source=static addr=%DNS%
In jedem Fall vielen Dank an Biber und bastla für eure Lösungswege in anderen fällen; wenn ihr was zu ergänzen habt immer nur zu
Grüße
Marcel
Ich habe mir letztens da mal was gebastelt..Sollte für dich ja genau passend sein :
@ECHO OFF
REM ### DIE UNTENSTEHENDEN EINTRAEGE BITTE ENTSPRECHEND ANPASSEN ###
SET DESC="LAN-Verbindung"
SET IP=192.168.x.x
SET NM=255.255.255.0
SET GW=192.168.x.x
SET DNS0=192.168.x.x
SET DNS1=192.168.x.x
REM ### HIER NICHTS ANRUEHREN !!! ###
REM #################################
REM # Beispiel: #
REM # DESC="LAN-Verbindung" #
REM # IP=192.168.200.100 #
REM # NM=255.255.255.0 #
REM # GW=192.168.200.254 #
REM # DNS0=192.168.201.104 #
REM # DNS1=192.168.201.106 #
REM #################################
REM ### HIER ERST RECHT NICHTS ANRUEHREN !!! ###
REM ### Setzen der statischen IP-Adresse und der Subnet-Mask ###
echo Setze statische IP %IP% ...
netsh interface ip set address name=%DESC% source=static addr=%IP% mask=%NM%
REM ### Setzen des Gateways ###
echo Setze Gateway %GW% ...
netsh interface ip set address name=%DESC% gateway=%GW% gwmetric=0
REM ### Setzen des Primären DNS_Servers ###
echo Setze primaeren DNS-Server %DNS0% ...
netsh interface ip set dns name=%DESC% source=static addr=%DNS0% register=PRIMARY
REM ### Setzen des Sekundären DNS_Servers ####
echo Setze sekundaeren DNS-Server %DNS1% ...
netsh interface ip add dns name=%DESC% addr=%DNS1% index=2
echo Netzwerkkonfiguration beendet!
ping localhost -n 3 >NUL
echo Aktuelle Netzwerkeinstellungen:
ipconfig /all
ping localhost -n 5 >NUL
Wie stelle ich den DNS-server auf automatisch beziehen?
netsh interface ip set dns name="%LAN%" source=dhcp
Wie kann ich alle Schnittstellen auslesen?
ipconfig /all
ipconfig /all > ipconfig.txt
Und in wie Weit ist das zu den unterschiedlichen Windowsversionen kompatibel?
Geht auch unter Vista & 7 ... muss dann aber auch als Admin ausgeführt werden.Und bedenke: Wenn du die Variable fest deklarierst als "Lan-Verbindung" geht des recht bald schief.
Wenn die Lan-Verbindung "Killer" heisst und in der Batch "Lan", dann können die Einstellungen nicht gesetzt werden.
Der Name ist sozusagen die Hausnummer von dem Interface. Um die Einstellungen zu setzen, muss die Batch ja erstmal "wissen", welches Interface sie "bearbeiten" soll.
Nachtrag:
Das selbe Prinzip: Wenn Du mittels Batch die Datei "Hallo.txt" nach c: kopieren möchtest, schreibst du "copy Hallo.txt c:\".
Allerdings geht das nur, wenn die Datei auch "Hallo.txt" heisst und nicht "Blablubb.xls" - verstehst Du was ich meine?
Gruß Dark
Der Name ist sozusagen die Hausnummer von dem Interface. Um die Einstellungen zu setzen, muss die Batch ja erstmal "wissen", welches Interface sie "bearbeiten" soll.
Nachtrag:
Das selbe Prinzip: Wenn Du mittels Batch die Datei "Hallo.txt" nach c: kopieren möchtest, schreibst du "copy Hallo.txt c:\".
Allerdings geht das nur, wenn die Datei auch "Hallo.txt" heisst und nicht "Blablubb.xls" - verstehst Du was ich meine?
Gruß Dark
Zitat von @eTh0-R:
Du wendest das Script an nem PC an wo der USER die Verbindung in "KILLER NIC" umbenannt hat....
und schon stehst aufm Schlauch ;)
Du wendest das Script an nem PC an wo der USER die Verbindung in "KILLER NIC" umbenannt hat....
und schon stehst aufm Schlauch ;)
@ erik87: Eine mögliche Lösung dafür wäre:
- Du lässt den Benutzer den Namen der Netzwerkverbindung eingeben
- Du "fragst" den Namen der Verbindung ab.
Nachtrag zu 2:
Das ist allerdings nicht ganz so einfach. Ein ipconfig /all > testdatei.txt liefert zwar die Ausgabe der vorhandenen Ethernetadapter, aber mittels Batch den "richtigen" auslesen ist schwierig. Wenn die Lan-Verbindung z.B. "Bla" heisst, die Wlan-Verbindung "Blubb" und eine Bluetooth-Lanverbindung "Blablubb", dann gibt es keine "Suchphrase" mit der man die Datei nach dem "richtigen" Adapter durchsuchen lassen könnte.
BASTLAAAAA, BIIIBEEER, hier müsst Ihr helfen xDD
So, ich hab mal ein wenig gesucht, aber bis jetzt keine wirkliche Antwort darauf gefunden, wie man den Namen der Lan-Verbindung auslesen kann.
Aber hier habe ich mal das Script von exellent etwas angepasst:
Hier hat man die Möglichkeit, mit einem kleinen "Menü" eine Auswahl zu treffen, was passieren soll - getrennt für Lan- oder Wlan-Verbindung, wahlweise statisch oder dhcp. Die IP-Adressen musst Du natürlich vorher an Deine zwecke anpassen ^^
Falls Du den Name der Lan-Verbindungen "festlegen" willst, ersetze
einach mit
Gruß Dark
Aber hier habe ich mal das Script von exellent etwas angepasst:
@ECHO OFF
color 70
cls
echo\
echo Netzwerk konfigurieren
echo ----------------------
echo\
echo [1] Wlan-Einstellung Statisch
echo [2] Wlan-Einstellung DHCP
echo [3] LAN-Einstellung Statisch
echo [4] LAN-Einstellung DHCP
echo Konfiguration abbrechen
echo\
set /P AUSWAHL=Bitte Auswahl treffen [1/2/3/0]:
IF /I "%AUSWAHL%"=="0" goto EXIT
IF /I "%AUSWAHL%"=="1" goto STATISCH-WLAN
IF /I "%AUSWAHL%"=="2" goto DHCP-WLAN
IF /I "%AUSWAHL%"=="3" goto STATISCH-LAN
IF /I "%AUSWAHL%"=="4" goto DHCP-LAN
:STATISCH-WLAN
cls
echo \
echo Exakten Name der Wlan-Verbingung eingeben:
SET /p DESC
cls
SET IP=192.168.1.2
SET NM=255.255.255.0
SET GW=192.168.1.1
SET DNS0=192.168.1.1
::SET DNS1=192.168.x.x
echo\
echo Setze statische IP %IP%
netsh interface ip set address name=%DESC% source=static addr=%IP% mask=%NM%
echo Setze Gateway %GW%
netsh interface ip set address name=%DESC% gateway=%GW% gwmetric=0
echo Setze primaeren DNS-Server %DNS0%
netsh interface ip set dns name=%DESC% source=static addr=%DNS0% register=PRIMARY
::echo Setze sekundaeren DNS-Server %DNS1%
::netsh interface ip add dns name=%DESC% addr=%DNS1% index=2
echo Netzwerkkonfiguration abgeschlossen!
echo Konfiguration wird beendet...
ping localhost -n 3 >NUL
exit
:DHCP-WLAN
cls
echo \
echo Exakten Name der Wlan-Verbingung eingeben:
SET /p DESC
cls
echo\
echo Setze IP-Einstellungen auf DHCP
netsh interface ip set address name=%DESC% source=dhcp
echo Setzte DNS-Einstellungen auf DHCP
netsh interface ip set dns name=%DESC% source=dhcp% register=PRIMARY
echo Netzwerkkonfiguration abgeschlossen!
echo Konfiguration wird beendet...
ping localhost -n 3 >NUL
exit
:STATISCH-LAN
cls
echo \
echo Exakten Name der LAN-Verbingung eingeben:
SET /p DESC
cls
SET IP=192.168.1.20
SET NM=255.255.255.0
SET GW=192.168.1.1
SET DNS0=192.168.1.1
::SET DNS1=192.168.x.x
echo\
echo Setze statische IP %IP%
netsh interface ip set address name=%DESC% source=static addr=%IP% mask=%NM%
echo Setze Gateway %GW%
netsh interface ip set address name=%DESC% gateway=%GW% gwmetric=0
echo Setze primaeren DNS-Server %DNS0%
netsh interface ip set dns name=%DESC% source=static addr=%DNS0% register=PRIMARY
::echo Setze sekundaeren DNS-Server %DNS1%
::netsh interface ip add dns name=%DESC% addr=%DNS1% index=2
echo Netzwerkkonfiguration abgeschlossen!
echo Konfiguration wird beendet...
ping localhost -n 3 >NUL
exit
:DHCP-LAN
cls
echo \
echo Exakten Name der LAN-Verbingung eingeben:
SET /p DESC
cls
echo\
echo Setze IP-Einstellungen auf DHCP
netsh interface ip set address name=%DESC% source=dhcp
echo Setze DNS-Einstellungen auf DHCP
netsh interface ip set dns name=%DESC% source=dhcp% register=PRIMARY
echo Netzwerkkonfiguration abgeschlossen!
echo Konfiguration wird beendet...
ping localhost -n 3 >NUL
exit
:EXIT
exit
Hier hat man die Möglichkeit, mit einem kleinen "Menü" eine Auswahl zu treffen, was passieren soll - getrennt für Lan- oder Wlan-Verbindung, wahlweise statisch oder dhcp. Die IP-Adressen musst Du natürlich vorher an Deine zwecke anpassen ^^
Falls Du den Name der Lan-Verbindungen "festlegen" willst, ersetze
cls
echo \
echo Exakten Name der LAN-Verbingung eingeben:
SET /p DESC
cls
cls
SET DESC="Wlan-Verbindung" ::oder natürlich LAN-Verbindung
Gruß Dark
@TheDarkLord
Soferne der Batch unter XP oder höher ausgeführt wird (unter W2000 müsstest Du auf VBS zurückgreifen), kannst Du mit "
Da "
[Edit] Geht doch (wie Biber hier schon nachgewiesen hatte) auch direkt:
[/Edit]
Insgesamt liefert WMI 32 Properties:
Vielleicht hilft ja noch eine andere Eigenschaft dabei, den "richtigen" Adapter herauszufinden ...
Grüße
bastla
BASTLAAAAA, BIIIBEEER
Du warst nicht zu überhören ... Soferne der Batch unter XP oder höher ausgeführt wird (unter W2000 müsstest Du auf VBS zurückgreifen), kannst Du mit "
wmic
" eine WMI-Abfrage verwenden, um zumindest herauszufinden, welcher Netzwerkadapter verbunden ist (danke dafür an die "Scripting Guys").Da "
wmic get
" leider etwas zickig hinsichtlich der Verwendung innerhalb einer "for
"-Schleife ist, verwende ich eine Temporärdatei:wmic nic get NetConnectionID,NetConnectionStatus /format:csv|findstr /e ",2">%temp%\Conn.txt
for /f "tokens=2 delims=," %%i in (%temp%\Conn.txt) do set "Conn=%%i"
for /f "tokens=2 delims=," %%i in ('wmic nic get NetConnectionID^,NetConnectionStatus /format:csv^|findstr /e ",2"') do set "Conn=%%i"
Insgesamt liefert WMI 32 Properties:
wmic nic list /format:csv
Grüße
bastla
Moin erik87,
@thedarklurch und bastla,
ich habe es ja gehört vorhin..
Aber ich habe auch nur Näherungslösungen.
mit der WMIC-Variante habe ich genau wie mit IPConfig /All eine Mehrdeutigkeit z.B wenn ich einen Loopback-Adapter mit installiert habe (für eine lokale Datenbank)
Denn der hat leider Gates auch den [WMIC-]Status 2, der bei bastla abgeprüft wird.
Beispiel:
Ich komme [bislang] nur auf Indizien... nicht auf eine klare Antwort.
Grüße
Biber
@thedarklurch und bastla,
ich habe es ja gehört vorhin..
Aber ich habe auch nur Näherungslösungen.
mit der WMIC-Variante habe ich genau wie mit IPConfig /All eine Mehrdeutigkeit z.B wenn ich einen Loopback-Adapter mit installiert habe (für eine lokale Datenbank)
Denn der hat leider Gates auch den [WMIC-]Status 2, der bei bastla abgeprüft wird.
Beispiel:
>wmic nic get NetConnectionID,NetConnectionStatus,name,Description,Status /format:csv
Node,Description,Name,NetConnectionID,NetConnectionStatus,Status
BIBERNODE0815,Broadcom NetXtreme Gigabit Ethernet,Broadcom NetXtreme Gigabit Ethernet,XYZ-LAN,2, <----------------"gesuchter"
BIBERNODE0815,Asynchroner RAS-Adapter,Asynchroner RAS-Adapter,,,
BIBERNODE0815,WAN-Miniport (L2TP),WAN-Miniport (L2TP),,,
BIBERNODE0815,WAN-Miniport (PPTP),WAN-Miniport (PPTP),,,
BIBERNODE0815,WAN-Miniport (PPPOE),WAN-Miniport (PPPOE),,,
BIBERNODE0815,Parallelanschluss (direkt),Parallelanschluss (direkt),,,
BIBERNODE0815,WAN-Miniport (IP),WAN-Miniport (IP),,,
BIBERNODE0815,Microsoft Loopbackadapter,Microsoft Loopbackadapter,LAN-Verbindung,2, <-------------------------zweiter
Ich komme [bislang] nur auf Indizien... nicht auf eine klare Antwort.
Grüße
Biber
@erik87
Wenn Du dann noch zeigst, woher der Inhalt von "%LName%" kommt (war ja eigentlich das Thema hier) ...
Grüße
bastla
Wenn Du dann noch zeigst, woher der Inhalt von "%LName%" kommt (war ja eigentlich das Thema hier) ...
Grüße
bastla
@Biber
Hinsichtlich des Loopbackadapters könnte natürlich ein Einbeziehen von "Manufacturer" und dann ein
helfen, aber allgemeingültig wird's damit ja trotzdem nicht ...
Grüße
bastla
Ich komme [bislang] nur auf Indizien... nicht auf eine klare Antwort.
Ging mir ja leider auch nicht anders ...Hinsichtlich des Loopbackadapters könnte natürlich ein Einbeziehen von "Manufacturer" und dann ein
findstr /v "Microsoft"
Grüße
bastla
Moin erik87,
guter Plan.
Mag ja auch bei deinem Rechner reichen.
Bei meinem Rechner aber erhalte ich via IPConfig zwei "Ethernetadapter" (den gesuchten und den Loopbackadapter, s.o.)
Es ging/geht im diesem Randscharmützel nur um die Verhinderung von Reklamationsforderungen.
Sonst schreibt irgendein Copy&Paster in ein paar Wochen "jetzt habe ich das so an 5000 Kunden ausgeliefert und es tut nicht!".
Grüße
Biber
guter Plan.
Mag ja auch bei deinem Rechner reichen.
Bei meinem Rechner aber erhalte ich via IPConfig zwei "Ethernetadapter" (den gesuchten und den Loopbackadapter, s.o.)
>ipconfig /all|find /i "tadapter"
Ethernetadapter LAN-Verbindung:
Ethernetadapter XYZ-LAN:
Es ging/geht im diesem Randscharmützel nur um die Verhinderung von Reklamationsforderungen.
Sonst schreibt irgendein Copy&Paster in ein paar Wochen "jetzt habe ich das so an 5000 Kunden ausgeliefert und es tut nicht!".
Grüße
Biber
Wie gesagt mit meiner Schleife komme ich da auch gut klar und die gänigsten Formen kannst damit halt wegschneiden.
Gibt dir ne saubere Variable ohne nen :
Kannst halt noch mit: find /v noch andere Sachen ausschließen wie "WLAN" usw
for /f "tokens=2,3" %%i in ('ipconfig^|find "Ethernetada"^|find /v "Drah"^|find /v "1394"') do set LANtmp=%%i %%j
Set LAN=%LANtmp::=%
Gibt dir ne saubere Variable ohne nen :
Kannst halt noch mit: find /v noch andere Sachen ausschließen wie "WLAN" usw
Hallo Ihr,
vielleicht gehört es hier nicht hin, aber ich musste folgendes Problem lösen :
wir haben viele Standorte, an denen jeweils ein anderes Netz (mit verschiedensten Subnetzmasken) existiert.
Im Endeffekt habe ich die Sache mit einer Textdatei gelöst, in der alle IP-Adressen mit Standortnamen, Subnetz, DNS etc. aufgelistet sind.
der Standort kann über eine Standortnummer ausgewählt werden. Ich habe die Postleitzahl als Standortnummer
gewählt, das ist für die Leute übersichtlicher.
Das ganze ist über Menü zu bedienen und ist erweiterbar , um andere Funktionen einzubinden.
Mit jeder Verbindung über Netzwerk kann eine neue Version übertragen werden (per Batch).
Wer Interesse hat, kann sich bei mir melden !
vielleicht gehört es hier nicht hin, aber ich musste folgendes Problem lösen :
wir haben viele Standorte, an denen jeweils ein anderes Netz (mit verschiedensten Subnetzmasken) existiert.
Im Endeffekt habe ich die Sache mit einer Textdatei gelöst, in der alle IP-Adressen mit Standortnamen, Subnetz, DNS etc. aufgelistet sind.
der Standort kann über eine Standortnummer ausgewählt werden. Ich habe die Postleitzahl als Standortnummer
gewählt, das ist für die Leute übersichtlicher.
Das ganze ist über Menü zu bedienen und ist erweiterbar , um andere Funktionen einzubinden.
Mit jeder Verbindung über Netzwerk kann eine neue Version übertragen werden (per Batch).
Wer Interesse hat, kann sich bei mir melden !