diff --git a/Active Directory/time_diff_check.ps1 b/Active Directory/time_diff_check.ps1 new file mode 100644 index 0000000..5220a5a --- /dev/null +++ b/Active Directory/time_diff_check.ps1 @@ -0,0 +1,52 @@ +#Script créé par Nicolas Lang - Sous licence CC-BY-SA +#https://nicolaslang.fr + +#Liste des serveurs à analyser +$serveurs = @("DC1","DC2","DC3","hyperv1","hyperv2","hyperv3","hyperv4","lotus1","lotus2") +#création de la variable qui stockera les résultats +$table = New-Object System.Collections.ArrayList +#L'heure de réference. C'est l'instant T qui définira l'heure exacte sur les serveurs en retirant le temps de fonctionnement du script +$heurereference = get-date + +#Pour chaque serveur dans la liste... +foreach ($serveur in $serveurs) + { + write-host "Récupération de $serveur" + $resultat = $null + #Nous obtenons l'heure du serveur + $temps = Get-WmiObject win32_localtime -ComputerName $serveur + #Nous reprenons l'heure actuelle + $heurecompare = Get-Date + #Enregistrement d'un message d'erreur s'il en est + if (!$temps) + { + $resultat = "Erreur $($error[0].exception.message)" + } + else + { + #Nous formatons la valeur pour lui donner le format JJ/MM/AAAA hh:mm:ss + $resultat = $(("{0:D2}" -f $temps.day) + "/" + ("{0:D2}" -f $temps.month) + "/" + [string]$temps.year + " " + ("{0:D2}" -f $temps.hour) +":"+ ("{0:D2}" -f $temps.minute)+":" + ("{0:D2}" -f $temps.second)) + #Nous la définissons en format date, et nous retirons le nombre de ticks passés. La méthode Addticks() est utilisée, mais en précisant une valeur négative elle retirera des ticks, comme c'est le cas ici + $resultat = (get-date $resultat).addticks(($heurereference - $heurecompare).Ticks)) + + } + #Nous ajoutons dans la table un objet qui correspond au nom du serveur et à l'heure recalculée + $table.Add([PSCUSTOMOBJECT]@{ + "Serveur" = $serveur + "Heure" = $resultat + }) + + + } + #Une fois tout ceci fini, nous avons un joli fichier CSV sur le bureau avec les informations récoltées + $table | Export-Csv -Path $(([environment]::GetFolderPath("Desktop") + "\"+$(get-date -Format yyyyMMdd_HHmm)+"_date_heure_serveurs.csv")) -NoTypeInformation -Delimiter ";" -Force + if ($?) + { + "fichier exporté sur le bureau" + } + else + { + "Erreur lors de la création du fichier" + $table + } + $table \ No newline at end of file