/
/

Come diagnosticare un server DNS Windows con PowerShell

di Team Ninja
How to Diagnose a Windows DNS Server with PowerShell blog banner image

Riepilogo

Questo post del blog NinjaOne offre un elenco completo di comandi CMD di base e un’analisi approfondita dei comandi di Windows con oltre 70 comandi cmd essenziali sia per i principianti che per gli utenti avanzati. La guida si propone si piegare in modo pratico i comandi del prompt dei comandi per la gestione dei file, la navigazione nelle directory, la risoluzione dei problemi di rete, le operazioni su disco e l’automazione, con esempi reali per migliorare la produttività. Che tu voglia imparare i comandi cmd fondamentali o padroneggiare gli strumenti avanzati della CLI di Windows, questa guida ti aiuterà a utilizzare il Prompt dei comandi in modo più efficace.

Punti chiave

  • Crea una baseline della diagnostica DNS: usa comandi PowerShell come Get-DnsServerDiagnostics ed esporta i dati in formato CSV/JSON.
  • Abilita una diagnostica DNS mirata: attiva solo i flag diagnostici necessari (-Query, -Send, -Receive, -ZoneTransfer) per evitare un sovraccarico di log mentre individui i problemi DNS.
  • Acquisisci ed esporta le evidenze DNS: usa i cmdlet PowerShell (Get-WinEvent, Get-DnsServerZone, Export-Csv) per raccogliere i log, correlare gli eventi e documentare le cause profonde.
  • Riporta i server DNS alla baseline: disattiva la diagnostica in sicurezza e ripristina le impostazioni predefinite con Set-DnsServerDebugLog e Set-DnsServerDiagnostics.
  • Automatizza il monitoraggio dello stato del DNS: pianifica diagnostica e avvisi ricorrenti con PowerShell o strumenti RMM come NinjaOne per ridurre il tempo medio di riparazione.

Anche se è disponibile un’interfaccia grafica, imparare i comandi PowerShell per il DNS di Windows e come verificarne la diagnostica permette al tuo MSP di automatizzare i processi ed eseguire un’analisi delle cause profonde (RCA) con il minimo impatto, aumentando la resilienza contro gli attacchi al DNS.

Questo articolo spiega come abilitare una diagnostica mirata, creare una baseline, registrare le evidenze e annullare le modifiche al server con comandi PowerShell specifici e le funzionalità RMM.

Come usare PowerShell per risolvere i problemi DNS

I passaggi seguenti offrono un metodo strutturato per rispondere alla domanda “Come si risolve un problema di DNS?”

📌Prerequisiti:

  • PowerShell con privilegi amministrativi su un sistema dotato del modulo DNS Server (da remoto o sull’host DNS).
  • Accesso al ruolo DNS Server e ai canali eventi pertinenti.
  • Modifica della policy di Windows o della policy Safe-to-Enable Diagnostics.
  • Repository con versionamento per le esportazioni JSON/CSV della baseline.

Consulta il metodo di triage degli endpoint descritto per primo in Come diagnosticare un server DNS Windows con PowerShell.

Metodo 1: parti dal triage del percorso endpoint

Prima di addentrarti nella diagnostica DNS lato server, devi escludere eventuali configurazioni errate del client che possono incidere sull’uptime e sull’affidabilità del server. Prima di proseguire, procedi così:

  • Verifica che la scheda di rete del client riesca a stabilire una connessione con il gateway e con i server DNS.
  • Controlla che i tipi di record di dominio corrispondano ai rispettivi indirizzi IP (ad esempio, un record AAAA associa un nome di dominio a un indirizzo IPv6).
  • Analizza la cache DNS alla ricerca di segnali utili per la risoluzione dei problemi (ad esempio percorsi di query errati o un time-to-live troppo breve).

Metodo 2: acquisisci una baseline della diagnostica DNS

Registra la configurazione del server DNS prima di applicare qualsiasi modifica. In questo modo garantisci la tracciabilità e un ripristino pulito, nel caso in cui tu debba tornare a uno stato precedente funzionante.

📌 Casi d’uso: confrontare la configurazione con incidenti futuri e ripristinare impostazioni DNS coerenti.

📌 Prerequisiti: PowerShell 5.1, privilegi di amministratore.

  1. Premi Win + R, digita PowerShell e premi Ctrl + Maiusc + Invio.
  2. Esegui questo comando per verificare di avere il modulo DNS Server:

Get-Module -ListAvailable -Name DnsServer

    1. Se non è installato, esegui quanto segue:

Install-WindowsFeature -Name RSAT-DNS-Server

  1. Per esportare le impostazioni del DNS e della diagnostica da verificare, usa quanto segue:
    1. Come file CSV:

Get-DnsServerDiagnostics | Export-Csv -Path "C:\DNS_Baseline\DnsDiagnostics.csv" -NoTypeInformation

