首页 > 编程知识 正文

硬盘序列号查询命令wmic

时间:2023-05-06 06:32:39 阅读:248717 作者:663

这次负责一个小模块,做一个本地服务程序获取本机的硬件信息,组装成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();<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是缺省参数。

Python学习笔记

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。