Gérer votre parc Windows avec la commande Get-ADComputer

L’essentiel à retenir : le cmdlet Get-ADComputer est l’outil indispensable pour auditer et nettoyer votre parc informatique Active Directory. En maîtrisant le filtrage côté serveur et l’attribut LastLogonDate, vous isolerez efficacement les machines obsolètes pour sécuriser votre infrastructure. Ce processus permet d’extraire des inventaires précis en CSV, incluant des données critiques comme l’OS ou l’adresse IP.

Le cmdlet Get-ADComputer est l’outil de référence pour administrer les objets ordinateurs au sein d’un annuaire Active Directory. Pourtant, extraire des données précises comme une version d’OS ou une adresse IP devient vite laborieux sans une maîtrise des filtres et des propriétés étendues.

Cet article vous accompagne pour exploiter tout le potentiel de cette commande PowerShell afin de réaliser des inventaires propres et d’automatiser le nettoyage de votre infrastructure. On fait le point ensemble sur les bonnes pratiques pour optimiser vos requêtes.

  1. Pourquoi Get-ADComputer est votre meilleur allié d’administration
  2. Filtrer efficacement pour extraire des données précises
  3. Sélectionner les propriétés et réaliser un inventaire propre
  4. Identifier les machines inactives pour nettoyer l’annuaire

Pourquoi Get-ADComputer est votre meilleur allié d’administration

Le cmdlet Get-ADComputer centralise la gestion des actifs Windows via le module RSAT. Il permet d’isoler les systèmes obsolètes et d’exporter des inventaires précis en CSV pour auditer l’Active Directory. Ces capacités facilitent grandement la préparation de l’environnement et des accès.

Avant d’extraire des données, une configuration technique s’impose pour que votre console reconnaisse les commandes.

Installer le module Active Directory et gérer les droits

L’installation des RSAT s’effectue via PowerShell ou les fonctionnalités facultatives. Sans ce module, la commande get adcomputer restera totalement inconnue de votre système Windows.

Un simple compte utilisateur suffit souvent pour la lecture. Pourtant, des droits spécifiques deviennent requis pour accéder à certaines partitions protégées de votre annuaire.

Attention au module manquant

Le module Active Directory doit être installé via les RSAT, sinon le cmdlet ne sera pas reconnu.

La gestion des accès est le premier rempart d’une administration PowerShell saine et sécurisée au sein de votre infrastructure.

Une fois l’environnement prêt, vous pourrez manipuler les objets de votre parc avec une précision chirurgicale.

Comprendre la syntaxe de base et le rôle du cmdlet

La commande respecte la structure Verbe-Nom. Notez que Get-ADComputer cible exclusivement les objets ordinateurs, à l’inverse de Get-ADUser qui traite uniquement les comptes utilisateurs.

Ces outils partagent une logique identique. Pourtant, ils manipulent des attributs différents, comme le système d’exploitation ou la version du build de la machine interrogée.

Par défaut, la commande renvoie peu de propriétés. Vous en conviendrez, il faut maîtriser les paramètres pour extraire des données réellement utiles lors d’un audit.

Filtrer efficacement pour extraire des données précises

Une fois les outils en place, la vraie puissance réside dans votre capacité à trier le grain de l’ivraie parmi des milliers d’objets.

Le duel Filter vs Where-Object : filtrer côté serveur

Utiliser -Filter sollicite le contrôleur de domaine directement. Cela réduit drastiquement le trafic réseau inutile. À l’inverse, Where-Object récupère tout avant de trier, ce qui sature la mémoire pour rien.

Astuce

Privilégiez le paramètre -Filter (côté serveur) pour réduire la consommation mémoire et le trafic réseau sur vos gros annuaires.

Dans un parc de dix mille machines, la différence de temps d’exécution devient flagrante. Adoptez le réflexe du filtrage natif dès maintenant pour vos scripts.

Cibler des OS spécifiques comme Windows 10 ou Server

