I need to frequently change the DNS server address, and for now I do it by opening 'network and sharing center' - 'local area connection' - properties - ipv4 - and then type the DNS numbers.
Is there a faster way to do it? Can I do it with a batch file or a powershell script? Is there a built in console command to change DNS?
Answer
Primary DNS value:
netsh interface ipv4 set dns "Local Area Connection" static 192.168.0.2
Secondary value:
netsh interface ipv4 add dns "Local Area Connection" 192.168.0.3 index=2
Which works great IF the name of the connection is correct. If the name isn't "Local Area Connection" then it will not work. If you are running XP you need to change "ipv4" to "ip". IPv6 can be used too.
Set subnet mask, IP Address, and Gateway:
netsh interface ipv4 set address name="Local Area Connection" source=static addr=192.168.1.10 mask=255.255.255.0 gateway=192.168.0.1
To Find the network connection you can use ipconfig from the cmd line. But you can also use the following for an abbreviated ipconfig result:
ipconfig | find /I "Ethernet adapter"
using the above ipconfig cmd we can loop through the connection (source code) and set the dns servers:
:: Set primary and alternate DNS for IPv4 on Windows Server 2000/2003/2008 &
:: Windows XP/Vista/7
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET adapterName=
FOR /F "tokens=* delims=:" %%a IN ('IPCONFIG ^| FIND /I "ETHERNET ADAPTER"') DO (
SET adapterName=%%a
REM Removes "Ethernet adapter" from the front of the adapter name
SET adapterName=!adapterName:~17!
REM Removes the colon from the end of the adapter name
SET adapterName=!adapterName:~0,-1!
netsh interface ipv4 set dns name="!adapterName!" static 192.168.0.2 primary
netsh interface ipv4 add dns name="!adapterName!" 192.168.0.3 index=2
)
ipconfig /flushdns
:EOF
No comments:
Post a Comment