Per Batch auf DHCP umschalten?
ich habe eine kleine Batch die eine feste IP Adresse festlegt doch wenn ich dann über eine Batch wieder auf "Automatisch beziehen" stellen möchte sagt er mir das "DHCP ist an dieser Schnittstelle bereits aktiviert." und im Adapter ändert sich nicht warum?
2 Antworten
wäre ja schön gewesen wen Du den code mitgeliefert hätte, damit man nicht rumrätseln muss was Du falsch gemacht hast....
Deine Meldung kommt nur wenn vorher bei den Statischen Einstellungen etwas schief gegangen ist und die Verbindung immernoch dynamisch ist.
auf DHCP schalten:
netsh interface ip set address "VerbindungsName" dhcp
Statische Verbindung einrichten:
netsh interface ip set address "VerbindungsName" static IP SubnetMask GatewayIP Metric
...normalerweise Metric immer 1...
Info anzeigen :
netsh interface ip show config
ipconfig
Da ich nicht weiß was auf einem fremden Recher an Adaptern verwendet wird habe ich einer kleinen Batch, die zwischen statisch und dynamisch hinundher schaltet, einige Analysen hinzugefügt.
einzig die Zeile 27:
set "staticIPcfg=192.168.0.150 255.255.255.0 192.168.0.1 1"
musst Du noch von Hand anpassen.
bei jedem Start wird umgeschaltet...
switch DHCP.cmd:@echo off
setlocal enabledelayedexpansion
rem einige verwendete Programme benötigen Adminrechte
rem bei bedarf automatisch Adminrechte anfragen
set self=%~f0
net session >nul 2>&1
if %errorlevel% equ 0 goto admintasks
cd %~dp0
mshta "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%self:\=\\%', '', '', 'runas', 4);close(0) "
exit
:admintasks
rem aktive Verbindung ermitteln:
for /f "usebackq skip=1 tokens=2,3 delims=," %%a in (`wmic nic where "NetConnectionStatus=2 and PhysicalAdapter=true " get Caption^,NetConnectionID /format:csv 2^>nul ^| findstr /r /v "^$" `) do (
echo ConectID=%%~b
set "ConectID=%%~b"
echo Adapterbescheibung=%%~address
rem anhand der Beschreibung des aktiven Adapters, abfragen ob DHCP eingeschaltet ist
for /f "usebackq skip=1 tokens=2 delims=," %%c in (` wmic path Win32_NetworkAdapterConfiguration where "caption='%%~a'" get DHCPEnabled /format:csv 2^>nul ^| findstr /r /v "^$" `) do (
echo DHCPenabled=%%~c
set "isDHCP=%%~c"
)
)
rem hier deine gewünschte IP konfigurieren:
rem StaticIP= IP SubnetMask GatewayIP metric
set "staticIPcfg=192.168.0.150 255.255.255.0 192.168.0.1 1"
rem da wir jetz wissen wie es um die Verbindung steht, lässt sich eine Entscheidung fällen
if "%isDHCP%"=="FALSE" (
rem wenn DHCP aus, dann anschalten
netsh interface ip set address "%ConectID%" dhcp && echo DHCP eingeschaltet
rem Satus anzeigen
netsh interface ip show config
)
if "%isDHCP%"=="TRUE" (
rem wenn DHCP an, dann auf Statisch umschalten
netsh interface ip set address "%ConectID%" static %staticIPcfg% && echo Statische IP gesetzt
rem Satus anzeigen
netsh interface ip show config
)
pause
exit /b
Hast du vorher die IP Adresse released/renewed ?
Nein es geht darum die IP zu wechseln also von einer festen IP auf eine Dynamischeper Batch