Script PowerShell : clean computer on AD

Active Directory logo

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

Laisser un commentaire