fuinei 发表于 2012-9-12 15:29:41

查询远程计算机系统的版本(32位还是64位)

各位好,请问能否使用AU3(如WMI)查询远程计算机的操作系统是32位还是64位呢?

zcx880517 发表于 2012-9-13 14:06:02

If @OSArch = "X86"      32位
If @OSArch = "X64"      64位

fuinei 发表于 2012-9-14 11:44:05

回复 2# zcx880517

谢谢zcx880517兄的回复,我希望是查询远程计算机而不是本机的系统版本,不知道有没有什么比较好的方法呢?

zcx880517 发表于 2012-9-14 12:14:00

回复 3# fuinei


    不好意思。。没注意到

fuinei 发表于 2012-9-14 12:38:41

回复 4# zcx880517

请问你有没有什么好的方法可实现这个功能?我估计WMI可以,但没有找到对应的值

虫子樱桃 发表于 2012-9-15 16:11:02

On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
   WScript.Echo "AddressWidth: " & objItem.AddressWidth
Next

fuinei 发表于 2012-9-15 23:23:25

回复 6# 虫子樱桃

谢谢虫子樱桃兄的回复,从查询的对象 (Win32_Processor)来看好像是查询CPU的,在32位的OS中可返回32,家里暂时没有64位的OS周一到公司测试一下,我想再确认一下查询Win32_Processor可获取到OS的版本吗?

skyfree 发表于 2012-9-16 15:56:09

简单那的方法不知道你要不要听,检查有无 Windows\SysWOW64目录,有就是X64,没有就是X86……

fuinei 发表于 2012-9-17 18:13:51

回复 6# 虫子樱桃

测试成功,32位OS返回32,64位OS返回64,测试中发现查询Win32_Processor对象的AddressWidth属性即可返回系统版本信息

fuinei 发表于 2012-9-17 18:15:59

回复 8# skyfree

好方法,应该判断系统盘是否有Program Files (x86)文件夹也可以,但有个前提需要知道目标客户端的系统盘符
页: [1]
查看完整版本: 查询远程计算机系统的版本(32位还是64位)