131361
Goto Top

Batch IP Adresse vom aktiven Adapter ändern

Hallo zusammen,

ich würde gerne via Batch die IP Adresse, Subnetz, Gateway, DNS 1 und 2 der Ethernet setzen.
Grundsätzlich löse ich es wie folgt:

netsh interface ip set address "LAN" static [IP] [Sub] [Gateway]

Jetzt kommt allerdings das Problem, dass die Geräte immer über zwei LAN Verbindungen verfügen.
Je nach dem, wo das Netzwerkkabel angeschlossen wurde, ist LAN-Verbindung 1 oder LAN-Verbindung 2 aktiv.

Und nächster Faktor.
Die beiden LAN-Verbindungen habe von Gerät zu Gerät unterschiedliche Nummern.
Beispiel:

Gerät 1:
LAN-Verbindung18
LAN-Verbindung19

Gerät 2:
LAN-Verbindung13
LAN-Verbindung14

Jetzt ist die Frage:
Wie kann ich ermitteln welche LAN Verbindung die aktive ist und deren IP dann ändern?

Content-ID: 527872

Url: https://administrator.de/forum/batch-ip-adresse-vom-aktiven-adapter-aendern-527872.html

Ausgedruckt am: 19.04.2025 um 02:04 Uhr

SeaStorm
SeaStorm 20.12.2019 um 11:42:08 Uhr
Goto Top
Hi

mit Batch ist das recht hässlich. Nimm Powershell dafür, dann geht das super einfach
131361
131361 20.12.2019 um 12:06:58 Uhr
Goto Top
und wie würde das via Powershell funktionieren ?
SeaStorm
SeaStorm 20.12.2019 um 13:15:45 Uhr
Goto Top
Damit wandle ich dynamische in statische IPs um. Sollte sich leicht für deine zwecke abwandeln lassen
$NICs = Get-WMIObject Win32_NetworkAdapterConfiguration -computername . | where{$_.IPEnabled -eq $true -and $_.DHCPEnabled -eq $true}
Foreach($NIC in $NICs) {
    $ip = ($NIC.IPAddress)
    $gateway = $NIC.DefaultIPGateway
    $subnet = $NIC.IPSubnet
    $dns = $NIC.DNSServerSearchOrder
    $NIC.EnableStatic($ip, $subnet)
    $NIC.SetGateways($gateway)
    $NIC.SetDNSServerSearchOrder($dns)
    
}
ricardobohner
ricardobohner 21.12.2019 um 01:03:33 Uhr
Goto Top
Also, zum beispiel um die IP Addresse des aktiven Adapter in 192.168.1.10 mit einem Gateway von 192.168.1.1 und einem Submask von 255.255.255.0 zu ändern könntest du so einen code benutzen:

@echo off

for /f "tokens=2 Delims==" %%a in ('"wmic nic where 'AdapterTypeID=0 and NetConnectionStatus=2' get NetConnectionID /value"') do (  
for /f "Delims=" %%b in ("%%a") do netsh interface ip set address "%%b" static 192.168.1.10 255.255.255.0 192.168.1.1  
)