“`

    1. Come file JSON:

Get-DnsServerDiagnostics | ConvertTo-Json | Out-File "C:\DNS_Baseline\DnsDiagnostics.json"

💡Consiglio: conserva questi file in una cartella dedicata alla business review trimestrale (ad esempio la cartella QBR/ticket dell’incidente).

  1. Controlla il tracciamento degli eventi DNS e salvalo in un file di testo:

Get-WinEvent -ListLog *DNS* | Format-Table LogName, LogType, IsEnabled | Out-File "C:\DNS_Baseline\ETW_Status.txt"

“

  1. Salva tutto nella cartella di gestione delle modifiche, così da averlo sempre a portata di mano.

Metodo 3: abilita una diagnostica mirata (il minimo indispensabile)

Abilita solo la diagnostica pertinente per evitare un sovraccarico di log e ridurre al minimo l’impatto sugli ambienti di produzione. Questo approccio mirato aiuta a individuare la causa profonda dei problemi DNS senza sovraccaricare il server.

📌 Casi d’uso: eseguire il debug dei server DNS in modo efficiente grazie a comandi diagnostici potenti.

📌 Prerequisiti: PowerShell 5.1, privilegi di amministratore e il modulo DNS Server

  1. Premi Win + R, digita PowerShell e premi Ctrl + Maiusc + Invio.
  2. Individua quale livello del DNS sta causando problemi:

💡Consiglio: usa i log, i messaggi di errore o nslookup/Resolve-DnsName per circoscrivere la ricerca.

LivelloSintomiAmbito diagnostico
Risoluzione delle queryI client non riescono a risolvere i nomiQuery, Receive, Send
Trasferimenti di zonaIl DNS secondario non si sincronizzaZoneTransfer, Update
Aggiornamenti dinamiciI client DHCP non si registranoUpdate, Write
Problemi di forwardingLe ricerche esterne non vanno a buon fineForwarding, Query
  1. Per visualizzare i flag diagnostici attualmente abilitati, esegui quanto segue:

Get-DnsServerDiagnostics

  1. Per abilitare i flag specifici che ti servono (ad esempio la diagnostica Query e Send), esegui quanto segue:

Set-DnsServerDiagnostics -Query $true -Send $true

  1. Per un’analisi più approfondita, abilita temporaneamente il debug logging mentre configuri il DNS e ne verifichi lo stato:

Set-DnsServerDebugLog -WriteDebugLog $true -MaxMBFileSize <MaxMBFile> -MaxMBPerDirectory <MaxMBDirectory>

“

Sostituisci <MaxMBFile> con la dimensione massima per ogni file di log (ad esempio 10).

Sostituisci <MaxMBDirectory> con la dimensione complessiva di tutti i file di log (ad esempio 50).

  1. Per documentare le modifiche, esegui questi comandi:
    1. Per salvare le modifiche:

Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Baseline\Diagnostics_After.csv" -NoTypeInformation

    1. Per documentare lo stato del log di debug:

Get-DnsServerDebugLog | Out-File "C:\DNS_Baseline\DebugLog_Status.txt"

Metodo 4: correla eventi, zone e operazioni

Collega i dati diagnostici a zone o processi DNS specifici per individuare e risolvere problemi puntuali. Questo ti aiuta a spiegare errori di indicizzazione dei servizi web interni o mancati accessi degli utenti nell’infrastruttura di rete del cliente.

Questa fase richiede che i tecnici monitorino manualmente i log degli eventi DNS, riproducano i problemi e convalidino le impostazioni di ricorsione con più script. NinjaOne semplifica il processo su un’unica piattaforma, grazie a script predefiniti per l’analisi a livello di zona e ad avvisi attivati da condizioni legate al DNS.

🥷🏻| Usa script collaudati ed efficienti per risolvere i problemi più in fretta e ottenere un ROI migliore.

Scopri la libreria di script personalizzati di NinjaOne.

Metodo 5: esporta le evidenze e torna alla baseline

Una volta raccolte le evidenze, salva i risultati per poter effettuare rollback puliti e correzioni più rapide, nel caso in cui il problema si ripresenti in futuro.

📌 Casi d’uso: creare un playbook ripetibile e migliorare i tempi di risposta ai problemi legati al DNS.

📌 Prerequisiti: PowerShell 5.1, privilegi di amministratore e il modulo DNS Server

  1. Premi Win + R, digita PowerShell e premi Ctrl + Maiusc + Invio.
  2. Esporta i log:
    1. I log degli eventi DNS nella cartella QBR/ticket dell’incidente:

Get-WinEvent -LogName "Microsoft-Windows-DNS-Server/Audit" -MaxEvents 500 | Export-Csv "C:\DNS_Incident\Evidence_DNS_Events.csv" -NoTypeInformation

    1. Lo stato del log di debug DNS:

Get-DnsServerDebugLog | Out-File "C:\DNS_Incident\DebugLog_Status.txt"

    1. Le impostazioni diagnostiche correnti:

Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Incident\Diagnostics_After.csv" -NoTypeInformation

    1. Le informazioni sulle zone:

Get-DnsServerZone | Export-Csv "C:\DNS_Incident\ZoneInfo.csv" -NoTypeInformation

  1. Per disattivare la registrazione diagnostica temporanea, esegui quanto segue:

Set-DnsServerDebugLog -WriteDebugLog $false

  1. Per riportare manualmente la diagnostica alla baseline, esegui questo comando:

Set-DnsServerDiagnostics -Query $false -Send $false -Receive $false -ZoneTransfer $false -Update $false

  1. Esegui questo script per acquisire lo stato attuale prima di tornare alla baseline:

Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Incident\Diagnostics_Final.csv" -NoTypeInformation

  1. Documenta la causa profonda e la soluzione in un riepilogo su file di testo:

“

Date: 2025-10-31
Server: DNS01
Issue: errore di risoluzione DNS per i domini esterni
Root Cause: forwarder configurato in modo errato e record obsoleti nella zona integrata in AD
Fix Applied: impostazioni del forwarder aggiornate, scavenging abilitato, record obsoleti eliminati
Diagnostics Used: Get-DnsServerDiagnostics, log eventi, analisi delle zone
“@ | Out-File "C:\DNS_Incident\Incident_Summary.txt"

Metodo 6: rendi operativa la diagnostica DNS e i relativi controlli (verifiche pianificate e avvisi)

Infine, configura avvisi continuativi per problemi DNS come picchi di NXDOMAIN o timeout di ricorsione, così da ridurre il tempo medio di riparazione (MTTR). Puoi pianificare l’esecuzione di questi script con strumenti integrati come l’Utilità di pianificazione, oppure affidarti a soluzioni più snelle come NinjaOne.

Oltre a mantenere i domini integri e reattivi, i controlli settimanali proattivi migliorano la visibilità sulle reti dei clienti e preparano dati utili per la business review trimestrale, lasciando al tuo MSP più tempo da dedicare ad altri progetti.

Come NinjaOne risolve i problemi di DNS e ne verifica lo stato

La piattaforma NinjaOne offre una visione d’insieme di tutti i tuoi endpoint, inclusi i server DNS virtuali, da un’unica dashboard centralizzata. Ecco come le funzionalità di monitoraggio remoto possono rendere più efficiente la diagnostica del DNS e i relativi controlli.

PassaggioSenza NinjaOneCon NinjaOne
Parti dal triage del percorso endpoint.Controlli manuali su configurazione della scheda di rete, gateway e server DNSL’agente NinjaOne automatizza i controlli di prestazioni e integrità degli endpoint.
Acquisisci una baseline della diagnostica DNS.Script eseguiti manualmente e risultati archiviati in cartelle condivise.Gli script e l’archiviazione di NinjaOne semplificano le esportazioni pianificate.
Abilita una diagnostica mirata (il minimo indispensabile).I flag devono essere attivati e verificati dai tecnici, con il rischio di generare troppi log.Distribuisci script diagnostici circoscritti con controlli di conservazione.
Correla eventi, zone e operazioni.Confronto manuale di log e impostazioni su più console.Gli insight di NinjaOne ti aiutano a raccogliere i log e a correlare gli eventi DNS.
Esporta le evidenze e torna alla baseline.Esportazione dei log e rollback manuali, con rischio di errore umano.Gli script collaudati di NinjaOne automatizzano la raccolta delle evidenze e i rollback.
Rendi tutto operativo (verifiche pianificate e avvisi).Richiede script personalizzati e più strumenti di monitoraggio esterni.Avvisi integrati, diagnostica pianificata e monitoraggio continuo dello stato di salute.

Automatizza PowerShell per risolvere i problemi del server DNS

Gli script PowerShell permettono al personale IT di distribuire e documentare rapidamente la risoluzione dei problemi del server DNS. Combinando questi script con un playbook strutturato e un MDM di primo livello, gli MSP possono costruire un rapporto di fiducia con i partner commerciali, garantire una supervisione 24 ore su 24 e perfezionare la diagnostica DNS.

Argomenti correlati:

FAQs

PowerShell offre il controllo da riga di comando per analizzare le prestazioni del DNS, rilevare configurazioni errate e automatizzare la diagnostica: questo consente una risoluzione dei problemi più rapida e tempi di inattività minimi rispetto all’uso di Gestione DNS con interfaccia grafica.

Una baseline della diagnostica DNS registra le impostazioni DNS e i log correnti del server prima di apportare modifiche. Garantisce la tracciabilità, consente rollback puliti e aiuta a confrontare le configurazioni durante gli incidenti futuri.

Usa Set-DnsServerDiagnostics per abilitare flag diagnostici specifici come -Query, -Send e -ZoneTransfer. In questo modo puoi eseguire un debug mirato senza generare dati di log superflui.

Esegui comandi come Get-WinEvent e Export-Csv per raccogliere i log degli eventi DNS, lo stato della diagnostica e le configurazioni delle zone in file strutturati, utili per audit, analisi delle cause profonde (RCA) o documentazione di conformità.

Usa Set-DnsServerDebugLog -WriteDebugLog $false e reimposta i flag con i parametri di Set-DnsServerDiagnostics impostati su $false. In questo modo ripristini le configurazioni di baseline ed eviti una raccolta dati eccessiva.

Ti potrebbe interessare anche

Pronto a semplificare le parti più complesse dell'IT?