Microsoft Windows PowerShell: Identifying Unused Active Directory Accounts

Written by Joseph MICACCIA - -
itskills.micaccia.eu:Microsoft Windows PowerShell

PowerShell is particularly suitable for computer account administration tasks.

Here is a powershell script to identify the accounts of the AD that have not been used for three months.

Executed in a scheduled monthly task, it automatically sends, by email, the list of unused user accounts for some time (in this case 3 months).

Here's the script:

##############################################################################
# Auteur de la création....... : Joseph MICACCIA
# Date de création............ : 17/04/2015
# Description................. :
# Ce script fait les actions suivantes :
#     1 Dans l'AD, recherche des comptes inutilisés depuis 90 jours, au moins
#     2 Export des comptes inutilisés, dans un fichier csv
#     3 Envoi des résultats, par mail
##############################################################################
# Auteur de la modification... : Joseph MICACCIA
# Date de modification........ : 26/05/2015
# Description................. : Ajout d'un filtre pour les comptes actifs uniquement
##############################################################################

# Ajout du module Active Directory
import-module activedirectory
 
# Variable pour le nombre de jours d'inactivités
$Giorni = 90   
 
# Calcul de l'intervalle de temps
$time = (Get-Date).Adddays(-($Giorni))   
 
# Nom du fichier CSV
$FilaCsv = "c:\Scripts\GetUnusedUsersAccounts.csv"   
 
# Recherche des comptes inutilisés
Get-ADUser -Filter {enabled -eq "true" -and LastLogonTimeStamp -lt $time} -Properties LastLogonTimeStamp | select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} | export-csv $FilaCsv -Encoding UTF8 -notypeinformation
 
# Préparation des paramètres de messagerie
$From = "Audit-AD <noreply@micaccia.com>" 
$To = "Equipe informatique technique <technique@micaccia.com>" 
$Attachment = $FilaCsv 
$Subject = "Comptes utilisateurs non ouverts depuis 90 jours au moins" 
$Body = "Ci-jointe, la liste des comptes actifs inutilisés depuis 90 jours au moins" $SmtpServer = "smtp.sfrbusinessteam.fr" 
$SmtpPort = "25"   
 
# Envoi du mail
Send-MailMessage -From $From -to $To -Subject $Subject -Body $Body -SmtpServer $SmtpServer -port $SmtpPort -Attachments $Attachment

 

itskills.micaccia.eu:download

 

itskills.micaccia.eu:download PDF

#1  - Arnold said :

Danke

Reply

Rss feed of the article's comments

Comments are closed.