Exemple de script pour nettoyer les vieux PC de l’annuaire Active Directory
#=================================
# Script pour purger les PC de plus de 60 jours
#
# Modifier les variables du scripts :
# $DaysInactive
# $CSVfile : indiquer le nom du Dc
# $RapportTxt : indiquer le path d’accès complet vers votre fichier .txt de sortie
# $MailTo : adresse email du destinataire
# $MailCC : adresse email de la copie carbone
# $MailFrom : adresse email de l’expéditeur
# $MailSmtp : serveur smtp pour l’envoi
#=================================
#=================================
# Variables
#=================================
$DaysInactive = 60 #valeur maximum de jour
$Time = (Get-Date).Adddays(-($DaysInactive))
$CSVfile = « c:\temp\Old_Computer_ToDel.csv »
$iM = 0 # Compteur de machine delete / reset à « 0 » en début de boucle pour le compte
$TodayTime = Get-Date -UFormat %d-%m-%Y
$RapportTxt = ‘c:\temp\’ + $TodayTime + ‘_log_purge_AD.txt’
#==============En tete du rapport a generer===================
echo « #================================= » > $RapportTxt
echo « # Report on « $TodayTime >> $RapportTxt
echo « #================================= » >> $RapportTxt
echo » Computer desactivated : » >> $RapportTxt
#================================= Récupération des vieilles machines===================
Import-module ActiveDirectory
# Récupération de toutes les machines AD dont la dernière connexion est inferieur au temps indique et dont le nom ne commence pas par SRV et export en CSV
$ComputerToDel = Get-ADComputer -Filter {(LastLogonTimeStamp -lt $Time) -and (Name -notlike « SRV* ») -Properties Name, LastLogonTimeStamp | export-csv $CSVfile -notypeinformation
#==============Traitement de l’extraction en CSV===================
$CSVImport = Import-Csv $CSVfile -Delimiter « , »
ForEach ($Ordinateur in $CSVImport){
$Name = $($Ordinateur.Name)
echo $Name >> $RapportTxt
#================================= Désactivation
Disable-ADComputer -identity $Name -Confirm:$false
$iM++ # incrementer le compteur
}
#================================= Fin du rapport a générer ===================
echo « #================================= » >> $RapportTxt
echo $iM « Computer have been Desactivated » >> $RapportTxt
echo « #================================= » >> $RapportTxt
#================================= Envoi par email du rapport===================
$MailTo = « destinataire@test.com »
$MailCC = « copiecarbone@test.com »
$MailFrom = « Machine desactive de l’AD < expediteur@test.com>
$MailSmtp = « smtp.domain.com »
Send-MailMessage -From $MailFrom -To $MailTo -CC $MailCC -Subject « AD – Purge des Workstations » -Body « Voir le fichier de log en PJ » -Attachment $RapportTxt -SmtpServer $MailSmtp