Comment puis-je vérifier si wscript/cscript s'exécute sur x64 système d'exploitation hôte?
Je suis en cours d'exécution d'un script VBScript qui peuvent s'exécuter sous Windows x64. J'ai besoin de lire une clé de registre à partir de la 32 bits de la partie de la base de registre. Pour que je voie de l'utilisation de HKLM\Software\Wow6432Node\xyz
au lieu de HKLM\Software\xyz
. Comment puis-je vérifier si le script est exécuté sous x64?
OriginalL'auteur vividos | 2009-02-17
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que vous devez vérifier si le script est en cours d'exécution sous x64.
Essayez de lire à partir de
HKLM\Software\Wow6432Node\xyz
, si cela échoue, essayez de lire à partir deHKLM\Software\xyz
, si cela échoue, votre clé de registre n'existe pas, prendre des mesures appropriées.Bien sûr, si votre conception est plus compliqué (par exemple, vous écrivez une valeur dans la clé de registre si elle n'existe pas) alors que la suggestion ne fonctionne pas.
Ici est un VBScript pour l'examen du système d'exploitation. Vous aurez probablement aussi besoin d'une explication de la Propriétés disponibles à partir de la Classe Win32_OperatingSystem
Notez que pour Windows XP et 2003,
OSArchitecture
n'est pas disponible, dans ce cas, vous aurez probablement à examiner, soit leCaption
ouVersion
pour déterminer si votre OS est en 64 bits.Vous pouvez également utiliser quelque chose comme cette selon le niveau de complexité dont vous avez besoin.
OriginalL'auteur Grant Wagner
Même sur la version 64 bits de Windows, vous script execute en mode 32 bits.
Vous pouvez utiliser le code suivant pour déterminer réel bit de mode, vous script en cours d'exécution sur:
OriginalL'auteur Michael Vlasov
Vous de ne pas mentionner ce que l'API que vous utilisez pour lire à partir du registre. Par exemple, si vous utilisez le WMI
StdRegProv
de classe, vous pouvez utiliser le__ProviderArchitecture
drapeau à une demande d'accès au registre 32 bits de la ruche, peu importe si le script est exécuté sous 32-bit ou 64-bit de Windows Script Host. Cette technique est décrite dans la Demandant de Données WMI sur une Plate-forme 64 bits article de MSDN.Voici un exemple de lecture à partir de la 32 bits de registre:
Notez aussi que, dans ce cas, la clé de 32 bits noms doivent être spécifiées de manière habituelle comme
HKLM\Software\xyz
au lieu deHKLM\Software\Wow6432Node\xyz
.OriginalL'auteur Helen
Ici est une solution basée sur la base de connaissances Microsoft article Comment Vérifier Si un Ordinateur Exécute Une version 32 Bits ou 64 Bits du Système d'Exploitation:
SOLUTION ALTERNATIVE
Une alternative et plus concis solution qui rend l'utilisation de WMI peut être trouvé ici.
OriginalL'auteur DavidRR
Une solution très simple consiste à vérifier si (virtuel) dossier
C:\Windows\sysnative
existent. Ce dossier n'existe que dans les processus 32 Bits, voir Redirecteur De Système De FichierNote, ne fonctionne que sur Windows Server 2003 et Windows XP ou supérieur.
OriginalL'auteur Wernfried Domscheit
Cela montre à la fois le système et les processus d'architectures:
Il suffit de cocher celui que vous avez besoin pour
<> "x86"
.OriginalL'auteur Michel de Ruiter