Get-ADComputer : obtenir des informations sur les ordinateurs
Sommaire
I. Présentation
Sur le même principe que Get-ADUser, le cmdlet Get-ADComputer permet de récolter des informations sur les ordinateurs intégrés à l’annuaire Active Directory. Cette commande va permettre d’obtenir toutes les informations au sujet des objets de type « ordinateurs » de votre annuaire Active Directory, que ce soit les PC ou les serveurs.
II. Get-ADComputer : nom, OS et adresse IP
Il y a une commande que j’affectionne tout particulièrement, c’est celle-ci :
Get-ADComputer -Filter * -Properties Name,OperatingSystem,IPv4Address | Select-Object Name,OperatingSystem,IPv4Address
Son résultat est très intéressant puisqu’elle va permettre d’afficher une liste de tous les ordinateurs (et serveurs) intégrés au domaine, en indiquant trois informations :
- Le nom de la machine via la propriété « Name »
- Le système d’exploitation via la propriété « OperatingSystem »
- L’adresse IP utilisée via la propriété « IPv4Address »
L’adresse IP ne correspond pas à un attribut de l’annuaire Active Directory directement. En fait, cette propriété s’appuie sur les enregistrements DNS pour retrouver cette information.
Dans le même esprit, on peut obtenir l’adresse IPv6 de la machine (sous réserve que ce soit utilisé) en recherchant la propriété IPv6Address.
Si l’on veut affiner la requête, par exemple pour prendre uniquement toutes les machines dont le nom commence par « PC- », il faut ajouter un filtre basé sur la propriété « Name », comme ceci :
Get-ADComputer -Filter 'Name -like "PC-*"' -Properties Name,OperatingSystem,IPv4Address | Select-Object Name,OperatingSystem,IPv4Address
Pour la suite de ce chapitre, je vous propose de découvrir quelques requêtes intéressantes avec Get-ADComputer.
III. Combien est-ce qu’il y a de machines Windows 10 dans mon AD ?
Vous avez surement la réponse à cette question par l’intermédiaire de votre outil d’inventaire. Néanmoins, l’Active Directory peut également vous apporter une réponse à cette interrogation.
Tout d’abord, on peut lister les machines Windows 10 intégrées à l’AD avec cette commande :
Get-ADComputer -Filter {OperatingSystem -like '*Windows 10*'}
Ensuite, nous allons coupler cette commande à Measure-Object pour compter le nombre d’éléments retourné.
(Get-ADComputer -Filter {OperatingSystem -like '*Windows 10*'} | Measure-Object).Count
De la même façon, on peut compter le nombre total d’objets « ordinateurs » dans l’annuaire en retirant le filtre sur l’OS :
(Get-ADComputer -Filter * | Measure-Object).Count
Si l’on repart de notre filtre précédent, on peut l’affiner pour rechercher uniquement les machines Windows 10 actives sur les 6 derniers mois. Pour cela, nous devons ajouter une condition Where basée sur l’attribut « LastLogonDate » à savoir la date de dernière connexion de l’ordinateur au domaine.
Get-ADComputer -Filter {OperatingSystem -like '*Windows 10*'} -Properties lastLogonDate | where { $_.lastLogonDate -gt (Get-Date).AddMonths(-6) }
Si vous souhaitez prendre une période plus longue, par exemple 12 mois, remplacez « -6 » par « -12 » pour prendre une date de référence correspondant à : la date du jour – 12 mois.
Bien sûr, cette méthode s’applique également aux autres systèmes d’exploitation, y compris Windows Server : il suffit d’ajuster le filtre.
IV. Quelle est la date de dernière connexion au domaine d’une machine ?
Reprenons la propriété « LastLogonDate » évoquée précédemment. Elle correspond à un attribut du même nom présent au sein de chaque objet de type « ordinateurs ».
Si l’on veut obtenir une liste avec le nom des machines et la date de dernière connexion, il suffira d’exécuter la commande suivante :
Get-ADComputer -Filter * -Properties * | ft Name, LastLogonDate
C’est la fin de ce chapitre ! Dans le prochain chapitre, nous allons nous approfondir la notion d’objets inactifs, que ce soit pour les utilisateurs ou les ordinateurs.