PowerShell: risolvere un nome DNS con Resolve-DnsName

Windows Server 2022Windows Server 2025

In questo tutorial spiegherò come utilizzare PowerShell per eseguire la risoluzione dei nomi DNS utilizzando il comando Resolve-DnsName.

Questo strumento integrato in Windows semplifica l’interrogazione dei server DNS per ottenere informazioni su un dominio o un indirizzo IP. Che si tratti di verificare la configurazione DNS, diagnosticare un problema di risoluzione o semplicemente comprendere il funzionamento del servizio, questo comando è uno strumento indispensabile per gli amministratori di sistema e di rete.

Vedremo come utilizzarlo, interpretare i risultati e sfruttare le sue diverse opzioni.

Per iniziare, per eseguire una risoluzione “semplice”, immettere il seguente comando:

Resolve-DnsName rdr-it.com

Come si può vedere, per impostazione predefinita il cmdlet restituisce i record DNS A e AAAA del nome di dominio passato come parametro utilizzando i server DNS configurati sulla scheda di rete Windows.

Se si desidera utilizzare un server DNS specifico, è possibile passare il parametro -Server con l’indirizzo IP del server DNS da utilizzare.

Resolve-DnsName rdr-it.com -Server 1.1.1.1

Questo parametro è particolarmente utile quando si gestisce la zona DNS di un dominio su un server interno ed esterno (su Internet) per verificare un record.

È anche possibile scegliere il tipo di record DNS desiderato utilizzando il parametro -type.

Resolve-DnsName rdr-it.com -Type MX

È anche possibile risolvere più nomi DNS con un singolo comando:

"rdr-it.com","git.rdr-it.com" | Resolve-DnsName -Type A -Server 1.1.1.1

Tabella delle opzioni comuni di Resolve-DnsName:

OptionDescriptionExemple
-TypeSpecifica il tipo di record DNS da interrogare (A, AAAA, MX, TXT, CNAME, NS, ecc.)Resolve-DnsName microsoft.com -Type MX
-ServerDefinisce il server DNS da utilizzare per la queryResolve-DnsName microsoft.com -Server 8.8.8.8
-DnsOnlyLimita la richiesta a una semplice risoluzione DNS, senza ricorrere a NetBIOS o LLMNR.Resolve-DnsName microsoft.com -DnsOnly
-NameConsente di specificare il nome di dominio (impostazione predefinita, spesso implicita)Resolve-DnsName -Name microsoft.com
-NoHostsFileIgnora il file hosts durante la risoluzioneResolve-DnsName microsoft.com -NoHostsFile
-QuickTimeoutRiduce i tempi di risposta (utile per una rapida risoluzione dei problemi)Resolve-DnsName microsoft.com -QuickTimeout

Documentazione ufficiale : https://learn.microsoft.com/en-us/powershell/module/dnsclient/resolve-dnsname?view=windowsserver2025-ps

In sintesi, il comando PowerShell Resolve-DnsName è uno strumento semplice ma potente per interrogare e diagnosticare la risoluzione DNS. Rappresenta un miglioramento significativo rispetto al precedente comando nslookup, offrendo risultati più completi e strutturati. Che si tratti di testare un dominio, identificare un problema di configurazione o semplicemente verificare la funzionalità dei server DNS, questo comando è indispensabile per l’uso quotidiano. E poiché si tratta di PowerShell, è molto facile automatizzare questi controlli in script personalizzati, risparmiando tempo e semplificando la gestione degli ambienti.

Infine, ecco uno script di esempio:

# Liste des domaines à vérifier
$domains = @(
    "google.com",
    "microsoft.com",
    "rdr-it.com"
)

# Fichier de sortie CSV
$outputFile = "C:\Temp\Resolve-DnsName-Results.csv"

# Tableau pour stocker les résultats
$results = @()

foreach ($domain in $domains) {
    try {
        $records = Resolve-DnsName -Name $domain -Type A -ErrorAction Stop
        foreach ($record in $records) {
            $results += [PSCustomObject]@{
                Domaine    = $domain
                Type       = $record.Type
                IPAdresse  = $record.IPAddress
                TTL        = $record.TTL
                ServeurDNS = $record.NameHost
            }
        }
    }
    catch {
        $results += [PSCustomObject]@{
            Domaine    = $domain
            Type       = "Erreur"
            IPAdresse  = "Non résolu"
            TTL        = ""
            ServeurDNS = ""
        }
    }
}

# Exporter les résultats en CSV
$results | Export-Csv -Path $outputFile -NoTypeInformation -Encoding UTF8

Write-Host "Résultats enregistrés dans $outputFile"
Romain Drouche
Romain Drouche
Architetto di sistema | MCSE: Infrastruttura di base
Esperto di infrastrutture IT con oltre 15 anni di esperienza sul campo. Attualmente Project Manager Sistemi e Reti ed esperto di Sicurezza dei Sistemi Informativi (ISS), utilizzo la mia competenza per garantire l'affidabilità e la sicurezza degli ambienti tecnologici.

Lascia un commento