From f0d6701cd21ab2dc83ca1631ebcaad435888e3f0 Mon Sep 17 00:00:00 2001 From: Nicolas Lang Date: Sat, 16 Dec 2023 17:06:25 +0100 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20script?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Active Directory/dns_server_check.ps1 | 57 ++++++++++++++++++++++++++ Active Directory/inactive_ad_users.ps1 | 1 + 2 files changed, 58 insertions(+) create mode 100644 Active Directory/dns_server_check.ps1 diff --git a/Active Directory/dns_server_check.ps1 b/Active Directory/dns_server_check.ps1 new file mode 100644 index 0000000..7458997 --- /dev/null +++ b/Active Directory/dns_server_check.ps1 @@ -0,0 +1,57 @@ +#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 ";" \ No newline at end of file diff --git a/Active Directory/inactive_ad_users.ps1 b/Active Directory/inactive_ad_users.ps1 index 036e288..f5fd024 100644 --- a/Active Directory/inactive_ad_users.ps1 +++ b/Active Directory/inactive_ad_users.ps1 @@ -1,5 +1,6 @@ #Script créé par Nicolas Lang - Sous licence CC-BY-SA #https://nicolaslang.fr + import-module activedirectory $utilisateurs = Get-ADUser -Filter * -Properties * $actifs = $utilisateurs | Where-Object {$_.enabled -eq $true}