57 lines
2.5 KiB
PowerShell
57 lines
2.5 KiB
PowerShell
#Script créé par Nicolas Lang - Sous licence CC-BY-SA
|
|
#https://nicolaslang.fr
|
|
|
|
#Ajout du module AD pour les rebelles de la V1/ V2 ;)
|
|
ipmo activedirectory
|
|
#Obtention de la liste des serveurs
|
|
$serveurs = Get-ADComputer -SearchBase "OU=Servers,DC=domaine,DC=local" -filter * | Select-Object -ExpandProperty name
|
|
#Creation du tableau qui stockera les données
|
|
$tableau = New-Object System.Collections.ArrayList
|
|
#Fonction utilisée pour stocker les données ET les erreurs
|
|
function addarray([string]$serveur,[string]$description=$null,[string]$serveur1=$null,[string]$serveur2=$null)
|
|
{
|
|
#définition de l'objet envoyé dans le tableau
|
|
$object = [PSCUSTOMOBJECT]@{
|
|
"Ordinateur" = $serveur
|
|
"Carte réseau" = $description
|
|
"Serveur 1" = $serveur1
|
|
"Serveur 2" = $serveur2
|
|
}
|
|
return $object
|
|
}
|
|
foreach ($serveur in $serveurs)
|
|
{
|
|
Write-Host "Analyse de $serveur"
|
|
#On teste si ne réponds pas au ping. Si c'est le cas, on stocke l'erreur dans le tableau
|
|
if (!(Test-Connection $serveur -Count 1))
|
|
{
|
|
$tableau.Add($(addarray -serveur $serveur -serveur1 $($Error[0].Exception.Message) -serveur2 "Erreur Ping"))
|
|
}
|
|
else
|
|
{
|
|
#Cette commande obtient la configuration de différentes cartes réseau. Pour filtrer les cartes actives, il suffit de savoir si l'adresse IP n'est pas vide.
|
|
$configuration = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $serveur | where-object {$_.ipaddress -ne $null}
|
|
#Si la derniere commande renvoie une erreur, on enregistre cette erreur
|
|
if (!$?)
|
|
{
|
|
$tableau.Add($(addarray -serveur $serveur -serveur1 $($Error[0].Exception.Message )-serveur2 "Erreur"))
|
|
}
|
|
else
|
|
{
|
|
foreach ($entry in $configuration)
|
|
{
|
|
#Si aucun DNS n'est renseigné sur la carte, alors on le précise dans le tableau
|
|
if (!($($entry.DNSServerSearchOrder)))
|
|
{
|
|
$tableau.Add($(addarray -serveur $serveur -description $($entry.caption) -serveur1 "Aucun DNS" -serveur2 "Aucun DNS"))
|
|
}
|
|
else
|
|
{
|
|
$tableau.Add($(addarray -serveur $serveur -description $($entry.caption) -serveur1 $($entry.dnsserversearchorder[0]) -serveur2 $($entry.dnsserversearchorder[1])))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Et on exporte le tout sur le bureau :)
|
|
$tableau | Export-Csv -Path $([environment]::GetFolderPath("Desktop")+"\DNS_SERVEURS_"+$(get-date -Format mm_dd_yyyy)+".csv") -NoTypeInformation -Encoding UTF8 -Delimiter ";" |