Comment nettoyer Active Directory : bonnes pratiques et conseils

comment nettoyer active directory

Active Directory (AD) est l’un de ces produits qui ont tendance à vite contenir beaucoup de données plus ou moins pertinentes. Plus vous avez de données en main, plus il est difficile de faire quoi que ce soit, de la gestion des utilisateurs AD à la configuration de sauvegardes AD. Il s’agit d’un produit auquel de nombreuses personnes apportent des modifications tous les jours et qui finit par constituer un énorme amas de données qui, étrangement, fonctionnent encore. Même le département informatique le mieux intentionné finit toujours par se retrouver avec un environnement Active Directory comportant de nombreux comptes d’utilisateurs devenus inutiles, des GPO liés à des OU dont les utilisateurs ne soupçonnaient même pas l’existence et des comptes d’ordinateurs représentant des ordinateurs disparus depuis longtemps. Et cet état de fait s’établissant sur la durée, personne n’y prête attention. Jusqu’à ce qu’un jour, quelqu’un s’assoie devant Active Directory Users and Computers (ADUC), réalise l’ampleur du problème et décide de faire un peu de ménage.

Si vous êtes cette personne, cet article est fait pour vous. Nous vous y expliquons comment nettoyer Active Directory à l’aide des bonnes pratiques et d’autres conseils.

Signes de la nécessité de nettoyer votre Active Directory

Lorsque vous vous rendez compte que votre AD a besoin d’être nettoyé, la tâche risque d’être décourageante et de vous paraître impossible. Vous pouvez lancer un projet pour “faire le ménage”, mais vous vous rendrez vite compte que faire “clic droit > effacer” à répétition ne suffira pas.

Il existe de nombreuses façons de mener à bien ce projet, la première tâche étant de définir ce que signifie exactement le terme “nettoyage”. Dans le cadre de cet article, nous considérerons le “nettoyage” d’AD comme l’amélioration de ces cinq aspects essentiels.

  • Performance. Un AD surchargé peut entraîner un trafic de réplication inutile. L’un des signes les plus évidents d’un mauvais fonctionnement d’AD est le temps : L’authentification des utilisateurs, la recherche d’objets AD ou le téléchargement d’objets de stratégie de groupe prennent-ils plus de temps que d’habitude ?
  • Sécurité.  Les acteurs malveillants tentent toujours d’exploiter les entreprises. Ils tentent notamment d’accéder aux réseaux en s’emparant des comptes utilisateur d’Active Directory.
  • Conformité. Le nettoyage régulier d’Active Directory vous aide à vous conformer aux mandats réglementaires, de la RGPD au PCI-DSS.
  • Opérations informatiques. Un Active Directory encombré rendra la gestion beaucoup plus difficile pour les administrateurs informatiques. Cela peut entraîner une inefficacité générale, car votre équipe informatique doit consacrer plus de temps à l’utilisation d’AD qu’à d’autres projets stratégiques.
  • Agilité de l’entreprise. Active Directory est fondamental pour de nombreuses tâches, et un nettoyage AD peut vous aider à rester agile et à conserver votre avantage concurrentiel.

Un Active Directory mal entretenu :

  • contient beaucoup de données sales (des comptes d’utilisateurs périmés aux comptes d’utilisateurs dupliqués).
  • a des groupes de distribution vides ou dupliqués.
  • donne un mauvais aperçu des autorisations d’accès aux groupes de sécurité.
  • manque de processus établis pour l’approvisionnement et le désapprovisionnement.
  • est dans l’incapacité de déterminer la propriété des objets et des groupes.
  • affiche des attributs d’objet inexacts ou incomplets.

3 attributs des comptes d’utilisateurs non utilisés

Concentrons-nous à présent sur les comptes d’utilisateurs non utilisés. Plus précisément, examinons les trois attributs qui peuvent rendre un compte d’utilisateur “supprimable”. Ces attributs sont : a) les comptes désactivés, b) les comptes qui n’ont pas été utilisés depuis X jours, et c) les comptes dont les mots de passe ont expiré.

L’un des moyens les plus simples de trouver ces comptes potentiellement inutilisés est d’utiliser PowerShell. Le module ActiveDirectory PowerShell comprend une cmdlet extrêmement utile appelée Search-AdAccount qui permet de construire facilement des requêtes et de renvoyer exactement ce dont nous avons besoin. Toutefois, avant de pouvoir utiliser cette cmdlet, vous devez télécharger le paquetage Remote Server Administration Tools (RSAT) de Microsoft. Une fois le RSAT installé, vous devriez avoir le module ActiveDirectory, et vous pouvez commencer ! Par ailleurs, pour que le code ci-dessous fonctionne, il est supposé que vous utilisez un PC Windows relié au même domaine que les utilisateurs que vous souhaitez trouver.

Ceci étant dit, allons-y !

Recherche de comptes désactivés dans Active Directory

