So I'm kind of lazy. Not in the "sleep late and don't go to work" slacker way, I just don't like doing dull repetitive tasks if they can be automated in some way. As a rule if I have to do the same task more than a couple of times I'm writing a script (or getting someone else to do it).
During the years I worked as a consultant it was not uncommon to connect my laptop to several different networks in the same day. In some cases they were DHCP enabled so connection was easy. For others I would have to configure the network adapter manually. Ugh!
Enter the NETSH commands. The NETSH command can be used to modify the network configuration on Windows 2000 and later computers. It's not the friendliest syntax to use but it is a real time saver once you learn to use it (I have noticed the version that ships with Vista seems almost intuitive). Listed below are sample script for using NETSH to set STATIC IP entries on an adapter and another script to set the adapter back to DHCP mode so the settings can be obtained automatically. The command syntax for Vista and XP are slight different due to the fact that Vista supports IPV6 natively so sample scripts for each OS are listed below. To use the code, paste it into a batch file and modify the "name=" to the name of the adapter in quotes and change the IP addresses.
VISTA - Static IP
netsh interface ipv4 set address name="Wireless Network Connection 2" source=static addr=192.168.0.100 mask=255.255.255.0 gateway=192.168.0.250 gwmetric=0netsh interface ipv4 set dnsserver name="Wireless Network Connection 2" source=static addr=192.168.0.2 register=NONEREM netsh interface ipv4 set wins name="Wireless Network Connection 2" source=static addr=184.108.40.206REM OR if no WINS servernetsh interface ipv4 set winsserver name="Wireless Network Connection 2" source=dhcpipconfig /all
VISTA - DHCP
netsh interface ipv4 set address name="Wireless Network Connection 2" source=dhcpnetsh interface ipv4 set dnsserver name="Wireless Network Connection 2" source=dhcpnetsh interface ipv4 set winsserver name="Wireless Network Connection 2" source=dhcpipconfig /renew "Wireless Network Connection 2"ipconfig /all
XP - Static IP
netsh interface ip set address name="BROADCOM" source=static addr=192.168.27.40 mask=255.255.255.224netsh interface ip set address name="BROADCOM" gateway=192.168.27.33 gwmetric=0netsh interface ip set dns name="BROADCOM" source=static addr=192.168.98.12 register=NONEnetsh interface ip set wins name="BROADCOM" source=static addr=none
XP - DHCP
netsh interface ip set address name="BROADCOM" dhcpnetsh interface ip set dns name="BROADCOM source = dhcpnetsh interface ip set wins name="BROADCOM" source=dhcp
Hi! I need to get the name of the TCP/IP Interface in Windows XP (for example: "LAN"). Wich command can I use to do that?
Thanks for you help :)
To see the names of your network adapters open a command prompt, type IPCONFIG /ALL and press enter. Use the name shown in your NETSH scripts. If the adapter name has spaces enclose name in quotes (" ").
Is there a way to query the exact name of the TCP/IP interface? I'd like to use netsh in scripts and I would like to be able to set a variable and then feed the variable to script. As not all computers have the same network interface name, I'd like to query it first. Even more helpful would be a way to identify which one currently maps a specific IP address (as there could be multiple NICS, some of which are disabled).
To know the interface names use the command
netsh interface ip show address
I am trying to devise a way to automate the passage of the name to the script (maybe without power shell)
i want to make that script for vista without putting the name from connection is that possible?
In order to modify the properties of an adapter you need to reference the adapter name in the command. I don't know of any other way to accomplish this. If writing a script, you use WMI code to loop through the adapters collection looking for an adapter with specific propeties, then capture the name and pass that to the NETSH commands. Not easy but possible. YOu csn check out the Microsoft Scripting site here <http://www.microsoft.com/technet/scriptcenter/default.mspx?wt.svl=leftnav > for examples and resources.
Thanks for this fantastic script! Going to work changing the IP, coming back home, back to DHCP was a real pain. Thanks again!
Can you use this command to automate Wireless config and WEP keys?
When I install a second virtual adapter it comes up as "Local Area Connection 2".
How can I rename it to "TAP_Connection" from e.g. a vbs script?
This is on WinXP.
Thanks in advance.
Many thanks for this tip..it's really handy. i need to swap everyday from dhcp to fixed ip and the other way around. Now the task is straight forward and fast!
than you very much. Nicely done.
When setting a static ip address on windows 7 using netsh, the command returns but the ip address hasnt being changed yet and there is no output from the command. There is a delay of less than 15 seconds between the command returning and the IP address being changed.
In Xp, the command only returns once the IP has been successfully changed over and "Ok" is outputted to standard output.
Is there any way we can tell the netsh command on windows 7 to not return until the static IP address has been changed over? (i dont want to have to use the sleep command)