本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)
本机主要知识点是Win32_ComputerSystem类。通过该类我们将可以获取部分系统设置。
如何使用WMI查询是否开启了系统硬件安全设置密码?
SELECT AdminPasswordStatus FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358423333_1725.png)
我们开启了系统硬件安全设置密码,我们要修改BOIS信息将要求输入密码。这个功能一般很少用到。我电脑上没有设置这个密码,所以返回值是1。它其他值的解释是
Value | Meaning |
---|---|
| Disabled |
| Enabled |
| Not Implemented |
| Unknown |
SELECT BootupState FROM Win32_ComputerSystem
一般情况下,我们都是正常启动系统的。但是如果我们系统出现问题,比如上次电脑是意外关闭的,我们往往会看到Windows会让我们选择启动方式:正常启动(Normal boot)、安全模式启动(Fail-safe boot)、带网络的安全模式启动(Fail-safe with network boot)等。如果我们想知道本次电脑的启动方式,就可以使用这个方法查询到。同时,我们可以由此推断,在安全模式下,WMI也是可以使用的。
如何使用WMI查询当前系统所属的域?
SELECT Domain FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358424526_1239.png)
我们在公司的环境下登录某个特定的环境,这个环境可能属于某个域。如果当前系统不在任何域中,则这个查询将返回工作组(WorkGroup)名字。那怎么辨别呢,我们看下面一个查询。
如何使用WMI查询当前系统是否属于某个域?
SELECT PartOfDomain FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358426244_9459.png)
如何使用WMI查询当前系统属于哪个工作组?
SELECT Workgroup FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/18/1358441390_4568.png)
如果通过对PartOfDomain的查询得出FALSE的答案,则可以查询Workgroup字段,查看该系统属于哪个工作组。
如何使用WMI查询当前系统属于域或工作组中属于什么角色?
SELECT DomainRole FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358424749_9419.png)
这个字段的个释义是
Value | Meaning |
---|---|
| Standalone Workstation |
| Member Workstation |
| Standalone Server |
| Member Server |
| Backup Domain Controller |
| Primary Domain Controller |
SELECT InfraredSupported FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358424972_6572.png)
FALSE代表我电脑上没有红外端口,反之返回的是TRUE。
如何使用WMI查询是否设置了键盘密码(Keyboard Password)?
SELECT KeyboardPasswordStatus FROM Win32_ComputerSystem
它的值的释义是
Value | Meaning |
---|---|
| Disabled |
| Enabled |
| Not Implemented |
| Unknown |
SELECT Manufacturer FROM Win32_ComputerSystem
如果是组装电脑,该条信息返回的是主板厂商名称。
如何使用WMI查询当前电脑的产品名称?SELECT Model FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358425735_7479.png)
结合以上信息,可以知道我电脑是Dell的OptiPlex 780。如果是组装电脑,该条数据将返回主板型号。
如何使用WMI查询当前系统的是否开启了网络服务模式?
SELECT NetworkServerModeEnabled FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358425954_1540.png)
如何使用WMI获取当前系统类型?
SELECT SystemType FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358426620_3446.png)
以上值说明当前系统是X86体系的系统。它还可能是:"x64-based PC"、"X86-based PC"、"MIPS-based PC"、"Alpha-based PC"、"Power PC"、"SH-x PC"、"StrongARM PC"、"64-bit Intel PC"、"64-bit Alpha PC"、"Unknown"、"X86-Nec98 PC"。
如何使用WMI查询当前电脑的物理内存大小?
SELECT TotalPhysicalMemory FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358426942_8275.png)
该大小是以Bytes为单位的。
如何使用WMI获取OEM厂商的Logo?
SELECT OEMLogoBitmap FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358427366_4460.png)
这段内存信息可以见得是一个BMP文件。它就是
如何使用WMI获得上图中“技术支持信息”按钮点开后的信息?
SELECT SupportContactDescription FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/17/1358427705_5145.png)
![](https://img-my.csdn.net/uploads/201301/17/1358427734_5573.png)
如何使用WMI查询是否设置了开机密码?
SELECT PowerOnPasswordStatus FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/18/1358442395_9731.png)
如果设置了开机密码,我们开机后,会进入黑屏,让我们输入密码。如果密码输入错了就不会启动系统。一般鲜见设置这个密码。它的释义是
Value | Meaning |
---|---|
| Disabled |
| Enabled |
| Not Implemented |
| Unknown |
SELECT PCSystemType FROM Win32_ComputerSystem
![](https://img-my.csdn.net/uploads/201301/18/1358444137_4612.png)
该属性只有在XP以上的系统中可以使用。它的释义是
Value | Meaning |
---|---|
| Unspecified |
| Desktop |
| Mobile |
| Workstation |
| Enterprise Server |
| Small Office and Home Office (SOHO) Server |
| Appliance PC |
| Performance Server |
| Maximum |