WMIC查询获取本地硬件信息(主板型号,硬盘序列号,CPU参数等)
2014-10-31 16:34
267 查看
这次负责一个小模块,做一个本地服务程序获取本机的硬件信息,组装成XML文件。
语言:Java
平台:Windows 2003及以上的各版本Windows
因为在Windows系统上有非常强大的WMIC(Windows ManagementInstrumentation)工具, WMIC工具获得本计算机的相关信息。
WMIC
WMIC使用了别名机制,通过我们可以理解的语言来操作复杂的WMI命名空间。通过这个这个工具我们可以用简单的WQL(类似SQL)语句,通过一个简单的Get命令就可以得到我们需要的信息。
比如
wmic os get name. //得到操作系统的名称。
wmic logicaldisk get caption //获得磁盘的逻辑分区信息
WMIC 的使用基本不需要教程,因为它的帮助功能非常方便。在任何一个分级都可以通过 /?选项获得详细的帮助消息。
比如
wmic os get /?
获取计算机信息
由于java是跑在jvm上的,因此想要调用wmic需要先获的runtime对象,然后获得运行后的process的输入流,然后通过java对流的处理来处理获得数据。
Process proc = runtime.exec("cmd /c" + {wmic语句});
InputStream input = proc.getInputStream();
我主要用到的是get语句,其结果会以 title \n \n result的格式呈现,因此为了处理方便,可以封装成bufferReader,然后通过两次Readline去掉前两行,直接获得结果数据。
BufferReader br = new BufferedReader(newInputStreamReader(proc.getInputStream());
<span style="white-space:pre"> </span>for(int i = 0; i < 2; i ++) { //两次循环去掉标题栏,只获取结果数据
<span style="white-space:pre"> </span>br.readLine();
另外wmic还有一个很重要的list语句,其使用同样可以通过list /? 得到帮助。一般对于某个alias可以先 wmic [alias] list brief 获得其主要参数,如果结果不满足需求还可以直接list full,这里的full是缺省参数。
语言:Java
平台:Windows 2003及以上的各版本Windows
因为在Windows系统上有非常强大的WMIC(Windows ManagementInstrumentation)工具, WMIC工具获得本计算机的相关信息。
WMIC
WMIC使用了别名机制,通过我们可以理解的语言来操作复杂的WMI命名空间。通过这个这个工具我们可以用简单的WQL(类似SQL)语句,通过一个简单的Get命令就可以得到我们需要的信息。
比如
wmic os get name. //得到操作系统的名称。
wmic logicaldisk get caption //获得磁盘的逻辑分区信息
WMIC 的使用基本不需要教程,因为它的帮助功能非常方便。在任何一个分级都可以通过 /?选项获得详细的帮助消息。
比如
wmic os get /?
获取计算机信息
由于java是跑在jvm上的,因此想要调用wmic需要先获的runtime对象,然后获得运行后的process的输入流,然后通过java对流的处理来处理获得数据。
Process proc = runtime.exec("cmd /c" + {wmic语句});
InputStream input = proc.getInputStream();
我主要用到的是get语句,其结果会以 title \n \n result的格式呈现,因此为了处理方便,可以封装成bufferReader,然后通过两次Readline去掉前两行,直接获得结果数据。
BufferReader br = new BufferedReader(newInputStreamReader(proc.getInputStream());
<span style="white-space:pre"> </span>for(int i = 0; i < 2; i ++) { //两次循环去掉标题栏,只获取结果数据
<span style="white-space:pre"> </span>br.readLine();
<span style="font-family: Arial, Helvetica, sans-serif;"> } </span>
<span style="white-space:pre"> </span>result += br.readLine(); //结果数据只占一行,所以一次读完
另外wmic还有一个很重要的list语句,其使用同样可以通过list /? 得到帮助。一般对于某个alias可以先 wmic [alias] list brief 获得其主要参数,如果结果不满足需求还可以直接list full,这里的full是缺省参数。
相关文章推荐
- 利用JNI方法,通过WMI获取本地硬件信息(主板型号,硬盘序列号,CPU参数等)
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用
- 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- [转]获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- [转]获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- [收藏]如何获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息,等等)
- C++ 硬件信息 获取硬盘序列号
- Atitit.获取主板与bios序列号获取硬件设备信息 Wmi wmic 的作用
- C++ 硬件信息 获取主板序列号
- 基于硬件指纹的软件加密和注册技术--获取硬盘物理序列号、CPU序列号、网卡MAC地址、BIOS序列号、主板序列号
- ASP获取客户端硬件信息(CPU、硬盘、主板、mac地址等)
- 获取计算机的信息(IP地址、MAC地址、CUP序列号、硬盘序列号、主板信息等等)
- 在Linux/centos下查看网卡型号,如何查看主板型号,CPU/显卡信息,硬盘型号等硬件信息
- Atitit.获取主板与bios序列号获取硬件设备信息 Wmi wmic 的作用
- ASP获取客户端硬件信息(CPU、硬盘、主板、mac地址等)
- JSP利用JNI获取硬盘信息(型号,序列号,容量...)