IAMinerva
AccueilBlogA propos
m3Nouveautes M365coMicrosoft CopilotteMicrosoft TeamsshSharePoint & OneDriveinIntune & SecuriteexExchange & OutlookpoPower PlatformazAzure & Entra IDtuTutoriels & GuidesevEvenements & ConferencesseSecuritewiWindows
IAMinerva

Blog professionnel dedie a l'ecosysteme Microsoft 365.

Liens rapides

AccueilBlogA proposNewsletter

Restez informe

Recevez les dernieres actualites Microsoft 365 directement dans votre boite mail.

© 2026 IAMinerva. Tous droits reserves.

Construit avecNext.js&Tailwind
Identifier les utilisateurs inactifs Active Directory avec PowerShell
BlogWindowsIdentifier les utilisateurs inactifs Active Directory avec PowerShell
Windows#Active Directory#PowerShell#Utilisateurs inactifs

Identifier les utilisateurs inactifs Active Directory avec PowerShell

Détectez les utilisateurs inactifs Active Directory avec PowerShell. Script automatisé pour audit d'inactivité, filtrage par OU et génération de rapports CSV.

Houssem MAKHLOUF
25 juin 2026
8 min de lecture

TL;DR par Minerva

généré par IA

Détectez les utilisateurs inactifs Active Directory avec PowerShell. Script automatisé pour audit d'inactivité, filtrage par OU et génération de rapports CSV.

Introduction

Les comptes utilisateur inactifs dans Active Directory représentent bien plus qu'un simple désordre administratif. Ils constituent une vulnérabilité sécuritaire majeure, compliquent les audits d'accès et créent une charge inutile sur l'infrastructure d'annuaire. Les anciens employés, les sous-traitants partis et les comptes de projet abandonnés s'accumulent progressivement, formant un terrain fertile pour les violations de sécurité et les non-conformités réglementaires.

La détection précise de ces comptes dormants s'avère souvent délicate. Les administrateurs IT se fient généralement aux attributs LastLogonDate ou lastLogonTimestamp, qui présentent toutefois des limitations importantes en raison des délais de réplication pouvant atteindre 14 jours. Cette imprécision rend les audits peu fiables.

Pourquoi identifier les utilisateurs inactifs Active Directory

Les comptes dormants dans votre infrastructure Active Directory génèrent plusieurs problèmes concrets :

  • Risques sécuritaires accrus : Les comptes inactifs restent actifs par défaut, offrant des vecteurs d'attaque potentiels
  • Complexité des audits de conformité : Les revues d'accès deviennent laborieuses avec des centaines de comptes fantômes
  • Surcharge administrative : La gestion s'alourdit inutilement, consommant des ressources précieuses
  • Problèmes de licences : Les comptes de service ou utilisateurs non nécessaires génèrent des coûts superflus
  • Violations de gouvernance : Non-respect des politiques de sécurité et des cadres de conformité
✦

Astuce de gouvernance

Une révision trimestrielle des comptes inactifs est une bonne pratique pour maintenir une infrastructure Active Directory saine et sécurisée.

Les limites des outils natifs Active Directory

Les outils graphiques fournis par Microsoft ne permettent pas d'identifier efficacement les utilisateurs inactifs basés sur leur véritable dernier logon. L'attribut lastLogon fournit l'information la plus précise, mais son interrogation requiert d'accéder à chaque contrôleur de domaine individuellement.

Pour surmonter cette limitation, une approche PowerShell s'impose comme la solution optimale. Elle permet d'interroger tous les contrôleurs de domaine, de comparer les valeurs retournées et de déterminer avec exactitude le dernier logon réel de chaque utilisateur.

Script PowerShell pour détecter les utilisateurs inactifs

Caractéristiques principales du script

Un script PowerShell dédié à l'identification des utilisateurs dormants offre les fonctionnalités suivantes :

  • Récupération de tous les utilisateurs inactifs en interrogeant chaque contrôleur de domaine
  • Comparaison des attributs lastLogon pour déterminer le dernier logon réel
  • Exportation détaillée vers un rapport CSV formaté
  • Identification basée sur une période d'inactivité configurable
  • Génération de rapports distincts pour les comptes activés et désactivés
  • Détection des comptes jamais utilisés depuis leur création
  • Récupération ciblée des comptes dormants dans des unités d'organisation (OU) spécifiques
  • Installation automatique du module PowerShell Active Directory si absent
  • Compatibilité avec le planificateur de tâches Windows

Rapport des utilisateurs inactifs Active Directory

Le rapport généré contient des informations critiques : nom d'utilisateur, statut du compte, dernier logon, nombre de jours d'inactivité, chemin de l'OU, département, fonction et date de création du compte.

Méthodes d'exécution du script PowerShell

Exécution interactive du script

1

