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.
- Premi Win + R, digita PowerShell e premi Ctrl + Maiusc + Invio.
- Esegui questo comando per verificare di avere il modulo DNS Server:
Get-Module -ListAvailable -Name DnsServer
- Se non è installato, esegui quanto segue:
Install-WindowsFeature -Name RSAT-DNS-Server
- Per esportare le impostazioni del DNS e della diagnostica da verificare, usa quanto segue:
- Come file CSV:
Get-DnsServerDiagnostics | Export-Csv -Path "C:\DNS_Baseline\DnsDiagnostics.csv" -NoTypeInformation
“`
- 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).
- 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"
“
- 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
- Premi Win + R, digita PowerShell e premi Ctrl + Maiusc + Invio.
- Individua quale livello del DNS sta causando problemi:
💡Consiglio: usa i log, i messaggi di errore o nslookup/Resolve-DnsName per circoscrivere la ricerca.
| Livello | Sintomi | Ambito diagnostico |
| Risoluzione delle query | I client non riescono a risolvere i nomi | Query, Receive, Send |
| Trasferimenti di zona | Il DNS secondario non si sincronizza | ZoneTransfer, Update |
| Aggiornamenti dinamici | I client DHCP non si registrano | Update, Write |
| Problemi di forwarding | Le ricerche esterne non vanno a buon fine | Forwarding, Query |
- Per visualizzare i flag diagnostici attualmente abilitati, esegui quanto segue:
- Per abilitare i flag specifici che ti servono (ad esempio la diagnostica Query e Send), esegui quanto segue:
Set-DnsServerDiagnostics -Query $true -Send $true
- 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).
- Per documentare le modifiche, esegui questi comandi:
- Per salvare le modifiche:
Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Baseline\Diagnostics_After.csv" -NoTypeInformation
- 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.
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
- Premi Win + R, digita PowerShell e premi Ctrl + Maiusc + Invio.
- Esporta i log:
- 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
- Lo stato del log di debug DNS:
Get-DnsServerDebugLog | Out-File "C:\DNS_Incident\DebugLog_Status.txt"
- Le impostazioni diagnostiche correnti:
Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Incident\Diagnostics_After.csv" -NoTypeInformation
- Le informazioni sulle zone:
Get-DnsServerZone | Export-Csv "C:\DNS_Incident\ZoneInfo.csv" -NoTypeInformation
- Per disattivare la registrazione diagnostica temporanea, esegui quanto segue:
Set-DnsServerDebugLog -WriteDebugLog $false
- Per riportare manualmente la diagnostica alla baseline, esegui questo comando:
Set-DnsServerDiagnostics -Query $false -Send $false -Receive $false -ZoneTransfer $false -Update $false
- Esegui questo script per acquisire lo stato attuale prima di tornare alla baseline:
Get-DnsServerDiagnostics | Export-Csv "C:\DNS_Incident\Diagnostics_Final.csv" -NoTypeInformation
- 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.
| Passaggio | Senza NinjaOne | Con NinjaOne |
| Parti dal triage del percorso endpoint. | Controlli manuali su configurazione della scheda di rete, gateway e server DNS | L’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:
- Come individuare i server DNS utilizzati in Windows 11
- Che cos’è un resolver DNS e come configurarlo
- Che cos’è l’errore “Il server DNS non risponde” e come risolverlo
- Come creare script RMM di remediation personalizzati per correggere automaticamente problemi di DNS, patching e BitLocker
- Gestione della cache DNS: come svuotare il DNS con PowerShell
