How to determine OS Platform with WMI?

2020-07-05 06:47发布

I am trying to figure out if there is a location in WMI that will return the OS Architecture (i.e. 32-bit or 64-bit) that will work across "all" versions of Windows. I thought I had figured it out looking at my Win2k8 system when I found the following:

 Win32_OperatingSystem / OSArchitecture

I was wrong. It doesn't appear that this field exists on Win2k3 systems. Argh!

So, is anyone aware of another field in WMI that "is" the same across server versions? If not, what about a registry key that is the same? I am using a tool that only allows me to configure simple field queries, so I cannot use a complex script to perform.

Any help would be greatly appreciated.

13条回答
可以哭但决不认输i
2楼-- · 2020-07-05 07:51

If you need the Operating System architecture as opposed to the processor, this works if you're confident you have no 64 bit Windows 5.x systems:

Set colItems = objWMI.ExecQuery("Select * from Win32_OperatingSystem",,48)  
on error resume next  

For Each objItem in colItems  
    Ver = objItem.Version  
    OSname = split(objItem.Name,"|")  
    Arch = "32-bit"  
    if left(Ver,3) >= 6.0 then    ' 5.x doesn't support this property  
        Arch = objItem.OSArchitecture  
    end if  
Next  
wscript.echo " OS Version: " & Ver & " {" & trim(OSname(0)) & " " & Arch & "}"
查看更多
登录 后发表回答