La première tâche consiste à trouver les comptes désactivés. Pour trouver les comptes désactivés, nous utiliserons la cmdlet Search-ADAccount. Cette cmdlet a un seul paramètre appelé Disabled (désactivé) qui rend cette tâche très facile. Il suffit d’exécuter Search-AdAccount -AccountDisabled et voilà, tous vos comptes désactivés s’affichent. Notez ci-dessous que le paramètre UsersOnly a été utilisé car cette cmdlet peut également trouver des comptes d’ordinateur désactivés.

C :> Search-ADAccount -UsersOnly -AccountDisabled -Server dc

AccountExpirationDate :
DistinguishedName : CN=Guest,CN=Users,DC=mylab,DC=local
Enabled : False
LastLogonDate :
LockedOut : False
Name : Guest
ObjectClass : user
ObjectGUID : 89cfaf2b-c6d8-4ae0-a720-e2da7d201717
PasswordExpired : False
PasswordNeverExpires : True
SamAccountName : Guest
SID : S-1-5-21-4117810001-3432493942-696130396-501
UserPrincipalName :
............

Recherche de comptes d’utilisateurs inactifs dans Active Directory

Un autre coupable à nettoyer est le compte d’utilisateur inactif, qui est un peu plus difficile à repérer. Le terme “inactif” est subjectif. Pour nos besoins, nous définirons comme “inactif” tout utilisateur dont la valeur de LastLogonTimeStamp (dernière date de connexion) est supérieure à 30 jours. Vous trouverez de nombreux articles sur internet concernant la recherche d’utilisateurs inactifs, mais le processus est en fait beaucoup facile que de construire des filtres AD LDAP compliqués. L’assistance est native dans Search-AdAccount.

Il est possible d’utiliser  Search-AdAccount -AccountInactive -UsersOnly -Timespan 30.00:00:00 pour trouver immédiatement tous les comptes d’utilisateurs AD qui n’ont pas été utilisés depuis 30 jours.

Il y a cependant une mise en garde. Microsoft ne met à jour l’attribut LastLogonTimestamp, qui est identique à LastLogonDate, qu’une fois tous les 14 jours afin d’éviter les problèmes de réplication. En raison de cette caractéristique d’AD, cette méthode (ou même Get-AdUser ou Get-AdComputer avec le filtre avancé) ne sera pas précise à 100 % si vous essayez d’obtenir des comptes dont l’inactivité remonte à plus de 14 jours. Soyez donc prévenus.

Enfin, il vous faut trouver tous les utilisateurs AD dont le mot de passe a expiré et dont nous n’avons plus besoin. Ce point est délicat car les comptes d’utilisateurs “actifs” peuvent avoir un mot de passe expiré s’il vient d’expirer. Il faut non seulement trouver les mots de passe expirés, mais aussi savoir depuis combien de temps ils le sont. S’ils ont expiré, par exemple, il y a 30 jours ou plus, on peut supposer que ces comptes d’utilisateur sont en fait inactifs.

Pour savoir depuis combien de temps un mot de passe a expiré, il faut d’abord trouver l’âge maximum du mot de passe pour la stratégie de mot de passe du domaine. Cela est possible avec la cmdlet Get-AdDefaultDomainPasswordPolicy.

$MaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.Days

Ensuite, il est possible de trouver tous les comptes d’utilisateurs dont le mot de passe a expiré, puis de filtrer ces comptes en vérifiant la dernière fois que leur mot de passe a été défini et en s’assurant que c’était avant la durée maximale du mot de passe, plus 30 (l’âge défini pour le compte).

Le code ressemblera à ceci :

Search-AdAccount -PasswordExpired -UsersOnly | Where-Object {((Get-Date) - (Get-AdUser -Filter "samAccountName -eq $_.SamAccountName").PasswordLastSet) -lt ($MaxPasswordAge + 30)}

La prochaine fois que vous rechercherez des enregistrements inactifs dans AD, n’oubliez pas de consulter Search-AdAccount pour voir s’il ne fait pas déjà ce que vous essayez de faire. Cela pourrait vous faire gagner beaucoup de temps !

Avantages d’un nettoyage AD

Active Directory est le service d’annuaire propriétaire de Windows, utilisé par 90 % des organisations dans le monde, selon TechRadar.

Sa popularité est bien méritée : AD est un élément fondamental de notre vie professionnelle quotidienne, car il permet aux entreprises de définir qui peut faire quoi dans leur réseau, tout en gérant les différentes ressources, les terminaux et les systèmes.

En nettoyant votre AD, vous vous assurez que votre entreprise maintient son efficacité opérationnelle, renforce l’intégrité des données et pratique une meilleure gouvernance des données. Il s’agit d’un processus essentiel que toutes les entreprises MSP, MSSP et informatiques doivent inclure dans leurs stratégies de maintenance afin de continuer à fournir des services de haute qualité à leurs utilisateurs finaux.

Bonnes pratiques pour le nettoyage d’Active Directory

Outre ce qui a été mentionné précédemment(la recherche de comptes désactivés et inactifs dans Active Directory et tout le reste), il serait prudent de discuter d’autres bonnes pratiques pour le nettoyage d’Active Directory afin que votre réseau informatique reste efficace, sécurisé et conforme.

Nettoyez les stratégies de groupe obsolètes

