Filtrer par OS vos GPO avec les filtres WMI
Lors de la création de stratégie de groupe, il peut être intéressant de filtrer la GPO seulement pour un type d’OS (cela évitera entre autres que d’exécuter des GPO sur un OS qui n’en a pas besoin) . C’est possible grâce aux filtres WMI. Ainsi vous pourrez filtrer par système d’exploitation, ou encore par type d’ordinateur (desktop ou laptop). L’intérêt peut être également d’éviter de créer trop d’OU (Unité d’Organisation).
Filtres WMI par OS
Pour filtrer par système d’exploitation, nous utiliserons le numéro de version. J’ai fait un article pour que vous puissiez récupérer facilement votre numéro de version ou numéro de build.
Dans le cas d’un serveur, vous pouvez également « jouer » avec la variable « ProductType » qui permet de différencier les serveurs contrôleurs de domaines de ceux qui ne le sont pas.
Voici quelques exemples de filtres WMI pour les systèmes d’exploitation Windows (vous retrouverez quelques exemples pour chaque types d’OS : 64 bits, 32bits, ou les deux) :
Windows Clients :
Windows 7
select Version from Win32_OperatingSystem WHERE Version like “6.1%” AND ProductType=”1″ AND OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “6.1%” AND ProductType=”1″ AND NOT OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “6.1%” AND ProductType=”1″
Windows 8
select Version from Win32_OperatingSystem WHERE Version like “6.2%” AND ProductType=”1″ AND OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “6.2%” AND ProductType=”1″ AND NOT OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “6.2%” AND ProductType=”1″
Windows 8.1
select Version from Win32_OperatingSystem WHERE Version like “6.3%” AND ProductType=”1″ AND OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “6.3%” AND ProductType=”1″ AND NOT OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “6.3%” AND ProductType=”1″
Windows 7, 8 and 8.1 (all versions before 10)
select Version from Win32_OperatingSystem WHERE Version like “6.%” AND ProductType=”1″ AND OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “6.%” AND ProductType=”1″ AND NOT OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “6.%” AND ProductType=”1″
Windows 10 all builds
select Version from Win32_OperatingSystem WHERE Version like “10.%” AND ProductType=”1″ AND OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “10.%” AND ProductType=”1″ AND NOT OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “10.%” AND ProductType=”1″
Windows 10 1507
select Version from Win32_OperatingSystem WHERE Version like “10.0.10240” AND ProductType=”1″ AND OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “10.0.10240” AND ProductType=”1″ AND NOT OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “10.0.10240” AND ProductType=”1″
Windows 10 1511
select Version from Win32_OperatingSystem WHERE Version like “10.0.10586” AND ProductType=”1″ AND OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “10.0.10586” AND ProductType=”1″ AND NOT OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “10.0.10586” AND ProductType=”1″
Windows 10 1607
select Version from Win32_OperatingSystem WHERE Version like “10.0.14393” AND ProductType=”1″ AND OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “10.0.14393” AND ProductType=”1″ AND NOT OSArchitecture = “64-bit”
select Version from Win32_OperatingSystem WHERE Version like “10.0.14393” AND ProductType=”1″
Windows Server :
Windows Server 2003 R2
select Version from Win32_OperatingSystem WHERE Version LIKE “5.2%”
Windows Server 2008
select Version from Win32_OperatingSystem WHERE Version LIKE “6.0%” AND ( ProductType = “2” or ProductType = “3” )
Windows Server 2008 R2
select Version from Win32_OperatingSystem WHERE Version LIKE “6.1%” AND ( ProductType = “2” or ProductType = “3” )
Windows Server 2012
select Version from Win32_OperatingSystem WHERE Version LIKE “6.2%” AND ( ProductType = “2” or ProductType = “3” )
Filtrer seulement les Windows Clients
select ProductType FROM Win32_OperatingSystem WHERE ProductType = “1”
Filtrer seulement les Windows Servers
select ProductType from Win32_OperatingSystem where (ProductType = « 2 ») OR (ProductType = « 3 »)
Comment mettre en place un filtre WMI sur une GPO ?
Depuis la console de stratégie de groupe du serveur (gpmc.msc), créer un nouveau filtre WMI depuis le dossier « WMI Filters« . Effectuez un clic droit, puis « Nouveau… »
Ici, rentrer un nom qui colle bien à votre GPO, puis cliquer sur « Ajouter » pour ajouter votre requête WMI.
C’est ici que vous collez la requête WMI qui permettra d’effectuer le filtre.
Vous pouvez ensuite appliquer le filtre, toujours depuis la console de stratégie de groupe, en sélectionnant votre GPO, et en appliquant votre nouveau filtre.
Enjoy.
merci MIKAEL 🙂
Merci ! à utiliser avec parcimonie quand même car ça ralentit le login si on en abuse 🙂
C’est vrai, c’est pourquoi il est conseillé de bien cibler la requête et d’éviter d’utiliser « select Version from * » par exemple.
Utiliser le « joker » prends beaucoup plus de ressources.