Windows 11 | Verbindungsspezifisches DNS-Suffix mit PowerShell entfernen

Wer in gemischten Umgebungen oder beim Testen von Routern und DHCP-Servern unterwegs ist, kennt das Phänomen: In der Ausgabe von ipconfig /all taucht plötzlich ein verbindungsspezifisches DNS-Suffix wie home.local oder fritz.box auf.

Das Problem dabei: Selbst wenn man in den erweiterten TCP/IP-Einstellungen des Netzwerkadapters das Feld “DNS-Suffix für diese Verbindung” manuell leert, bleibt der Eintrag stur bestehen. Auch ein gewöhnliches Set-DnsClient -ConnectionSpecificSuffix "" bringt oft keine Abhilfe.

Die Ursache: DHCP Option 119 und die Registry

Der Grund für diese Renitenz liegt tiefer im System. Viele Router übermitteln DNS-Suchlisten über die DHCP Option 119 (oder Option 15). Windows legt diese Werte nicht nur in den Standard-Eigenschaften der Netzwerkschnittstelle ab, sondern schreibt sie als REG_MULTI_SZ-Wert namens DhcpDomainSearchList direkt in die Registry unterhalb der jeweiligen Adapter-GUID.

Da es sich hierbei um ein Multi-String-Array handelt, greifen die Standard-Befehle zum Leeren gewöhnlicher Zeichenfolgen ins Leere. Bei jedem Lease-Renew holt sich Windows die Suchliste wieder ab.

Die Lösung: PowerShell-Skript zur Bereinigung

Um das Suffix endgültig loszuwerden, müssen die entsprechenden Schlüssel in den Interfaces sowie die globalen Suchlisten unter Tcpip\Parameters gezielt abgeräumt werden.

Folgendes PowerShell-Skript (mit Administratorrechten ausführen) erledigt den Hausputz auf allen Netzwerkschnittstellen:


#Requires -RunAsAdministrator

# Target path for network interfaces in the registry
$InterfacesPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"

# 1. Clear and remove DhcpDomainSearchList and related suffix entries on all interfaces
Get-ChildItem -Path $InterfacesPath | ForEach-Object {
    $path = $_.PSPath
    
    # Explicitly remove and clear DhcpDomainSearchList
    Remove-ItemProperty -Path $path -Name "DhcpDomainSearchList" -ErrorAction SilentlyContinue
    Set-ItemProperty -Path $path -Name "DhcpDomainSearchList" -Value ([string[]]@()) -ErrorAction SilentlyContinue

    # Clean up secondary domain suffix properties
    Remove-ItemProperty -Path $path -Name "DhcpDomain" -ErrorAction SilentlyContinue
    Remove-ItemProperty -Path $path -Name "Domain" -ErrorAction SilentlyContinue
    Set-ItemProperty -Path $path -Name "DhcpDomain" -Value "" -ErrorAction SilentlyContinue
    Set-ItemProperty -Path $path -Name "Domain" -Value "" -ErrorAction SilentlyContinue
}

# 2. Clean up global SearchList entries under Tcpip\Parameters
$ParamsPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
Remove-ItemProperty -Path $ParamsPath -Name "DhcpDomainSearchList" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $ParamsPath -Name "SearchList" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $ParamsPath -Name "Domain" -ErrorAction SilentlyContinue

# 3. Flush local DNS client cache
Clear-DnsClientCache

Write-Host "DhcpDomainSearchList successfully cleaned up!" -ForegroundColor Green

Den Wiedergang nach DHCP-Renew verhindern

Falls der lokale DHCP-Server im Netz weiterhin penetrant Option 119 verteilt und Windows das Suffix beim nächsten Re-Lease wieder einspeist, lässt sich Windows per Gruppenrichtlinie / Registry anweisen, die vom DHCP gelieferten Suchlisten schlicht zu ignorieren:

# Enforce policy to ignore DHCP Option 119 (DhcpDomainSearchList) globally
$policyPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient"
if (-not (Test-Path $policyPath)) {
    New-Item -Path $policyPath -Force | Out-Null
}
Set-ItemProperty -Path $policyPath -Name "UseDomainNameDevolution" -Value 0 -Type DWord

Kontrolle

Ob die Bereinigung erfolgreich war, lässt sich mit einem kurzen Einzeiler prüfen:

# Verify that DhcpDomainSearchList is empty across all interfaces
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\*" | Select-Object PSChildName, DhcpDomainSearchList

Nach einem anschließenden ipconfig /flushdns zeigt ipconfig /all wieder eine saubere Suchliste ohne unerwünschte Suffix-Leichen an.

Das Skript zum Löschen des Eintrags steht hier zum Download bereit.

Enjoy it, b!

Kommentar verfassen