Sowohl unter Windows 10 als auch unter Windows 11 können Sie die DNS-Adresse Ihres Computers über die Einstellungen-App ändern. Es handelt sich um einen recht einfachen Vorgang, der jedoch viele Klicks und Tastenanschläge erfordert. Außerdem müssen Sie zunächst wissen, wo sich die Option zum Bearbeiten der DNS-Einstellungen befindet. Wenn Sie den Vorgang beschleunigen möchten, können Sie mein PowerShell-Skript verwenden, um die DNS-IP-Adresse zu ändern. Bei der Ausführung werden die aktuellen DNS-Adressen aller Ihrer Netzwerkadapter angezeigt und Sie können eine benutzerdefinierte DNS-Adresse festlegen, sowohl primäre als auch sekundäre Adressen.
PowerShell-Skript zum Ändern der DNS-IP-Adresse (primär und sekundär)
Hier ist das PowerShell-Skript, mit dem Sie die DNS-Einstellungen in Windows ändern können.
Advertisement
<#
Script Name: DNS Configuration Tool
Description: This script changes the DNS settings for all active network adapters in Windows.
Author: Bashkarla Vamsi
URL: https://windowsloop.com
#>
function Get-ValidIPAddress {
param (
[string]$prompt,
[bool]$allowEmpty = $false
)
do {
$ip = Read-Host -Prompt $prompt
if ($allowEmpty -and $ip -eq "") {
return $null
}
$ipValid = $ip -match '^d{1,3}(.d{1,3}){3}$' -and ($ip.Split('.') | ForEach-Object {$_ -ge 0 -and $_ -le 255})
if (-not $ipValid) {
Write-Host "Invalid IP address. Please enter a valid IPv4 address or leave blank if optional." -ForegroundColor Red
}
} while (-not $ipValid)
return $ip
}
function DisplayCurrentDNS {
param (
[string]$description,
[System.Management.Automation.PSObject]$adapters
)
Write-Host "`n$description" -ForegroundColor Cyan
foreach ($adapter in $adapters) {
$dns = (Get-DnsClientServerAddress -InterfaceIndex $adapter.InterfaceIndex).ServerAddresses
$dnsString = if ($dns) { $dns -join ', ' } else { "Not Set" }
Write-Host "Adapter: $($adapter.Name) - DNS: $dnsString" -ForegroundColor Yellow
}
}
# Get all network adapters that are enabled
$adapters = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' }
# Display current DNS settings
DisplayCurrentDNS -description "Current DNS Settings:" -adapters $adapters
# Ask for Primary and Secondary DNS addresses
$primaryDNS = Get-ValidIPAddress -prompt 'Primary DNS'
$secondaryDNS = Get-ValidIPAddress -prompt 'Secondary DNS (leave blank if not needed)' -allowEmpty $true
# Set DNS servers for each adapter and display changes
foreach ($adapter in $adapters) {
Write-Host "`nSetting DNS for adapter: $($adapter.Name)" -ForegroundColor Green
$dnsSettings = @($primaryDNS) + @($secondaryDNS | Where-Object { $_ }) # Only add secondary if not null
try {
Set-DnsClientServerAddress -InterfaceIndex $adapter.InterfaceIndex -ServerAddresses $dnsSettings -ErrorAction Stop
Write-Host "DNS changed successfully for $($adapter.Name)" -ForegroundColor Green
} catch {
Write-Host "Failed to change DNS for $($adapter.Name)" -ForegroundColor Red
}
}
# Display new DNS settings
DisplayCurrentDNS -description "New DNS Settings:" -adapters $adapters
Verwenden des Skripts zum Aktualisieren des DNS
Speichern Sie das Skript auf Ihrem Computer
Klicken Sie zunächst auf Start Klicken Sie auf die Schaltfläche auf Ihrem Desktop und suchen Sie nach Notizblockund klicken Sie Offen.
Im Notepad-Fenster Kopieren (Strg + C) das Skript und Paste (Strg + V) in Notepad.
Drücke den Datei > Speichern als Möglichkeit.
Advertisement
![Klicken Sie auf Datei und speichern Sie es dann im Notizblock](https://i0.wp.com/windowsloop.com/wp-content/uploads/2024/04/click-file-save-as-180424.jpg?resize=1024%2C743&ssl=1)
Wählen Sie einen Ordner zum Speichern der Datei aus und legen Sie fest change-dns.ps1 Als „Dateiname“ wählen Sie aus Alle Dateien aus dem Dropdown-Menü „Dateityp“ und klicken Sie auf Speichern.
Notiz: Du musst benutzen .ps1 als Dateierweiterung.
![Speichern Sie die Datei im PS1-Format](https://i0.wp.com/windowsloop.com/wp-content/uploads/2024/04/save-change-dns-powershell-script-180424.jpg?resize=946%2C533&ssl=1)
Führen Sie das Skript aus
Notiz: Sie benötigen Administratorrechte, um DNS-Einstellungen mithilfe des PowerShell-Skripts zu ändern.
Klicken Sie zunächst mit der rechten Maustaste auf Start Klicken Sie auf die Schaltfläche in der Taskleiste und wählen Sie die aus Terminal (Admin) Möglichkeit. Benutzer von Windows 10 können PowerShell (Admin) auswählen.
![Öffnen Sie das Windows-Terminal als Administrator Windows 11](https://i0.wp.com/windowsloop.com/wp-content/uploads/2022/03/open-terminal-as-admin-140322.jpg?resize=561%2C470&ssl=1)
Standardmäßig ist die Ausführungsrichtlinie von PowerShell eingeschränkt und erlaubt Ihnen nicht, Skripte auszuführen. Um dies zu ändern, führen Sie den folgenden Befehl aus. Es setzt die Ausführungsrichtlinie auf RemoteSigned Damit können wir unser Skript ausführen.
Set-ExecutionPolicy RemoteSigned
![Legen Sie die PowerShell-Ausführungsrichtlinie auf „RemoteSigned“ fest](https://i0.wp.com/windowsloop.com/wp-content/uploads/2024/04/set-powershell-execution-policy-180424.jpg?resize=1024%2C576&ssl=1)
Als nächstes verwenden Sie den CD-Befehl wie unten gezeigt, um zu dem Ordner zu wechseln, in dem Sie das Skript gespeichert haben.
cd "C:pathtoscript"
![Wechseln Sie das Verzeichnis mit dem CD-Befehl](https://i0.wp.com/windowsloop.com/wp-content/uploads/2024/04/powershell-change-directory-180424.jpg?resize=1024%2C576&ssl=1)
Jetzt, Führen Sie den folgenden Befehl aus um das Skript auszuführen.
Notiz: Wenn Sie die Datei unter einem anderen Namen gespeichert haben, passen Sie den Namen im Befehl entsprechend an.
.change-dns.ps1
![Führen Sie das PowerShell-Skript aus](https://i0.wp.com/windowsloop.com/wp-content/uploads/2024/04/run-powershell-script-180424.jpg?resize=1024%2C576&ssl=1)
Sobald Sie das Skript ausführen, werden die aktuellen DNS-Adressen aller Netzwerkadapter auf Ihrem Computer angezeigt und Sie werden dann zur Eingabe einer neuen primären DNS-Adresse aufgefordert.
Geben Sie die ein primäre DNS-IP-Adresse (in IPv4) und drücken Sie Eingeben. In meinem Fall möchte ich beispielsweise die Verwendung meines DNS ändern OpenDNS Zu Öffentliches DNS von Google. Also habe ich die öffentliche DNS-Adresse von Google (8.8.8.8) eingegeben.
![Geben Sie die primäre DNS-Adresse ein](https://i0.wp.com/windowsloop.com/wp-content/uploads/2024/04/set-primary-dns-using-powershell-180424.jpg?resize=1024%2C576&ssl=1)
Geben Sie als Nächstes die ein Sekundäre DNS-IP-Adresse und drücke Eingeben.
![Geben Sie die sekundäre DNS-Adresse ein](https://i0.wp.com/windowsloop.com/wp-content/uploads/2024/04/set-secondary-dns-using-powershell-180424.jpg?resize=1024%2C576&ssl=1)
Das ist es. Sobald Sie die Eingabetaste drücken, ändert das PowerShell-Skript die DNS-Adresse und zeigt den aktualisierten DNS aller Netzwerkadapter auf Ihrem PC an.
![Die DNS-Einstellungen wurden geändert und das Skript zeigt aktualisierte DNS-Einstellungen und ihre IP-Adressen an](https://i0.wp.com/windowsloop.com/wp-content/uploads/2024/04/dns-changed-180424.jpg?resize=1024%2C576&ssl=1)
Wie funktioniert das Skript?
Wenn Sie das Skript ausführen, wird zunächst Folgendes ausgelöst DisplayCurrentDNS
Funktion, um Ihre aktuellen DNS-Einstellungen für alle aktiven Netzwerkadapter anzuzeigen. Als Nächstes werden Sie aufgefordert, die primären und sekundären DNS-Adressen einzugeben, die mithilfe von validiert werden Get-ValidIPAddress
Funktion und werden in der gespeichert $primaryDNS
Und $secondaryDNS
Variablen. Dann verwendet das Skript das Set-DnsClientServerAddress
Cmdlet, um die Änderungen anzuwenden. Es wird dann sofort ausgeführt DisplayCurrentDNS
erneut, um die geänderten DNS-Einstellungen anzuzeigen.
Microsoft-Dokumentation zur Verwendung des Cmdlets „Set-DnsClientServerAddress“..
Einschränkungen
Das Skript ändert nur die DNS-Adresse für aktive Netzwerkadapter. Das heißt, wenn ein Netzwerkadapter deaktiviert ist, werden seine DNS-Einstellungen nicht geändert.
Darüber hinaus wird nicht überprüft, ob das DNS funktioniert oder nicht.
Zusammenfassung – Ein einfaches PS-Skript zur besseren Verwaltung der DNS-Einstellungen
Im Vergleich zur Verwendung der Einstellungs-App macht die Verwendung meines PowerShell-Skripts das Ändern und Aktualisieren von DNS-Einstellungen zu einem Kinderspiel, da die Notwendigkeit, sich mit einer umständlichen Benutzeroberfläche herumzuschlagen, entfällt. Dies gilt insbesondere, wenn Sie häufig DNS wechseln, Netzwerkkonfigurationen testen und mehrere Computer verwalten.
Wenn Sie Fragen haben, kommentieren Sie unten und ich werde antworten.