Skip to content

La vie rêvée d’Akim

…ou le zèbre qui voulait être un homme

  • Style de vie
  • Informatique
  • Photographie
  • Musique
  • English (US)English (US)
  • FrançaisFrançais

Récupérer les serveurs DNS sous Windows par Powershell

Posted on Thursday 24 September 2015 by Akim

Aujourd’hui, un petit script pour résoudre une question simple mais fastidieuse quand on a plusieurs centaines de serveurs à gérer.

La donnée est la suivante: J’ai besoin de récupérer les serveurs DNS paramétrés de chaque serveur Windows dans l’environnement. J’ai une liste de nom d’hôtes à disposition. Autrement, il est également possible de récupérer la liste directement depuis votre serveur DNS pour autant que celui-ci soit correctement organisé, mais ce n’est pas le sujet de cet article.

Ce script va interroger chaque serveur dans le fichier winsrv.txt (un serveur par ligne) et récupérer par WMI l’adresse IP du serveur, l’ordre de recherche DNS (qui fourni donc la liste des serveurs DNS dans l’ordre), et le status du client DHCP.

Le résultat est un fichier CSV appelé result.txt qu’il sera facile de traiter dans Excel.

# Clear the display
Clear-Host
 
# Get list of hosts
$servers = Get-Content 'winsrv.txt'
 
# Define column headers
$result="hostname;ipaddress;dnssearchorder;DHCPEnabled"
$result | Out-File result.txt
 
# Loop through each host    
ForEach ($server in $servers) {
 
# Get Network configuration details from the host
   $details = Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName $server
 
# Add hostname to the result string
#    $result=$result+"$server;"
    $result="$server;"
 
# Add host IP address to the result string
    $string=$($details.IPAddress| where {$_ -notmatch ":"})+";"
    $result=$result+$string
 
# Add host DNS search order to the result string
    $string=($($details.DNSServerSearchOrder)  -as [string])+";"
    $result=$result+$string
 
# Add host DNS search order to the result string
    $string=($($details.DHCPEnabled)  -as [string])
    $result=$result+$string
 
# Write host result in text file
    $result | Out-File result.txt -Append
    }
Posted in InformatiqueTagged dns, PowerShell, windows

Post navigation

Rêve brisé
Le régime paléo et moi

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Proudly powered by WordPress | Theme: micro, developed by DevriX.