Utiliser l’opérateur -like avec des astérisques permet d’isoler les postes. C’est la méthode la plus simple pour Windows 10. Le champ OperatingSystem est votre meilleur point d’entrée.

  • Filtre Windows Server : -Filter ‘OperatingSystem -like « SERVER »‘
  • Filtre Windows 10 : -Filter ‘OperatingSystem -like « Windows 10″‘
  • Utilisation du wildcard * et combinaison avec -and.

Utiliser LDAPFilter pour les requêtes de haut vol

Introduire le paramètre -LDAPFilter répond aux besoins complexes. Parfois, la syntaxe PowerShell standard montre ses limites. Les experts préfèrent souvent la robustesse du langage LDAP traditionnel.

Cela permet des requêtes imbriquées complexes. C’est idéal pour des recherches croisées sur des attributs spécifiques non indexés.

Maîtriser ce format demande de l’entraînement. Pourtant, c’est un atout majeur pour manipuler l’annuaire avec une précision chirurgicale.

Sélectionner les propriétés et réaliser un inventaire propre

Extraire les bons objets est une chose, mais afficher les informations pertinentes en est une autre, bien plus subtile.

Distinguer attributs par défaut et propriétés étendues

Par défaut, PowerShell ne renvoie que dix propriétés. C’est une mesure d’économie pour le serveur. Des champs comme l’adresse IP ou l’OS nécessitent un appel explicite.

Propriété Type Utilité
Name Standard Identifie le nom de la machine.
OperatingSystem Étendue Précise la version du système.
IPv4Address Étendue Affiche l’IP via le DNS.
LastLogonDate Étendue Trace la dernière connexion réelle.

L’attribut IPv4Address n’est pas stocké nativement dans l’Active Directory ; la commande get adcomputer interroge les enregistrements DNS pour le récupérer.

Mesurer et compter vos objets avec Measure-Object

Le cmdlet Measure-Object est parfait pour les statistiques. Il permet de connaître instantanément le nombre de machines actives. C’est un outil indispensable pour vos rapports hebdomadaires.

Combinez-le avec Group-Object pour plus de détails. Vous obtiendrez ainsi une répartition précise par version de système.

C’est une méthode rapide et efficace. Elle évite de parcourir manuellement des listes interminables d’objets Active Directory.

Exporter vos résultats vers un fichier CSV exploitable

L’exportation reste l’étape finale de tout inventaire. Utilisez Export-Csv pour générer un fichier lisible sous Excel. N’oubliez pas le paramètre -NoTypeInformation pour nettoyer l’en-tête.

Faites attention à l’encodage des caractères. Le format UTF8 évite les problèmes avec les accents français ou les symboles.

Un bon délimiteur, comme le point-virgule, facilite l’ouverture. Vos collègues apprécieront ce souci du détail technique.

Identifier les machines inactives pour nettoyer l’annuaire

Un inventaire propre ne suffit pas ; il faut maintenant traquer les comptes fantômes qui polluent votre base de données.

Le casse-tête des dates : LastLogon vs LastLogonDate

Comprendre la différence entre ces deux attributs est vital. LastLogon n’est pas répliqué. Il faut interroger chaque serveur pour être précis. En revanche, LastLogonDate est une propriété calculée et répliquée plus simplement.

La réplication de LastLogonDate peut accuser un retard de quelques jours. Pour un nettoyage de routine, ce délai est acceptable. Il simplifie grandement l’écriture de vos scripts de maintenance.

L’analyse des dates de connexion est la clé pour distinguer un serveur critique d’une station de travail abandonnée.

Automatiser le nettoyage des objets obsolètes

Définissez une politique de rétention claire. Par exemple, ciblez les machines inactives depuis plus de quatre-vingt-dix jours. Cela libère des ressources et renforce la sécurité du domaine en limitant la surface d’attaque.

Ne supprimez jamais immédiatement les comptes identifiés. Désactivez-les d’abord pendant une période de test. Cette approche prudente permet d’éviter des erreurs dramatiques en production, comme la coupure d’un service oublié.

