Auteur de questions
HowTo : Lister les comptes Utilisateurs et Ordinateurs Active Directory non actifs | Contribution TechNet

Discussion générale
-
En tant qu'Administrateur ou Ingénieur Systèmes Microsoft, vous pouvez être amené à lister les comptes Utilisateurs et/ou Ordinateurs Active Directory inactifs, ici le terme "Inactif" signifie l'absence de connexion (authentification sur un DC) depuis un X temps.
Le but étant d'optimiser votre annuaire AD en supprimant les comptes Utilisateurs et/ou Ordinateurs inutilisés 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.
Mais comment puis-je donc lister les comptes utilisateurs et ordinateurs AD inactifs ?
Eh bien, cela peut se faire soit via :
> DSQuery : outil en ligne de commande | si vos DCs sont sous Windows Server 2003 ou 2008
> Module PowerShell "ActiveDirectory" | si vos DCs sont sous Windows Server 2008 R2, 2012 ou 2012 R2
Dans les exemples ci-après, un compte utilisateur ou ordinateur est considéré inactif si celui-ci n'a pas été utilisé lors des 30 derniers jours.
#Méthode N°1 : via DSQuery.exe
> Liste des comptes Utilisateurs inactifs (4 => 4 semaines => 1 mois)
DSQuery user -inactive 4
> Liste des comptes Ordinateurs inactifs
DSQuery Computer -inactive 4
Dans le cadre d'un audit Active Directory, vous souhaiteriez peut être connaître le nombre de comptes Utilisateurs et/ou Ordinateurs inactifs, dans ce cas là, 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 : la valeur de la variable $Domaine doit être spécifiée avant d'exécuter le script.
> Liste des comptes Utilisateurs inactifs
Import-Module ActiveDirectory
$Domaine = "mondomaine.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 = "mondomaine.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 = "mondomaine.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 = "mondomaine.lan"
$JourInactivite = 30
$Date = (Get-Date).Adddays(-($JourInactivite))
$ListeOrdinateur = Get-ADComputer -Filter {LastLogonTimeStamp -lt $Date -and enabled -eq $true} -Properties LastLogonTimeStamp
$ListeOrdinateur.CountLe 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 suivantesSelect-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} | export-csv C:\ListeUtilisateursOUOrdinateursInactifs.csv -notypeinformation
Hicham KADIRI | Just Another IT Guy
Toutes les réponses
-
Bonjour
je viens de tester cette commande via powershell ISE
$Domaine = "domaine.lan"
$JourInactivite = 30
$Date = (Get-Date).Adddays(-($JourInactivite))
$ListeOrdinateur = Get-ADUser -Filter {LastLogonTimeStamp -lt $Date -and enabled -eq $true} -Properties LastLogonTimeStampCa à l'air de marcher mais ou se trouve la fameuse liste ? Car c'est juste écrit terminé après le script ?
Merci
-
Bonjour Nintendo64,
Le résultat est exporté vers un fichier CSV (d'ou l'utilisation du paramètre Export-CSV).
Il faudrait simplement se rendre dans l'emplacement spécifié après | Export-CSV Emplacement_d'export_fichier_CSV
A+
HK.Hicham KADIRI | Just Another IT Guy
Livre de référence RDS 2012 R2 désormais disponible !
RDS 2012 R2 reference book is now available !
Découvrez tous mes eBooks )