Photo by Nathan Dumlao / Unsplash
Filtre WMI pour identifier 32 et 64 bits

Filtre WMI pour identifier 32 et 64 bits

Published on 03 Aug 2020

Bastien Perez
Bastien Perez

Clap

Beaucoup de mauvais filtres WMI sur Internet

Je crée des objets de stratégie de groupe depuis des années et je suis souvent consulté pour résoudre les problèmes de GPO. Dernièrement j’ai dû déboguer des GPO créés par un administrateur. La particularité de cette GPO est s’appliquent de manière aléatoires sur les postes.

Tous ces GPO utilisent les filtres WMI suivants pour identifier les ordinateurs 32 et 64 bits SVP, CONTINUER DE LIRE MAIS N’UTILISER PAS CES FILTRES WMI:

SELECT * FROM Win32_OperatingSystem WHERE OSArchitecture="32-bit"

SELECT * FROM Win32_OperatingSystem WHERE OSArchitecture="64-bit"

À première vue, tout semble aller bien. Une brève recherche sur Google indique BEAUCOUP de blog / documentations avec ce filtre. Certains préconisent même d’utiliser SELECT \* FROM Win32\_OperatingSystem WHERE NOT OSArchitecture = "64-bit" pour les 32 bits (spoiler: ce n’est pas mieux).

Alors, quel est le problème ? J’exécute Get-WMIObject -Query ‘SELECT \* FROM Win32\_OperatingSystem WHERE OSArchitecture= "64-bit"et j’obtiens… rien… étrange car mon PC a un CPU et un OS 64 bits.

Je poursuis donc avec un Get-WmiObject -Query ‘SELECT OSArchitecture FROM Win32\_OperatingSystem' :

Avec cette commande, j’ai eu le coupable: sur mon système, installé en français, la valeur OS Architecture value is 64 bits et non 64-bits (tiret en moins).

Les bons filtres WMI pour 32 ou 64 bits

Donc, si vous travaillez dans un environnement multilingue (ou même dans tout environnement), utilisez le filtre WMI suivant :

#32 bits
SELECT AddressWidth FROM Win32_Processor WHERE AddressWidth="32"
# 64 bits
SELECT AddressWidth FROM Win32_Processor WHERE AddressWidth="64"

Comments

banner-Bastien Perez
Bastien Perez

Freelance Microsoft 365 - Active Directory - Modern Workplace

France