You may know how to change the IP address via the GUI. It's pretty simple. Just go to Control Panel > Network and Internet, select the IPv4 properties and change the IP address. The whole process takes about a minute. But what if you have to do this on multiple systems and repeat all these steps several times? Then it becomes really annoying. With PowerShell, you can easily do this tedious task.
PowerShell may sound difficult and you may be hesitant to work with it, but it has some unique features.
With PowerShell, you can gather information, change system settings and automate almost everything in Windows. It is more powerful than Cmd and offers more flexibility. Tasks done with PowerShell can not only automate but also save you time.
To open PowerShell, type PowerShell in the search bar of your Windows 10 computer and then press Ctrl+Shift+Enter to launch it with administrator privileges.
To see the current IP configuration, type Get-NetIPAddress in PowerShell
Get-NetIPAddress
Get-NetIPAddress gives IP address information with prefix length and address family.
Get-NetIPConfiguration
Alternatively, you can type Get-NetIPConfiguration to get some advanced details. It gives IP address information along with its default gateway, DNS information, and Interface index.
From Get-NetIPConfiguration Result, note down the index number of the adapter for which you want to change IP address.
To specifically get the Interface index, type
Get-NetAdapter
in PowerShell:
Set a new IP address using PowerShell
All of the above commands are used to view current configurations. To set a new IP address, execute below command. Replace xxx.xxx.xxx.xxx with your own IP address.
New-NetIPAddress -InterfaceIndex “IndexNo” -IPAddress xxx.xxx.xxx.xxx -PrefixLength 24 -DefaultGateway xxx.xxx.xxx.xxx
Suppose we have the following required configurations:
- IndexNo: 8
- IPAddress: 192.168.1.38
- PrefixLength: 24
- DefaultGateway : 192.168.1.1
Replace the command parameters with your own addresses.
Note that the prefix length specifies the subnet mask of IP address.
Set a New DNS Servers Address
Up till now, we have configured IP address, subnet mask, and Default-gateway successfully. Now one thing is missing which is the DNS server address. to set a new DNS server address, type the command with the below syntax.
Set-DnsClientServerAddress -InterfaceIndex "IndexNo" -ServerAddresses "xxx.xxx.xxx.xxx , xxx.xxx.xxx.xxx"
Replace xxx.xxx.xxx.xxx with your required primary and secondary DNS server addresses.
Remove-NetIPAddress -IPAddress "xxx.xxx.xxx.xxx"
As you can see, it is relatively straightforward to configure TCP/IP through PowerShell. The techniques that I have shown you tend to be most useful when you need to configure multiple machines.