Photo by Nathan Dumlao / Unsplash

Filtre WMI pour identifier 32 et 64 bits

Aug 3, 2020

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).

Donc, s’il vous plaît, si vous travaillez dans un environnement multilingue (ou même dans tout environnement), préférez utiliser le filtre WMI suivant :

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

Tags

Bastien Perez

Freelance Microsoft 365 - Active Directory - Modern Workplace