mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-01-16 01:40:35 -06:00
34 lines
1.3 KiB
PowerShell
34 lines
1.3 KiB
PowerShell
function Set-WinUtilDNS {
|
|
<#
|
|
|
|
.SYNOPSIS
|
|
Sets the DNS of all interfaces that are in the "Up" state. It will lookup the values from the DNS.Json file
|
|
|
|
.PARAMETER DNSProvider
|
|
The DNS provider to set the DNS server to
|
|
|
|
.EXAMPLE
|
|
Set-WinUtilDNS -DNSProvider "google"
|
|
|
|
#>
|
|
param($DNSProvider)
|
|
if($DNSProvider -eq "Default") {return}
|
|
try {
|
|
$Adapters = Get-NetAdapter | Where-Object {$_.Status -eq "Up"}
|
|
Write-Host "Ensuring DNS is set to $DNSProvider on the following interfaces"
|
|
Write-Host $($Adapters | Out-String)
|
|
|
|
Foreach ($Adapter in $Adapters) {
|
|
if($DNSProvider -eq "DHCP") {
|
|
Set-DnsClientServerAddress -InterfaceIndex $Adapter.ifIndex -ResetServerAddresses
|
|
} else {
|
|
Set-DnsClientServerAddress -InterfaceIndex $Adapter.ifIndex -ServerAddresses ("$($sync.configs.dns.$DNSProvider.Primary)", "$($sync.configs.dns.$DNSProvider.Secondary)")
|
|
Set-DnsClientServerAddress -InterfaceIndex $Adapter.ifIndex -ServerAddresses ("$($sync.configs.dns.$DNSProvider.Primary6)", "$($sync.configs.dns.$DNSProvider.Secondary6)")
|
|
}
|
|
}
|
|
} catch {
|
|
Write-Warning "Unable to set DNS Provider due to an unhandled exception"
|
|
Write-Warning $psitem.Exception.StackTrace
|
|
}
|
|
}
|