Outils pour utilisateurs

Outils du site


fr:powershell:dns

Ceci est une ancienne révision du document !


Table des matières

DNS

Par cet exemple du DNS, je souhaite remontrer la différence entre une chaîne de caractères et un objet.

Demande initiale

Supposons que vous ayez à faire énormément de modifications DNS à cause d'un fournisseur qui change de serveur. On vous donne une liste d'enregistrements DNS de type A et il faut les modifier. Comme vous avez les bons réflexes, vous vous lancez dans deux opérations:

  1. Vérifier les données fournies par le demandeur: la confiance n'exclut jamais le contrôle.
  2. Fournir le rapport preCheck à votre commanditaire.

Pour l'exemple, partons de fichier initial suivant:

A_RecordProvider
google.cap1
google.comp1
google.frp2
google.totop3

Le piège

Si on décide d'aborder le défi en utilisant powershell, alors bien des gens seraient tenter de partir ainsi en utilisant nslookup:

dns_v1.ps1
Import-Csv -Path input_dns.csv | foreach {
  nslookup $_.A_Record 8.8.8.8
}

On obtient des choses horribles.

nslookup : Non-authoritative answer:
At line:1 char:1
+ nslookup google.ca 8.8.8.8
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Non-authoritative answer::String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
Server:  dns.google
Address:  8.8.8.8

Name:    google.ca
Addresses:  2607:f8b0:4020:805::2003
	  172.217.13.131

Cela pose les problèmes suivants:

  1. Les résultats s'affichent sur l'écran mais c'est très dur d'en extraire les informations.
  2. nslookup n'est pas une commande Powershell alors on n'obtient pas d'objet adapté à notre requête DNS
  3. Impossible d'utiliser les résultats pour créer notre fichier de preCheck

Le bon outil

Nous allons donc utiliser la commande DNS PowerShell: Resolve-Dns

<file powershell dns_v1.ps1 > Import-Csv -Path input_dns.csv | foreach {

nslookup $_.A_Record

}

fr/powershell/dns.1617631276.txt.gz · Dernière modification : 2021/04/05 10:01 de lonclegr