Parfois il vous sera nécessaire de faire ressortir les versions windows qu’il y a dans votre AD.
Dans mon cas j’ai besoin de savoir combien j’ai de compte ordinateur Active Directory lié à mes VM sous Windows Server 2019 en autre.
Pour cela je vais utiliser la commande Powershell:
Get-AdComputer inclus dans le module Powershell ActiveDirectory.
Nous allons donc voir comment rechercher les versions de Windows avec Powershell. Nous allons essayer de faire cela en une ligne de commande, sans nécessairement faire un script. C’est parti!
Table des matières
- Prérequis pour utiliser Get-AdComputer
- Trouver les propriétés qui nous intéressent
- Restreindre le champ de recherche
- Résultat final
- Conclusion
Prérequis pour utiliser Get-AdComputer
La commande Get-AdComputer fait partie du module Active Directory.
Le module Active Directory est une consolidation de commande Powershell pour vous aider à administrer vos domaines Active Directory.
Il vous faut donc télécharger et installer les RSAT Remote Server Administration Tools pour Windows disponible ici.
Depuis la mise à jour de Windows 10 d’Octobre 2018 il vous suffit d’ajouter le RSAT qui vous intéresse depuis Paramètres > Applications et fonctionnalités > Gérer les fonctionnalités facultatives > Ajouter une fonctionnalité
Privilèges ou Droits Utilisateurs pour lancer la commande
Pour retrouver des informations d’un domaine AD vous devez simplement être membre de celui-ci.
Il faut donc soit être membre du groupes: « Utilisateurs du domaine » ou « Utilisateurs Authentifiés » c’est cool et à la fois dangereux selon moi.
Prérequis réseau
Pouvoir joindre un contrôleur de domaine en powerhsell.
Trouver les propriétés qui nous intéressent.
Avec Powershell notamment lorsque l’on utilise des commandes qui commencent par Get lorsque l’on ne connait pas le nom de la propriété que l’on recherche. Le plus simple (selon moi) est de faire: la commande + le nom de l’objet que l’on interroge suivi du paramètre -Properties * quand c’est possible.
Ce qui donne Get-Adcomputer Server01 -Properties *
Il y a 89 propriétés! Je vous l’avoue c’est long mais au moins nous avons tout.
Petit Tips pour calculer le nombre de propriété:
Get-ADComputer Server01 -properties * | Get-Member | ? { $_.MemberType -eq « Property »} | measure
Les propriétés qui m’intéressent sont donc:
- CN (Canonical Name): Pour récupérer le nom de la machine > Server01
- OperatingSystem: Le nom de l’OS sur la machine > Windows Server2012 Standard
- WhenCreated: Quand la machine a été ajouté dans l’AD (parce que ça m’intéresse) > 08/07/2016 19:07:14
- LastLogonDate: La dernière connexion sur cette machine (parce que ça m’intéresse aussi :-)) > 11/08/2021 13:21:10
Restreindre le champ de recherche
Maintenant que nous avons les propriétés qui nous intéressent, nous allons restreindre le champ de recherche à une OU (Organisation Unit) en particulier grâce au paramètre -SearchBase afin de pas scruter tout notre AD et ressortir tous les comptes ordinateur.
Le paramètre SearchBase nécessite d’entrer l’OU cible en « Distinguished Name ».
Get-ADComputer -SearchBase « OU=Serveurs,OU=Paris,DC=sysproject,DC=local »
cmdlet Get-ADComputer at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
Filter:
En entrant la commande, PS nous indique qu’il faut entrer le paramètre « -Filter » pour pouvoir l’exécuter dans notre cas je vais filtrer sur le nom des serveurs.
Get-ADComputer -SearchBase « OU=Serveurs,OU=Paris,DC=sysproject,DC=local » -Filter { name -like « * »}
Résultat final
Pour finir nous allons sélectionner les propriétés que nous avions choisi précédemment.
Get-ADComputer -SearchBase « OU=Serveurs,OU=Paris,DC=sysproject,DC=local » -Filter { name -like « * » } -Properties CN, OperatingSystem, WhenCreated, LastLogonDate | Select-Object -Property CN, LastLogonDate, WhenCreated, OperatingSystem
CN LastLogonDate WhenCreated OperatingSystem
— ————- ———– —————
Server01 18/08/2021 12:53:24 13/02/2018 14:43:06 Windows Server 2012 R2 Sta…
Server02 24/07/2021 04:30:24 30/07/2015 19:10:38 Windows Server 2012 R2 Sta…
Server03 18/08/2021 23:33:09 27/02/2019 10:16:54 Windows Server 2016 Standard
Server04 09/08/2021 21:23:15 22/09/2020 14:11:44 Windows Server 2019 Standard
Server05 17/08/2021 01:17:23 30/03/2018 18:13:31 Windows Server 2016 Standard
Pour aller plus loin
Nous allons uniquement sélectionner les versions des systèmes d’exploitation qui nous intéresse pour ma part je recherche les version de Windows Server en 2019.
Pour se faire je vais utiliser la commande Where-Object (raccourci ?) et le paramètre -like
Get-ADComputer -SearchBase « OU=Serveurs,OU=Paris,DC=sysproject,DC=local » -Filter { name -like « * » } -Properties CN, OperatingSystem, WhenCreated, LastLogonDate | Select-Object -Property CN, LastLogonDate, WhenCreated, OperatingSystem | ? {$_.OperatingSystem -like « *2019* »}
CN LastLogonDate WhenCreated OperatingSystem
— ————- ———– —————
Server01 09/08/2021 21:23:15 22/09/2020 14:11:44 Windows Server 2019 Standard
Server02 12/08/2021 21:53:56 15/03/2021 09:26:05 Windows Server 2019 Standard
Server03 13/08/2021 02:52:23 15/03/2021 09:27:54 Windows Server 2019 Datace…
Server04 18/08/2021 21:56:28 16/04/2020 17:03:35 Windows Server 2019 Datace…
Server05 16/08/2021 05:33:02 07/04/2021 16:10:44 Windows Server 2019 Standard
Server06 12/08/2021 17:33:22 02/08/2021 15:34:46 Windows Server 2019 Standard
Pour aller encore un peu plus loin
Nous allons un peu améliorer le résultat car on peut voir que les noms sont légèrement tronqués.
La commande Format-Table (raccourci ft) avec le paramètre Autosize va nous permettre de faire cela
Get-ADComputer -SearchBase « OU=Serveurs,OU=Paris,DC=sysproject,DC=local » -Filter { name -like « * » } -Properties CN, OperatingSystem, WhenCreated, LastLogonDate | Select-Object -Property CN, LastLogonDate, WhenCreated, OperatingSystem | ? {$_.OperatingSystem -like « *2019* »} | ft -Autosize
CN LastLogonDate WhenCreated OperatingSystem
— ————- ———– —————
Server01 09/08/2021 21:23:15 22/09/2020 14:11:44 Windows Server 2019 Standard
Server02 12/08/2021 21:53:56 15/03/2021 09:26:05 Windows Server 2019 Standard
Server03 13/08/2021 02:52:23 15/03/2021 09:27:54 Windows Server 2019 Datacenter
Server04 18/08/2021 21:56:28 16/04/2020 17:03:35 Windows Server 2019 Datacenter
Server05 16/08/2021 05:33:02 07/04/2021 16:10:44 Windows Server 2019 Standard
Conclusion
Grâce à la puissance et à la simplicité de Powershell on peut arriver à des résultats rapide et vraiment complet.
j’espère que désormais vous savez comment rechercher les versions de Windows avec Powershell ?
Qu’avez-vous pensé de cet article n’hésitez pas à commenter et à proposer des suggestions d’amélioration.
Merci de m’avoir lu.
Commentaires récents