Déterminer si Windows est en 32 bits ou 64 bits en ligne de commande

Command line interface displaying Windows 32-bit and 64-bit system architecture information

Lors de l’administration d’un parc informatique ou de serveurs distants, identifier précisément l’architecture du système d’exploitation Windows (32 bits / x86 ou 64 bits / x64) est un prérequis fréquent. Que ce soit pour pousser un paquet MSI adapté, déployer un pilote d’impression ou scripter une tâche d’inventaire, vous devez pouvoir extraire cette information rapidement, sans nécessairement passer par l’interface graphique.

Les méthodes rapides en invite de commandes (CMD)

Sur les anciennes versions comme Windows Server 2003, les administrateurs utilisaient souvent l’utilitaire srvinfo issu du Resource Kit. Sur les systèmes d’exploitation modernes ou supportés, plusieurs alternatives natives sont immédiatement disponibles.

1. Interroger WMI avec la commande wmic

La solution la plus directe en invite classique consiste à solliciter WMI pour récupérer la propriété dédiée de l’OS :

wmic os get osarchitecture

Le retour indique directement 64-bit ou 32-bit. C’est une commande concise et parfaitement adaptée à une intégration dans un fichier batch.

2. L’utilitaire systeminfo

L’outil natif systeminfo fournit un état complet de la machine. Pour cibler uniquement l’architecture du processeur et du système, combinez-le avec un filtre findstr :

systeminfo | findstr /i « type du système »

Sur un Windows paramétré en anglais, adaptez le filtre :

systeminfo | findstr /i « system type »

Le résultat affichera typiquement x64-based PC pour un OS 64 bits ou x86-based PC pour un OS 32 bits.

3. Le piège des variables d’environnement (%PROCESSOR_ARCHITECTURE%)

Une commande souvent rencontrée consiste à lire les variables d’environnement :

echo %PROCESSOR_ARCHITECTURE%

Attention au piège de l’émulation WoW64 : si un script batch 32 bits est exécuté sur un Windows 64 bits, l’interpréteur CMD s’exécute dans un sous-système 32 bits et renvoie x86. Pour fiabiliser la détection en script CMD, il est nécessaire de vérifier la présence de la variable PROCESSOR_ARCHITEW6432 :

if « %PROCESSOR_ARCHITECTURE% »== »AMD64 » (set ARCH=64) else if « %PROCESSOR_ARCHITEW6432% »== »AMD64 » (set ARCH=64) else (set ARCH=32)

Identifier l’architecture avec PowerShell

Pour l’administration moderne sous Windows 10, 11 ou Windows Server, PowerShell offre des méthodes robustes qui évitent les confusions liées aux variables d’environnement.

Via les classes .NET

La commande la plus rapide interroge directement la classe System.Environment :

[Environment]::Is64BitOperatingSystem

Elle retourne simplement un booléen (True pour 64 bits, False pour 32 bits). Si vous avez besoin de savoir si le processus PowerShell en cours tourne lui-même en 64 bits, vous pouvez tester [Environment]::Is64BitProcess.

Via Get-CimInstance

Pour un script de supervision ou un déploiement distant sur plusieurs serveurs :

(Get-CimInstance -ClassName Win32_OperatingSystem).OSArchitecture

Cette commande retourne la chaîne exacte (« 64-bit » ou « 32-bit ») sans dépendre de la langue du système.

En résumé pour vos scripts de maintenance

Pour vos scripts légers, privilégiez le test .NET sous PowerShell ou la commande wmic os get osarchitecture sous CMD. Ces méthodes éliminent les faux positifs causés par les processus 32 bits tournant sur un OS 64 bits. Lors d’audits de routine sur vos serveurs, vous pouvez combiner ces vérifications avec d’autres mémos pratiques, comme afficher la taille d’un répertoire en ligne de commande ou vérifier l’état des writers VSS avant une session de sauvegarde.

À lire aussi