Powershell: faire des opérations sur des éléments dans un fichier csv

Exemple concret: je désire connaitre la liste des Record DNS de type TXT pour une série de domaine

  1. L’opération que je désire effectuer sur un domaine précis:

    En powershell : Resolve-DnsName permet de résoudre un nom DNS

    Resolve-DnsName -Name leweb.eu -Type TXT

    La commande va fournir la liste des records de type TXT pour le domaine leweb.eu (en interrogeant les serveurs DNS selon la configuration du client)

  2. Charger le fichier csv contenant la liste des domaines

    La commande Import-CSV permet de charger un fichier CSV

    $DomainList = Import-Csv '.\Domains-List.csv'

    La commande va charger le contenu du fichier CSV dans la « variable » $DomainList (qui sera donc un tableau, ou plutôt une collection).

    Pour vérifier le résultat, vous pouvez afficher le contenu du CSV en utilisant la commande:

    foreach ($Domain in $DomainList) {echo $Domain }
  3. Afficher objet par objet le contenu du CSV

    $DomainList | ForEach-Object {$_}

    Cette commande affiche également le contenu du CSV en faisant l’affichage de chaque objet contenu dans l’objet de départ

  4. $DomainList | ForEach-Object {Resolve-DnsName -Name $_.Domain -Type « TXT » }

Un pas plus loin: ce qui m’intéresse c’est la liste de domaines qui ont un record TXT lié à la vérification google:

$DomainList | ForEach-Object {Resolve-DnsName -Name $_.Domain -Type « TXT » } |Where-Object {$_.strings -match « google » }