Initial commit for powershell scripts.
This commit is contained in:
1 parent
f4e5d9dcbd
commit
4fd95b76d6
18 files changed
+1803
No files matched your search
Executable
+56
@@ -0,0 +1,56 @@
|
||||
#Requires -RunAsAdministrator
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Configures static DNS server addresses on active network adapters.
|
||||
|
||||
.DESCRIPTION
|
||||
This script retrieves all active (connected) network interfaces on the endpoint and assigns
|
||||
primary DNS (Quad9) and secondary backup DNS (Cloudflare) servers.
|
||||
|
||||
.NOTES
|
||||
Created: 2025-03-02
|
||||
Modified: 2026-10-04
|
||||
|
||||
DNS Server Mappings:
|
||||
- Quad9 Primary: 9.9.9.9 (Malware blocking + DNSSEC)
|
||||
- Quad9 Secondary: 149.112.112.11 (Malware blocking + DNSSEC)
|
||||
- Cloudflare Prim: 1.1.1.2 (Malware blocking)
|
||||
- Cloudflare Sec: 1.0.0.2 (Malware blocking)
|
||||
|
||||
* Note: If adult content blocking is also desired via Cloudflare,
|
||||
use 1.1.1.3 and 1.0.0.3 instead.
|
||||
#>
|
||||
|
||||
[CmdletBinding(SupportsShouldProcess = $true)]
|
||||
param (
|
||||
# Array of DNS IPv4 addresses in priority order
|
||||
[string[]]$DnsServers = @("9.9.9.9", "149.112.112.11", "1.1.1.2", "1.0.0.2")
|
||||
)
|
||||
|
||||
# 1. Retrieve active/connected network adapters (filters out disabled, virtual, or disconnected NICs)
|
||||
$ActiveAdapters = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' }
|
||||
|
||||
if (-not $ActiveAdapters) {
|
||||
Write-Warning "No active network adapters found on this endpoint."
|
||||
return
|
||||
}
|
||||
|
||||
# 2. Apply DNS settings to each active interface
|
||||
foreach ($Adapter in $ActiveAdapters) {
|
||||
|
||||
$InterfaceName = $Adapter.Name
|
||||
$InterfaceIndex = $Adapter.InterfaceIndex
|
||||
|
||||
if ($PSCmdlet.ShouldProcess("Interface: $InterfaceName (Index: $InterfaceIndex)", "Set DNS servers to $($DnsServers -join ', ')")) {
|
||||
try {
|
||||
# Set the static DNS client addresses
|
||||
Set-DnsClientServerAddress -InterfaceIndex $InterfaceIndex -ServerAddresses $DnsServers -ErrorAction Stop
|
||||
|
||||
Write-Host "Successfully updated DNS for '$InterfaceName' (Index: $InterfaceIndex)" -ForegroundColor Green
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to update DNS on interface '$InterfaceName' (Index: $InterfaceIndex). Error: $_"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user