Articles Tagués ‘ActiveDirectory PowerShell Module’

 

Dans le cadre d’un audit Active Directory, vous pouvez être amené à lister les comptes Utilisateurs et/ou Ordinateurs AD inactifs, le terme « Inactif » ici, faire référence à l’absence d’activité du compte User ou Computer : pas d’authentification sur le réseau depuis XXX temps.

En dehors des audits AD, lister régulièrement les objets AD (User & Computer) inactifs est une opération (Monthly Operation) que je recommande à tous mes clients, une Task importante à ajouter dans la ToDolist des Admins /Ings Systèmes MS.

Le but étant d’optimiser votre annuaire AD en faisant un CleanUp AD de manière régulière : suppression des objets AD inactifs correspondant à des personnes (salariés, stagiaires, prestataires externes …) ne faisant plus parti de l’entreprise.

Les consoles et outils graphiques intégrés dans Windows Server ne permettent pas d’effectuer ce genre d’opération, en revanche certains outils en ligne de commande le permettent.

Quels Outils utilisés ?

La liste complète des objets « User & Computer » inactifs peut être obtenue via l’utilisation des deux principaux outils suivants :

 DSQuery : outil en ligne de commande (natif)
 Module PowerShell « ActiveDirectory » fourni avec le rôle ADDS ou les outils RSAT ADDS

Note 

Dans les exemples ci-après, un compte utilisateur ou ordinateur est considéré comme étant « inactif » si ce dernier n’a pas présenté d’activité pendant les 30 derniers jours.

#Méthode N°1 : via DSQuery.exe 

Liste des comptes Utilisateurs inactifs (e.i : 4 => 4 semaines => 1 mois)
DSQuery user -inactive 4

Liste des comptes Ordinateurs inactifs
DSQuery Computer -inactive 4

Si vous souhaitez connaître le nombre de comptes Utilisateurs et/ou Ordinateurs inactifs, il suffit de rajouter les paramètres | find /c /i « CN= » après la commande DSQuery :

Nombre de comptes Utilisateurs inactifs
DSQuery User -inactive 4 | find /c /i « CN= »

Nombre de comptes Ordinateurs inactifs
DSQuery Computer -inactive 4 | find /c /i « CN= »

 

#Méthode N°2 : via Windows PowerShell

Note importante : avant d’exécuter le script PS ci-dessous, la valeur de la variable $Domaine doit être changée /remplacée par le Nom DNS de votre domaine AD

 

Liste des comptes Utilisateurs inactifs
Import-Module ActiveDirectory
$Domaine = « hkroot.lan »
$JourInactivite = 30
$Date = (Get-Date).Adddays(-($JourInactivite))
$ListeOrdinateur = Get-ADUser -Filter {LastLogonTimeStamp -lt $Date -and enabled -eq $true} -Properties LastLogonTimeStamp

Liste des comptes Ordinateurs inactifs
Import-Module ActiveDirectory
$Domaine = « hkroot.lan »
$JourInactivite = 30
$Date = (Get-Date).Adddays(-($JourInactivite))
$ListeOrdinateur = Get-ADComputer -Filter {LastLogonTimeStamp -lt $Date -and enabled -eq $true} -Properties LastLogonTimeStamp

 Nombre de comptes Utilisateurs inactifs
Import-Module ActiveDirectory
$Domaine = « hkroot.lan »
$JourInactivite = 30
$Date = (Get-Date).Adddays(-($JourInactivite))
$ListeOrdinateur = Get-ADUser -Filter {LastLogonTimeStamp -lt $Date -and enabled -eq $true} -Properties LastLogonTimeStamp
$ListeOrdinateur.Count

Nombre de comptes Ordinateurs inactifs
Import-Module ActiveDirectory
$Domaine = « hkroot.lan »
$JourInactivite = 30
$Date = (Get-Date).Adddays(-($JourInactivite))
$ListeOrdinateur = Get-ADComputer -Filter {LastLogonTimeStamp -lt $Date -and enabled -eq $true} -Properties LastLogonTimeStamp
$ListeOrdinateur.Count

Le résultat peut être exporté vers un fichier CSV, celui-ci pourra être intégré par la suite dans un  document d’audit format Word ou communiqué séparément.
L’export vers le fichier CSV peut se fair en rajoutant les deux lignes suivantes

Select-object Name,@{Name= »Stamp »; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} | export-csv C:\ListeUtilisateursOUOrdinateursInactifs.csv -notypeinformatio

Publicités