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)") } } } Catch{ Write-Warning "Unable to set DNS Provider due to an unhandled exception" Write-Warning $psitem.Exception.StackTrace } }