Skip to content

Instantly share code, notes, and snippets.

@AzimsTech
Last active January 14, 2020 04:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AzimsTech/b81fc817d9718b6da1a60cdc4e17f30a to your computer and use it in GitHub Desktop.
Save AzimsTech/b81fc817d9718b6da1a60cdc4e17f30a to your computer and use it in GitHub Desktop.
Set DNS with PowerShell
<#
.NAME
Set-GoogleDns
.SYNOPSIS
Set Google Public DNS with PowerShell
.DESCRIPTION
Original code taken from: https://stackoverflow.com/questions/18724141/set-dns-with-powershell
#>
# MS Docs: https://docs.microsoft.com/en-us/powershell/module/dnsclient/set-dnsclientserveraddress?view=win10-ps
$ErrorActionPreference = "Continue"
#Set all DNS addresses needed.
write-verbose -Verbose "Set all DNS addresses needed."
$Dns1 = "8.8.8.8" #Preferred
$Dns2 = "8.8.4.4" #Alternate
$Dns3 = "2001:4860:4860:0:0:0:0:8888"
$Dns4 = "2001:4860:4860:0:0:0:0:8888"
#Combine addresses
write-verbose -Verbose "Combining DNS addresses."
$Dns = "$Dns1", "$Dns2", "$Dns3", "$Dns4"
#Set network adapter ranges
write-verbose -Verbose "Setting network adapter ranges."
#Get Network adapters
write-Verbose -Verbose "Now checking available network adapters."
$Net = Get-NetAdapter | Select-Object ifIndex | Format-Table -a | Out-File -FilePath C:/Netadapter.txt
$Net = "C:/Netadapter.txt"
#Setting ranges to work with
$Ranges = (Get-Content $Net) -creplace "ifIndex", "" -creplace "-", "" | ForEach-Object {$_.Trim()} | Where-Object { $_ } | Sort-Object #| out-file C:/Netadapter.txt
# Reset to Default DNS
write-Warning -Verbose "Reset a DNS client to use the default DNS server addresses"
foreach ($range in $ranges) {
Set-DnsClientServerAddress -InterfaceIndex $range -ResetServerAddresses
}
#Execute DNS change
write-Warning -Verbose "Now executing DNS change to all available network adapters."
foreach ($range in $ranges) {
Set-DnsClientServerAddress -InterfaceIndex $range -ServerAddresses ($DNS)
}
write-verbose -Verbose "DNS Settings have been altered."
#Remove Netadapter.txt file
Remove-Item -Path $Net
#Get IP network configuration.
Get-NetIPConfiguration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment