Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Lister les Comptes Inactifs AD : Guide Rapide et Efficace
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
CybersécuritéInfrastructure

Lister les Comptes Inactifs AD : Guide Rapide et Efficace

Hicham KADIRI Par Hicham KADIRI 18 janvier 2025
Partager
4e lecture en min
Partager

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.

Table de matière
#Méthode N°1 : via DSQuery.exe #Méthode N°2 : via Windows PowerShellEn Résumé :

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 (4 => 4 semaines => 1 mois)

				
					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 -Limit 0 | find /c /i "CN="
				
			

> Nombre de comptes Ordinateurs inactifs

Note : Si votre infrastructure AD comporte plus de 100 objets Utilisateurs ou Ordinateurs, il faudrait spécifier le paramètre -Limit 0 pour bypasser cette restriction.

#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.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 -notypeinformation
				
			

En Résumé :

  1. Optimisation de l’Active Directory : Suppression des comptes inactifs pour améliorer la gestion de l’Active Directory.

  2. Utilisation de DSQuery.exe : Identification des comptes utilisateurs et ordinateurs inactifs à l’aide de DSQuery.exe, avec des commandes spécifiques.

  3. Méthode PowerShell : Emploi du module PowerShell ActiveDirectory pour récupérer les comptes inactifs.

  4. Exportation vers un Fichier CSV : Procédure pour exporter les résultats obtenus vers un fichier CSV.

  5. Application Pratique : Utilisation pratique de ces méthodes pour les audits de sécurité et l’optimisation des ressources.

Facebook
Twitter
LinkedIn
Email
WhatsApp
Par Hicham KADIRI
Consultant-Expert en Infrastructure Systèmes, Virtualisation et Sécurité Cloud
Hicham KADIRI est un consultant-expert en infrastructure systèmes et virtualisation, hautement certifié par Microsoft, VMware et Citrix. Il guide ses clients à travers toutes les phases de mise en place d'infrastructures, de la conception au déploiement. En tant que référent technique pour des entreprises de renom telles que Thales, Essilor, Rabobank, Gemalto, Banque Populaire et le VINCI Group, il excelle en tant que Lead Cloud Security Architect & Azure Solution Architect /Advisor, apportant une expertise précieuse dans la sécurité et les solutions Azure.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
5 commentaires 5 commentaires
  • Armel dit :
    11 juin 2015 à 11 h 16 min

    voici le message d’erreur que je récois

    FIND : format incorrect de paramètre

    Connectez-vous pour répondre
    • Hicham KADIRI dit :
      11 juin 2015 à 12 h 31 min

      Bonjour Yves,
      Il manquait le paramètre -Limit avec la valeur 0 pour enlever la restriction concernant l’affiche du résultat retourné, la commande finale est donc : DSQuery computer -inactive 4 -limit 0 | find /c /i « CN= » ou DSQuery user -inactive 4 -limit 0 | find /c /i « CN= ».
      J’ai également rectifié les commandes sur l’article.
      Teste et tiens moi informé du résultat.
      Merci pour ton feedback.
      A+
      HK.

      Connectez-vous pour répondre
  • Armel dit :
    16 juin 2015 à 17 h 30 min

    Dois je laisser « CN= » comme vous l’avez fait ou la personnaliser selon mon environnement

    Connectez-vous pour répondre
    • Hicham KADIRI dit :
      20 juin 2015 à 15 h 08 min

      Bonjour Armel,
      le « CN= » est paramètre standard, donc à laisser dans la commande à exécuter.

      Connectez-vous pour répondre
  • Armel dit :
    11 mars 2016 à 11 h 56 min

    Bonjour Hicham, désolé je sort du cadre de ce post,
    j’ai une préoccupation à savoir comment lister des PC rattaché à un compte utilisateur active directory.
    En mot, a savoir comment peut trouver le nom d’ordinateur d’un utilisateur en fonction de son compte utilisateur.

    Merci

    Connectez-vous pour répondre

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Lister les Comptes Inactifs AD : Guide Rapide et Efficace

© Alphorm - Tous droits réservés