Procédure de nettoyage sécurisée
  1. Étape 1 : Identifier les machines via LastLogonDate avec get adcomputer.
  2. Étape 2 : Désactiver les comptes avec Disable-ADAccount.
  3. Étape 3 : Déplacer vers une OU de quarantaine.
  4. Étape 4 : Suppression définitive après 30 jours.
Avantages du nettoyage
  • Sécurité renforcée
  • Annuaire plus lisible
  • Licences optimisées
Inconvénients (risques)
  • Erreur de suppression
  • Délai de réplication

Maîtriser Get-ADComputer vous permet d’auditer vos systèmes, de filtrer par OS et d’isoler les comptes obsolètes pour sécuriser votre annuaire. En automatisant ces inventaires via PowerShell, vous gagnerez un temps précieux tout en garantissant un parc informatique sain. Optimisez vos scripts dès aujourd’hui pour transformer votre administration Active Directory.

FAQ

Comment installer le module PowerShell pour gérer l’Active Directory ?

L’installation dépend de votre système d’exploitation. Sur Windows 10 (version 1809 et ultérieures), vous pouvez passer par les Fonctionnalités facultatives dans les paramètres ou utiliser la commande Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 en tant qu’administrateur.

Pour Windows Server, l’installation se fait via le Gestionnaire de serveur ou plus rapidement avec la commande PowerShell Install-WindowsFeature -Name "RSAT-AD-PowerShell". Une fois installé, n’oubliez pas d’importer le module avec Import-Module ActiveDirectory pour accéder aux cmdlets.

Quelle est la différence entre les paramètres -Filter et -LDAPFilter ?

Le paramètre -Filter utilise une syntaxe propre à PowerShell, très lisible et facile à manipuler pour les scénarios courants, comme la recherche de noms avec des caractères génériques. Il permet d’utiliser des opérateurs classiques tels que -eq ou -like.

À l’inverse, -LDAPFilter s’appuie sur la syntaxe traditionnelle du protocole LDAP. C’est un choix judicieux pour les administrateurs expérimentés qui possèdent déjà des requêtes complexes ou qui ont besoin de filtrer sur des attributs spécifiques moins accessibles via la syntaxe PowerShell standard.

Comment obtenir l’adresse IP d’un ordinateur via Get-ADComputer ?

Bien que l’adresse IP ne soit pas un attribut stocké nativement dans l’Active Directory, vous pouvez la récupérer en interrogeant la propriété IPv4Address. Cette information est alors récupérée dynamiquement via les enregistrements DNS correspondants à la machine.

Pour l’afficher, vous devez utiliser le paramètre -Properties IPv4Address dans votre commande. Notez que vous pouvez également récupérer l’adresse IPv6 en appelant la propriété IPv6Address si votre infrastructure l’utilise.

Pourquoi existe-t-il une différence entre LastLogon et LastLogonDate ?

La distinction est cruciale pour l’audit de votre parc. L’attribut LastLogon est très précis mais n’est pas répliqué entre vos contrôleurs de domaine ; il faudrait donc interroger chaque serveur pour avoir la date réelle. LastLogonDate est une conversion de l’attribut LastLogonTimeStamp, qui lui est répliqué.

Attention toutefois, car LastLogonTimeStamp (et donc LastLogonDate) peut présenter une latence de 9 à 14 jours par rapport à la réalité. C’est une mesure de performance d’Active Directory pour éviter une réplication incessante, ce qui reste largement suffisant pour identifier des machines inactives depuis plusieurs mois.

Est-il possible de compter uniquement les serveurs ou les postes Windows 10 ?

Absolument, il suffit de filtrer sur la propriété OperatingSystem. Pour isoler vos serveurs, vous utiliserez un filtre comme {OperatingSystem -Like 'SERVER'}. Pour les postes de travail, vous pouvez exclure ce terme avec -notLike.

Pour obtenir un chiffre précis, vous pouvez combiner votre commande avec le cmdlet Measure-Object. Par exemple, (Get-ADComputer -Filter {OperatingSystem -like 'Windows 10'} | Measure-Object).Count vous donnera instantanément le nombre total de machines Windows 10 dans votre annuaire.