Die wichtigsten Punkte
- Baseline der DNS-Diagnose erstellen: Nutzen Sie PowerShell-Befehle wie Get-DnsServerDiagnostics und exportieren Sie die Daten im CSV- oder JSON-Format.
- Gezielte DNS-Diagnose aktivieren: Aktivieren Sie nur die nötigen Diagnose-Flags (-Query, -Send, -Receive, -ZoneTransfer), um eine Protokollflut zu vermeiden und DNS-Probleme dennoch zu erkennen.
- DNS-Nachweise erfassen und exportieren: Sammeln Sie mit PowerShell-Cmdlets (Get-WinEvent, Get-DnsServerZone, Export-Csv) Protokolle, ordnen Sie Ereignisse zu und dokumentieren Sie Ursachen.
- DNS-Server auf die Baseline zurücksetzen: Deaktivieren Sie die Diagnose sicher und stellen Sie mit Set-DnsServerDebugLog und Set-DnsServerDiagnostics die Standardeinstellungen wieder her.
- Überwachung der DNS-Gesundheit automatisieren: Planen Sie wiederkehrende Diagnosen und Alarmierungen über PowerShell oder RMM-Tools wie NinjaOne, um die MTTR zu senken.
Zwar lässt sich Windows-DNS auch über die grafische Oberfläche verwalten, doch wer die passenden PowerShell-Befehle und die Vorgehensweise zur Prüfung der Diagnose kennt, kann als MSP Prozesse automatisieren und eine Ursachenanalyse (RCA) mit minimaler Unterbrechung durchführen. Das erhöht die Widerstandsfähigkeit gegen DNS-Angriffe.
Dieser Artikel zeigt, wie Sie eine gezielte Diagnose aktivieren, eine Baseline erstellen, Nachweise dokumentieren und Serveränderungen zurücknehmen, und zwar mit speziellen PowerShell-Befehlen und RMM-Funktionen.
DNS-Probleme mit PowerShell beheben
Die folgenden Schritte bilden einen strukturierten Rahmen und beantworten die Frage „Wie behebt man ein DNS-Problem?“
📌Voraussetzungen:
- PowerShell mit Administratorrechten auf einem System mit dem DNS-Server-Modul (remote oder direkt auf dem DNS-Host).
- Zugriff auf die DNS-Serverrolle und die relevanten Ereigniskanäle.
- Anpassung der Windows-Richtlinie bzw. der Richtlinie für sicher aktivierbare Diagnose.
- Versioniertes Repository für Baseline-Exporte im JSON-/CSV-Format.
Methode 1: Zuerst den Endpunkt-Pfad prüfen
Bevor Sie in die serverseitige DNS-Diagnose einsteigen, sollten Sie Fehlkonfigurationen auf Client-Seite ausschließen, die Verfügbarkeit und Serverzuverlässigkeit beeinträchtigen können. Gehen Sie vorab wie folgt vor:
- Prüfen Sie, ob der Netzwerkadapter des Clients eine Verbindung zum Gateway und zu den DNS-Servern aufbauen kann.
- Prüfen Sie, ob die Domain-Eintragstypen den jeweiligen IP-Adressen entsprechen (ein AAAA-Eintrag ordnet einem Domainnamen zum Beispiel eine IPv6-Adresse zu).
- Werten Sie Ihren DNS-Cache auf hilfreiche Hinweise zur Fehlersuche aus (etwa falsche Abfragepfade oder ein auffälliges Time-to-Live-Verhalten).
Methode 2: Eine Baseline der DNS-Diagnose erfassen
Halten Sie fest, wie Ihre DNS-Servereinstellungen aussehen, bevor Sie Änderungen vornehmen. So bleibt alles nachvollziehbar und Sie können sauber zu einem zuvor funktionierenden Zustand zurückkehren.
📌 Anwendungsfälle: Vergleich mit künftigen Vorfällen und Wiederherstellung konsistenter DNS-Einstellungen.
📌 Voraussetzungen: PowerShell 5.1, Administratorrechte.
- Drücken Sie Win + R, geben Sie PowerShell ein und drücken Sie Strg + Umschalt + Eingabetaste.
- Führen Sie diesen Befehl aus, um zu prüfen, ob das DNS-Server-Modul vorhanden ist:
Get-Module -ListAvailable -Name DnsServer
- Falls es nicht installiert ist, führen Sie Folgendes aus:
Install-WindowsFeature -Name RSAT-DNS-Server
- Um die DNS-Einstellungen und die Diagnoseeinstellungen zu exportieren, verwenden Sie Folgendes:
- Als CSV-Datei:
Get-DnsServerDiagnostics | Export-Csv -Path "C:\DNS_Baseline\DnsDiagnostics.csv" -NoTypeInformation
„`
- Als JSON-Datei:
Get-DnsServerDiagnostics | ConvertTo-Json | Out-File "C:\DNS_Baseline\DnsDiagnostics.json"
💡Tipp: Legen Sie diese Dateien in einem eigenen Ordner für die Vierteljährliche Geschäftsüberprüfung (QBR) ab (zum Beispiel im QBR-/Incident-Ticket-Ordner).
- Prüfen Sie die DNS-Ereignisprotokollierung und speichern Sie das Ergebnis in einer Textdatei:
Get-WinEvent -ListLog *DNS* | Format-Table LogName, LogType, IsEnabled | Out-File "C:\DNS_Baseline\ETW_Status.txt"
„
- Speichern Sie alles in Ihrem Change-Management-Ordner, damit es schnell auffindbar ist.
Methode 3: Gezielte Diagnose aktivieren (so wenig wie möglich)
Aktivieren Sie nur die wirklich relevanten Diagnosen, um eine Protokollflut zu vermeiden und die Auswirkungen auf Produktivumgebungen gering zu halten. Dieser fokussierte Ansatz hilft, die Ursache von DNS-Ausfällen einzugrenzen, ohne Ihren Server zu überlasten.
📌 Anwendungsfälle: Effizientes Debuggen von DNS-Servern mit leistungsfähigen Diagnosebefehlen.
📌 Voraussetzungen: PowerShell 5.1, Administratorrechte und das DNS-Server-Modul
- Drücken Sie Win + R, geben Sie PowerShell ein und drücken Sie Strg + Umschalt + Eingabetaste.
- Ermitteln Sie, welche DNS-Ebene die Probleme verursacht:
💡Tipp: Nutzen Sie Protokolle, Fehlermeldungen oder nslookup/Resolve-DnsName, um die Suche einzugrenzen.
| Ebene | Symptome | Diagnose-Schwerpunkt |
| Namensauflösung | Clients können Namen nicht auflösen | Query, Receive, Send |
| Zonenübertragungen | Sekundärer DNS synchronisiert nicht | ZoneTransfer, Update |
| Dynamische Updates | DHCP-Clients registrieren sich nicht | Update, Write |
| Weiterleitungsprobleme | Externe Abfragen schlagen fehl | Forwarding, Query |
- Um die aktuell aktivierten Diagnose-Flags anzuzeigen, führen Sie Folgendes aus:
- Um die benötigten Flags zu aktivieren (zum Beispiel die Diagnose für Query und Send), führen Sie Folgendes aus:
Set-DnsServerDiagnostics -Query $true -Send $true
- Für tiefere Einblicke aktivieren Sie die Debug-Protokollierung vorübergehend, während Sie die DNS-Prüfung durchführen:
Set-DnsServerDebugLog -WriteDebugLog $true -MaxMBFileSize <MaxMBFile> -MaxMBPerDirectory <MaxMBDirectory>
„
Ersetzen Sie <MaxMBFile> durch die maximale Größe pro Protokolldatei (zum Beispiel 10).
Ersetzen Sie <MaxMBDirectory> durch die Gesamtgröße aller Protokolldateien (zum Beispiel 50).
- Um Ihre Änderungen zu dokumentieren, führen Sie diese Befehle aus:
- Zum Speichern Ihrer Änderungen:
Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Baseline\Diagnostics_After.csv" -NoTypeInformation
- Zur Dokumentation des Debug-Protokollstatus:
Get-DnsServerDebugLog | Out-File "C:\DNS_Baseline\DebugLog_Status.txt"
Methode 4: Ereignisse, Zonen und Vorgänge in Beziehung setzen
Verknüpfen Sie Ihre Diagnosedaten mit bestimmten DNS-Zonen oder Prozessen, um konkrete DNS-Probleme nachzuverfolgen und zu beheben. Auf diese Weise lassen sich etwa Indexierungsfehler interner Webdienste oder fehlgeschlagene Benutzerzugriffe in der Netzwerkinfrastruktur Ihrer Kund:innen erklären.
In diesem Schritt müssen Techniker:innen DNS-Ereignisprotokolle manuell überwachen, Probleme reproduzieren und Rekursionseinstellungen mit mehreren Skripten validieren. NinjaOne bündelt diesen Prozess auf einer einzigen Plattform, mit vorgefertigten Skripten für Einblicke auf Zonenebene und Alarmierungen für DNS-bezogene Bedingungen.
🥷🏻| Nutzen Sie bewährte und effiziente Skripte für schnellere Lösungszeiten und eine bessere Refinanzierung der Investition.
Entdecken Sie hier die Bibliothek mit benutzerdefinierten Skripten von NinjaOne.
Methode 5: Nachweise exportieren und zur Baseline zurückkehren
Sobald Sie Nachweise gesammelt haben, sichern Sie Ihre Ergebnisse, damit Sie sauber zurückrollen und bei einer Wiederholung des Problems schneller reagieren können.
📌 Anwendungsfälle: Erstellung eines wiederverwendbaren Playbooks und kürzere Reaktionszeiten bei DNS-Problemen.
📌 Voraussetzungen: PowerShell 5.1, Administratorrechte und das DNS-Server-Modul
- Drücken Sie Win + R, geben Sie PowerShell ein und drücken Sie Strg + Umschalt + Eingabetaste.
- Exportieren Sie Ihre Protokolle:
- DNS-Ereignisprotokolle in Ihren QBR-/Incident-Ticket-Ordner:
Get-WinEvent -LogName "Microsoft-Windows-DNS-Server/Audit" -MaxEvents 500 | Export-Csv "C:\DNS_Incident\Evidence_DNS_Events.csv" -NoTypeInformation
- Status des DNS-Debug-Protokolls:
Get-DnsServerDebugLog | Out-File "C:\DNS_Incident\DebugLog_Status.txt"
- Aktuelle Diagnoseeinstellungen:
Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Incident\Diagnostics_After.csv" -NoTypeInformation
- Zoneninformationen:
Get-DnsServerZone | Export-Csv "C:\DNS_Incident\ZoneInfo.csv" -NoTypeInformation
- Um eine vorübergehende Diagnoseprotokollierung zu deaktivieren, führen Sie Folgendes aus:
Set-DnsServerDebugLog -WriteDebugLog $false
- Um Ihre Diagnose manuell auf die Baseline zurückzusetzen, führen Sie diesen Befehl aus:
Set-DnsServerDiagnostics -Query $false -Send $false -Receive $false -ZoneTransfer $false -Update $false
- Führen Sie dieses Skript aus, um den aktuellen Zustand festzuhalten, bevor Sie zur Baseline zurückkehren:
Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Incident\Diagnostics_Final.csv" -NoTypeInformation
- Dokumentieren Sie Ursache und Lösung in einer Zusammenfassung als Textdatei:
„
Datum: 2025-10-31
Server: DNS01
Problem: DNS-Auflösung für externe Domains schlägt fehl
Ursache: Falsch konfigurierte Weiterleitung und veraltete Einträge in AD-integrierter Zone
Umgesetzte Lösung: Weiterleitungseinstellungen aktualisiert, Scavenging aktiviert, veraltete Einträge entfernt
Verwendete Diagnose: Get-DnsServerDiagnostics, Ereignisprotokolle, Zonenanalyse
„@ | Out-File "C:\DNS_Incident\Incident_Summary.txt"
Methode 6: DNS-Diagnose in den Regelbetrieb überführen (geplante Health-Checks und Alarmierungen)
Richten Sie abschließend dauerhafte Alarmierungen für DNS-Probleme wie NXDOMAIN-Spitzen oder Rekursions-Timeouts ein, um Ihre Mittlere Reparaturzeit (MTTR) zu senken. Diese Skripte können Sie über integrierte Werkzeuge wie die Aufgabenplanung zeitgesteuert ausführen oder über schlanke Lösungen wie NinjaOne.
Proaktive wöchentliche Prüfungen halten Ihre Domains nicht nur verfügbar und reaktionsschnell, sie verbessern auch die Transparenz über Kundennetzwerke hinweg und liefern QBR-taugliche Daten. So bleibt Ihrem MSP mehr Zeit für andere Projekte.
So unterstützt NinjaOne bei der DNS-Fehlersuche
Die Plattform von NinjaOne bietet aus einem zentralen Dashboard heraus den Überblick über all Ihre Endpunkte, einschließlich virtueller DNS-Server. So steigern Funktionen zur Fernüberwachung die Effizienz Ihrer DNS-Diagnose.
| Schritt | Ohne NinjaOne | Mit NinjaOne |
| Zuerst den Endpunkt-Pfad prüfen. | Manuelle Prüfung von Adapterkonfiguration, Gateway und DNS-Servern | Der NinjaOne-Agent automatisiert Leistungs- und Zustandsprüfungen der Endpunkte. |
| Eine Baseline der DNS-Diagnose erfassen. | Skripte werden manuell ausgeführt, Ergebnisse landen in freigegebenen Ordnern. | Skripte und Speicher von NinjaOne vereinfachen geplante Exporte. |
| Gezielte Diagnose aktivieren (so wenig wie möglich). | Flags müssen von Techniker:innen umgeschaltet und geprüft werden; Gefahr einer Protokollflut. | Eingegrenzte Diagnoseskripte mit Aufbewahrungssteuerung bereitstellen. |
| Ereignisse, Zonen und Vorgänge in Beziehung setzen. | Protokolle und Einstellungen müssen über mehrere Konsolen hinweg manuell abgeglichen werden. | Die Auswertungen von NinjaOne helfen beim Sammeln von Protokollen und beim Zuordnen von DNS-Ereignissen. |
| Nachweise exportieren und zur Baseline zurückkehren. | Protokollexport und Rollback von Hand; Gefahr menschlicher Fehler. | Bewährte NinjaOne-Skripte automatisieren die Beweissicherung und Rollbacks. |
| In den Regelbetrieb überführen (geplante Health-Checks und Alarmierungen). | Erfordert eigene Skripte und mehrere externe Überwachungstools. | Integrierte Alarmierung, geplante Diagnosen und laufende Zustandsüberwachung. |
PowerShell zur Behebung von DNS-Serverproblemen automatisieren
Mit PowerShell-Skripten kann das IT-Team die Fehlersuche am DNS-Server schnell ausrollen und dokumentieren. Kombiniert mit einem strukturierten Playbook und erstklassigem MDM können MSPs so Vertrauen bei Geschäftspartnern aufbauen, rund um die Uhr überwachen und ihre DNS-Diagnose kontinuierlich verfeinern.
Verwandte Themen:
- So finden Sie die unter Windows 11 verwendeten DNS-Server
- Was ist ein DNS-Resolver und wie richtet man ihn ein?
- Der Fehler „DNS-Server antwortet nicht“: Ursachen und Lösungen
- So erstellen Sie eigene RMM-Skripte, die DNS-, Patching- und BitLocker-Probleme automatisiert beheben
- DNS-Cache im Griff: DNS mit PowerShell leeren
