Script PowerShell : clean computer on AD

Active Directory logo

Exemple de script pour nettoyer les vieux PC de l’annuaire Active Directory

Voici un script PowerShell pour purger les PC de plus de 60 jours dans votre base Active Directory

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

C’est partie pour le script

#=================================
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

Laisser un commentaire