首页 > PHP资讯 > HTML5培训技术 > 利用Javascript通过WMI取得Windows系统信息

利用Javascript通过WMI取得Windows系统信息

HTML5培训技术

用户访问web服务出错时若是能得到用户的系统配置信息,想必是极好的。

我们惯用的做法是在用户的机器上运行一些程序,得到用户的系统信息,而一般的web页面,根据http信息,往往只能得到客户的浏览器和简单的系统信息,得不到系统的详尽物理信息等。

现在我们尝试一种利用WMI得到系统信息的方法。

引用一段百度百科的介绍:

WMI,是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。


我们来看代码:

function GetInformation(){	var locator = new ActiveXObject ("WbemScripting.SWbemLocator");	var service = locator.ConnectServer(".");	var properties = service.ExecQuery("select * from Win32_Processor");//CPU 信息	var value = "";	var e = new Enumerator (properties);	for (; !e.atEnd(); e.moveNext()) {	var p = e.item ();	 value += p.Name ;	}	return value;}



成功的结果:

期间遇到些问题:

期间遇到过“invalid class”或“out of memory”的错误信息

参见这里

http://technet.microsoft.com/zh-cn/library/ff406382.aspx#E4H

  x80041010 的错误消息意味着您尝试引用了不存在的 WMI 类。出现此错误的原因通常是:类名称的拼写错误。例如,您尝试连接的是名为 Win32_Services 的类(其末尾有一个 s),而实际的类名为 Win32_Service(其末尾没有 s)。引用了错误的命名空间。脚本编写者时常会连接到 rootcimv2 命名空间,然后尝试访问 StdRegProv 类。遗憾的是,StdRegProv 实际上位于 rootdefault 命名空间中。尝试访问的是特定操作系统不支持的类。例如,SystemRestore 类(位于 rootdefault 命名空间中)只在 Windows XP 上受支持。如果您尝试访问该类时它位于(比方说)运行 Windows 2000 的计算机上,则多半会收到“无效类”错误。    注意:尝试连接到不存在的类时,您收到的错误可能不是 0x80041010,而是错误 0x80041002(“无法找到对象”)或错误 0x80041006(“内存不足”)。

/desktop/aa394373(v=vs.85).aspx

延展:因为WMI重置前,一直无法正确得到系统信息,调查发现flash也能拿到类似的结果,或许可以解决linux和mac上的探测问题,可参考:

http://www.moock.org/asdg/technotes/echoVersion/

HTML5培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持35不支持0