Comptes inactifs dans Active Directory : les identifier sans se tromper et les nettoyer
Chaque compte actif mais inutilisé est un identifiant que personne ne surveille. Les comptes d'anciens collaborateurs, de prestataires ou de serveurs retirés figurent parmi les constats les plus fréquents en audit. Leur nettoyage est simple, à condition de bien mesurer l'inactivité.
Mesurer l'inactivité : lastLogon ou lastLogonTimestamp
L'attribut lastLogon est exact mais n'est pas répliqué : chaque contrôleur de domaine a sa propre valeur. L'attribut lastLogonTimestamp est répliqué, mais n'est mis à jour que si l'ancienne valeur dépasse un intervalle d'environ 14 jours (valeur par défaut, légèrement aléatoire). Il peut donc retarder de une à deux semaines sur la réalité.
En pratique, lastLogonTimestamp suffit largement pour détecter des comptes inactifs depuis 90 jours ou plus. Il ne doit simplement pas servir à conclure qu'un compte n'a pas été utilisé la semaine dernière.
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -UsersOnly | Where-Object Enabled | Select-Object SamAccountName, LastLogonDate, DistinguishedName
Pour les ordinateurs, pwdLastSet est un bon indicateur complémentaire : une machine membre active change par défaut son mot de passe de compte tous les 30 jours.
Désactiver d'abord, supprimer ensuite
- Désactiver le compte et le déplacer dans une OU dédiée, en notant la date et le motif dans la description.
- Laisser une période d'observation (par exemple 30 à 90 jours) pour détecter une dépendance oubliée.
- Supprimer, idéalement avec la corbeille Active Directory activée pour permettre une restauration complète.
Cette approche évite l'incident classique : l'application de paie qui s'arrête parce que son compte de service « inactif » a été supprimé.
Le cas des comptes de service
Un compte de service peut ne jamais ouvrir de session interactive et sembler inactif alors qu'il est utilisé, ou l'inverse. Avant toute action, il faut identifier son propriétaire et son usage. C'est aussi l'occasion de repérer ceux qui portent l'attribut « le mot de passe n'expire jamais » avec un mot de passe inchangé depuis des années, et d'envisager des comptes de service gérés (gMSA) lorsque l'application le permet.
Point d'attention. Un compte désactivé reste membre de ses groupes. Si un compte privilégié est simplement désactivé, sa réactivation par erreur ou par malveillance restaure immédiatement ses droits. Retirez les appartenances sensibles dès la désactivation.
Garder une preuve pour l'audit
Les référentiels de conformité demandent généralement de démontrer une revue régulière des accès. Conserver à chaque campagne l'extraction des comptes détectés, la décision prise et sa date, et rattacher le processus au départ des collaborateurs côté RH, fournit une preuve simple et vérifiable.
En résumé
- Utiliser
lastLogonTimestampavec un seuil large (90 jours ou plus). - Désactiver, observer, puis supprimer.
- Traiter les comptes de service au cas par cas, avec un propriétaire identifié.
- Documenter chaque campagne.