Les objets de stratégie de groupe (GPO) inutiles peuvent ralentir votre AD. Il est conseillé de vérifier et de dissocier régulièrement ces GPO par l’intermédiaire de PowerShell ou de la console de gestion des stratégies de groupe.

Optimisez les scripts de connexion des utilisateurs

De mauvais scripts de connexion peuvent avoir un impact significatif sur les performances. Pour voir l’impact complet de ces scripts, essayez d’utiliser PowerShell, en particulier Get-GPResultantSetOfPolicy. Si vous le jugez nécessaire, vous pouvez également forcer une mise à jour de la stratégie de groupe à distance.

Audit des groupes de sécurité

Comme pour tout ce que vous gérez, il est conseillé de vérifier régulièrement vos groupes de sécurité à l’aide de commandes PowerShell telles que Get-ADGroupMember. Pour un script complet sur la modification de l’appartenance à un utilisateur, consultez ce script NinjaOne. N’oubliez pas : les groupes vides, inactifs ou à utilisateur unique n’ont probablement aucune utilité pour votre entreprise.

Gérer la réplication d’Active Directory

Veillez à régler avec précision les intervalles de réplication et à optimiser les topologies afin d’accroître les performances d’AD. Il faut bien insister sur le fait que le “nettoyage d’Active Directory” ne se limite pas à supprimer des comptes et à espérer que tout ira bien. Il s’agit plutôt d’un processus en plusieurs étapes qui nécessite également que les administrateurs informatiques réorganisent les comptes utilisateurs et les groupes Active Directory. Il est recommandé d’utiliser ce script NinjaOne pour afficher le rapport sur l’état de la réplication Active Directory.

Gérer les utilisateurs d’Active Directory avec NinjaOne

NinjaOne fournit un outil de gestion Active Directory directement intégré à sa plateforme de gestion des terminaux. Avec NinjaOne, vous pouvez facilement désactiver des comptes, déverrouiller des utilisateurs, réinitialiser des mots de passe, et bien plus encore, le tout à partir d’un panneau de contrôle centralisé !

Si vous êtes prêt, demandez un devis gratuit ou regardez une démo.

Adam Bertram est spécialiste Microsoft Windows Cloud et Datacenter Management. Il est l’auteur de plusieurs formations, contribue régulièrement à de nombreuses publications papier et en ligne et fait des présentations dans divers groupes d’utilisateurs et conférences. Retrouvez-le sur adamtheautomator.com.

photo Adam Bertram

Pour aller plus loin

Pour créer une équipe informatique efficace et performante, il est essentiel d’avoir une solution centralisée qui joue le rôle de nœud principal pour vos services. NinjaOne permet aux équipes informatiques de surveiller, gérer, sécuriser et prendre en charge tous les appareils, où qu’ils soient, sans avoir besoin d’une infrastructure complexe sur site.

Pour en savoir plus sur NinjaOne Endpoint Management, participez à une visite guidée, ou profitez d’un essai gratuit de la plateforme NinjaOne.

Vous pourriez aussi aimer

Prêt à devenir un Ninja de l’informatique ?

Découvrez comment NinjaOne peut vous aider à simplifier les opérations informatiques.
×

Voir NinjaOne en action !

En soumettant ce formulaire, j'accepte la politique de confidentialité de NinjaOne.

Termes et conditions NinjaOne

En cliquant sur le bouton “J’accepte” ci-dessous, vous indiquez que vous acceptez les termes juridiques suivants ainsi que nos conditions d’utilisation:

  • Droits de propriété: NinjaOne possède et continuera de posséder tous les droits, titres et intérêts relatifs au script (y compris les droits d’auteur). NinjaOne vous accorde une licence limitée pour l’utilisation du script conformément à ces conditions légales.
  • Limitation de l’utilisation: Les scripts ne peuvent être utilisés qu’à des fins personnelles ou professionnelles internes légitimes et ne peuvent être partagés avec d’autres entités.
  • Interdiction de publication: Vous n’êtes en aucun cas autorisé à publier le script dans une bibliothèque de scripts appartenant à, ou sous le contrôle d’un autre fournisseur de logiciels.
  • Clause de non-responsabilité: Le texte est fourni “tel quel” et “tel que disponible”, sans garantie d’aucune sorte. NinjaOne ne promet ni ne garantit que le script sera exempt de défauts ou qu’il répondra à vos besoins ou attentes particulières.
  • Acceptation des risques: L’utilisation du script est sous votre propre responsabilité. Vous reconnaissez qu’il existe certains risques inhérents à l’utilisation du script, et vous comprenez et assumez chacun de ces risques.
  • Renonciation et exonération de responsabilité: Vous ne tiendrez pas NinjaOne pour responsable des conséquences négatives ou involontaires résultant de votre utilisation du script, et vous renoncez à tout droit ou recours légal ou équitable que vous pourriez avoir contre NinjaOne en rapport avec votre utilisation du script.
  • EULA: Si vous êtes un client de NinjaOne, votre utilisation du script est soumise au contrat de licence d’utilisateur final qui vous est applicable (End User License Agreement (EULA)).