Télécharger le script PowerShell

Récupérez le script GetADInactiveUsers.ps1 et sauvegardez-le sur votre station de travail d'administration.

2

Ouvrir PowerShell en tant qu'administrateur

Lancez Windows PowerShell avec les privilèges d'administrateur sur une machine dotée du module Active Directory.

3

Naviguer vers le répertoire du script

Changez le répertoire courant vers l'emplacement où le script a été enregistré.

4

Exécuter le script interactif

Pour identifier tous les utilisateurs inactifs depuis 90 jours, exécutez la commande suivante :

⚡PowerShell
1.\GetADInactiveUsers.ps1 -InactiveDays 90

Le script vous guidera à travers les étapes d'exécution et générera un rapport détaillé.

!

Prérequis système

Ce script nécessite Windows Server ou une édition Windows Professionnel/Entreprise supportant RSAT et le module PowerShell Active Directory. Les éditions Home ne sont pas compatibles.

Planification automatique du script

Pour une surveillance continue sans intervention manuelle, intégrez le script dans le Planificateur de tâches Windows :

1

Ouvrir le Planificateur de tâches

Lancez le Planificateur de tâches (TaskScheduler) sur votre serveur d'administration.

2

Créer une nouvelle tâche

Créez une tâche programmée avec l'exécution requise (par exemple, hebdomadaire ou mensuelle).

3

Configurer l'action d'exécution

Dans la section Actions, définissez le programme à exécuter et utilisez le paramètre -Unattended pour supprimer les invites interactives :

⚡PowerShell
1.\GetADInactiveUsers.ps1 -Unattended

Le paramètre -Unattended rend le script compatible avec une exécution planifiée sans intervention utilisateur.

4

Configurer les permissions du compte

Assurez-vous que le compte de service utilisé par le Planificateur dispose des permissions suivantes :

  • Lecture des données Active Directory sur tous les contrôleurs de domaine
  • Droit d'ouverture de session en tant que tâche planifiée
5

Vérifier la généération du rapport

Le rapport CSV sera automatiquement généré et sauvegardé dans le répertoire courant d'exécution du script.

Génération de rapports ciblés sur les utilisateurs inactifs

Le script intègre des filtres natifs permettant de générer des rapports spécifiques selon vos besoins opérationnels.

Identifier les utilisateurs actifs mais inactifs

Les comptes activés mais dormants depuis longtemps constituent une vulnérabilité directe. Ils conservent un accès complet aux ressources organisationnelles alors qu'ils ne sont plus utilisés.

⚡PowerShell
1.\GetADInactiveUsers.ps1 -InactiveDays 90 -EnabledUsersOnly

Cette commande exporte tous les comptes activés inactifs depuis 90 jours. Les administrateurs peuvent alors désactiver ces comptes ou revoir leurs permissions d'accès.

Pour affiner davantage, excluez les comptes jamais connectés :

⚡PowerShell
1.\GetADInactiveUsers.ps1 -InactiveDays 90 -EnabledUsersOnly -ExcludeNeverLoggedInUsers

Cette approche se concentre sur les comptes précédemment actifs maintenant dormants, excluant les erreurs de provisioning.

Identifier les utilisateurs désactivés éligibles pour suppression

De nombreuses organisations suivent une politique de nettoyage progressif : les comptes inactifs sont d'abord désactivés, puis supprimés après une période supplémentaire.

⚡PowerShell
1.\GetADInactiveUsers.ps1 -InactiveDays 180 -DisabledUsersOnly

Cette commande récupère tous les comptes désactivés n'ayant pas enregistré d'accès depuis 180 jours, candidats idéaux pour une suppression définitive.

Repérer les comptes jamais utilisés

Les comptes n'ayant jamais généré d'authentification révèlent souvent des erreurs de provisioning ou des projets abandonnés :

⚡PowerShell
1.\GetADInactiveUsers.ps1 -NeverLoggedInUsersOnly

Le rapport listera tous les comptes dont l'attribut lastLogon n'a jamais été défini.

i

Bon à savoir

Ce rapport inclut les comptes nouvellement créés n'ayant pas encore eu l'occasion de se connecter. Vérifiez toujours la date de création avant de supprimer un compte.

Analyser les utilisateurs inactifs par unité d'organisation

Dans les grandes organisations, les utilisateurs sont généralement regroupés par OU (département, localisation, fonction). Une analyse par OU permet un nettoyage ciblé :

⚡PowerShell
1.\GetADInactiveUsers.ps1 -InactiveDays 90 -OU "OU=Sales,OU=Users,DC=contoso,DC=com"

Remplacez le DN (Distinguished Name) de l'OU par celui correspondant à votre infrastructure. Le script inclut automatiquement les OU enfants imbriquées.

Combiner plusieurs critères de filtrage

