mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-15 15:15:51 -06:00
706f73923a
- Replaced "Default" with "Custom" - Set Default Dropdown Content to applied option or "Custom" if not in the list. - saves custom IPs on multiple adapters > If user sets DNS to Cloudflare and runs the tweaks but wants to undo it before he closed the script he can select "custom" and run it to apply the saved addresses
48 lines
1.7 KiB
PowerShell
48 lines
1.7 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)
|
|
|
|
$dnsProviders = $sync.configs.dns.PSObject.Properties.Name
|
|
|
|
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){
|
|
switch ($DNSProvider) {
|
|
"DHCP" {
|
|
Set-DnsClientServerAddress -InterfaceIndex $Adapter.ifIndex -ResetServerAddresses
|
|
}
|
|
"Custom" {
|
|
$savedSettings = $global:previousDnsSettings | Where-Object { $_.AdapterName -eq $Adapter.Name }
|
|
|
|
if ($savedSettings) {
|
|
# Set the DNS server addresses for the adapter to the saved addresses
|
|
Set-DnsClientServerAddress -InterfaceIndex $Adapter.ifIndex -ServerAddresses $savedSettings.DnsAddresses
|
|
}
|
|
}
|
|
default {
|
|
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 $_.Exception.Message
|
|
Write-Warning $_.Exception.StackTrace
|
|
}
|
|
}
|