如何检查wscript/cscript是否在x64主机操作系统上运行?

viv*_*dos 5 registry vbscript 64-bit wsh

我正在运行可能在x64 Windows下运行的VBScript.我需要从注册表的32位部分读取注册表项.为此,我使用路径HKLM\Software\Wow6432Node\xyz而不是HKLM\Software\xyz.如何检查脚本是否在x64下执行?

Gra*_*ner 3

我不确定您是否需要检查脚本是否在 x64 下执行。

尝试从 读取HKLM\Software\Wow6432Node\xyz,如果失败,请尝试从 读取HKLM\Software\xyz,如果失败,则您的注册表项不存在,请采取任何适当的操作。

当然,如果您的设计更复杂(例如,如果该注册表项不存在,则将值写入该注册表项),那么该建议将不起作用。

这是一个用于检查操作系统的 VBScript。您可能还需要Win32_OperatingSystem 类中可用属性的说明

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")        

Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystems
    msg = objOperatingSystem.Caption & " " & _
            objOperatingSystem.Version & " " & _
                objOperatingSystem.OSArchitecture
    msgbox msg
Next
Run Code Online (Sandbox Code Playgroud)

请注意,对于 Windows XP 和 2003,OSArchitecture不可用,在这种情况下,您可能需要检查 或CaptionVersion确定您的操作系统是否是 64 位。

您也可以根据您需要的复杂程度使用类似的东西