Pour un rapport plus granulaire, combinez les paramètres disponibles :

⚡PowerShell
1.\GetADInactiveUsers.ps1 -InactiveDays 90 -OU "OU=Sales,OU=Users,DC=contoso,DC=com" -EnabledUsersOnly -ExcludeNeverLoggedInUsers

Cette commande extrait uniquement les comptes activés, inactifs depuis 90 jours, dans l'OU Sales, en excluant les comptes jamais utilisés.

Les paramètres combinables incluent :

  • -InactiveDays : Nombre de jours d'inactivité
  • -OU : Chemin distingué de l'unité d'organisation
  • -EnabledUsersOnly : Filtrer sur les comptes activés uniquement
  • -DisabledUsersOnly : Filtrer sur les comptes désactivés uniquement
  • -NeverLoggedInUsersOnly : Afficher uniquement les comptes jamais utilisés
  • -ExcludeNeverLoggedInUsers : Exclure les comptes jamais connectés

Tableau comparatif des méthodes de détection

ApprochePrécisionRéplication Active DirectoryComplexité
LastLogonDate (GUI)MoyenneAffectée par délais (14 jours)Très faible
lastLogonTimestampMoyenneAffectée par délais (14 jours)Faible
lastLogon avec PowerShellTrès élevéeNon affectéeMoyenne
Script automatisé optimiséTrès élevéeNon affectéeBasse

Bonnes pratiques pour la gestion des comptes inactifs

×

Important

Ne supprimez jamais définitivement un compte inactif sans audit complet. Certains comptes de service ou d'application doivent rester actifs même s'ils affichent peu d'accès.

Pour optimiser la gestion des utilisateurs inactifs :

  • Établissez une politique d'inactivité : Définissez un seuil clair (par exemple 90 jours) déclenchant des actions
  • Mettez en place un processus progressif : Désactivez d'abord, supprimez après une période supplémentaire
  • Effectuez des révisions régulières : Planifiez des audits mensuels ou trimestriels
  • Documentez les suppressions : Conservez un historique des comptes supprimés pour conformité
  • Excluez les comptes critiques : Paramétrez le script pour ignorer les comptes de service ou administrateur
  • Notifiez les responsables : Prévenez les managers avant désactivation de comptes de leurs équipes
  • Archivez les données : Conservez les rapports pour traçabilité réglementaire

Intégration avec la sécurité Active Directory

La détection des utilisateurs inactifs s'intègre dans une stratégie de sécurité globale. En complément :

  • Consultez nos guides sur la sécurisation d'Active Directory
  • Examinez les audits d'accès complétés avec les données d'inactivité
  • Synchronisez vos résultats avec les outils de gestion des identités (Entra ID pour environnements hybrides)
  • Combinez avec des audits de permissions pour identifier les comptes suractifs ou mal configurés

Conclusion

La gestion proactive des utilisateurs inactifs dans Active Directory est une composante essentielle de la posture de sécurité organisationnelle. L'utilisation d'un script PowerShell automatisé élimine les imprécisions des outils natifs et permet une identification fiable basée sur le véritable dernier logon de chaque utilisateur.

En mettant en œuvre les approches détaillées dans ce guide—exécution interactive ou planifiée, filtrage granulaire, et processus progressif de nettoyage—vous réduirez significativement votre surface d'attaque et améliorerez votre conformité réglementaire.

N'attendez pas que vos comptes dormants deviennent une responsabilité : mettez en place une révision mensuelle dès aujourd'hui.

Partager:
HM

Houssem MAKHLOUF

Microsoft 365 enthusiast & IT professional.

Article précédent

Nouveautés de Microsoft 365 Copilot : Juin 2026

25 juin 2026
Article suivant

Detecter les canaux inactifs Teams avec PowerShell

25 juin 2026

Articles similaires

Exécution de scripts PowerShell pour auditer des applications AI et gérer leurs enregistrements.copilot

Auditer et Gérer les Applications AI avec PowerShell

Auditez les applications AI non autorisées dans Entra ID avec PowerShell et Microsoft Graph pour renforcer contrôle et sécurité.

28 juin 20265 min
Graphiques abstraits et géométriques avec des couches de couleurs translucides.exchange

Convertir les IDs Exchange pour l'API Graph Microsoft 365

Convertissez les identifiants Exchange (storeId, entryId, RestId) pour l'API Graph et l'eDiscovery ciblée. Guide technique avec scripts PowerShell complets.

28 juin 20268 min
Pyramide réfléchissante au centre de réseaux de fils dorés et cercles.azure

Graph Delta Queries pour les groupes Entra ID

Apprenez à utiliser Graph Delta Queries pour les groupes Entra ID pour suivre les modifications en temps réel. Tutoriels et scripts inclus.

27 juin 20264 min