本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)
本文主要知识点是Win32_OperatingSystem和Win32_QuickFixEngineering类。通过该类我们将可以获取部分系统设置。
如何使用WMI获取系统UUID?
SELECT UUID FROM Win32_ComputerSystemProduct
该值可能为空。如果该值存在,其保存在HKEY_LOCAL_MACHINE\SOFTWARE\Intel\PIcon\AMTData\System UUID下。
如何使用WMI获取Windows操作系统启动硬盘设备名?
SELECT BootDevice FROM Win32_OperatingSystem
如何使用WMI获取系统Build版本号?
SELECT BuildNumber FROM Win32_OperatingSystem
如何使用WMI获取系统Build版本类型?
SELECT BuildType FROM Win32_OperatingSystem
基于NT版本的操作系统又两种Build版本类型。一种是Checked,一种是Free(或者retail)。一般来说,Free版本就是零售版本,其二进制执行文件是经过了编译器优化的。而Checked版本,则是为了方便调试,将很多编译器优化禁用了,还增加了很多的调试检测代码。所以一般来说,Free版本的文件大小要比Checked版本文件大小要小。更详细的资料请参略http://msdn.microsoft.com/en-us/library/ff543450.aspx。
如何使用WMI获取系统名?
SELECT Caption FROM Win32_OperatingSystem
如何使用WMI获取系统的Code Page?
SELECT CodeSet FROM Win32_OperatingSystem
936即对应于Simplified Chinese GBK。
如何使用WMI获取地区代码?
SELECT CountryCode FROM Win32_OperatingSystem
86即对应于中国大陆。中国台湾地区是886,中国香港是852,中国澳门是853。
如何使用WMI获取系统的补丁包版本号?
SELECT CSDVersion FROM Win32_OperatingSystem
如何使用WMI获取系统的空闲的物理内存?
SELECT FreePhysicalMemory FROM Win32_OperatingSystem
该单位是以Kb为单位的。它标识了当前系统有多少尚未使用且可用的内存。
如何使用WMI获取页文件空闲空间大小?
SELECT FreeSpaceInPagingFiles FROM Win32_OperatingSystem
该数值也是以Kb为单位的。
如何使用WMI获取空闲的虚拟内存大小?
SELECT FreeVirtualMemory FROM Win32_OperatingSystem
该数值也是以Kb为单位的。
如何使用WMI获取系统最后一次启动时间?
SELECT LastBootUpTime FROM Win32_OperatingSystem
这表示我最近一次系统启动时间是2013年2月4号9时6分22秒。
如何使用WMI获取系统中正在运行的进程数量?
SELECT NumberOfProcesses FROM Win32_OperatingSystem
如何使用WMI获取系统注册用户的公司名?
SELECT Organization FROM Win32_OperatingSystem
如何使用WMI获取系统语言包种类?
SELECT OSLanguage FROM Win32_OperatingSystem
其对应的是Chinese (Simplified) – PRC
如何使用WMI判断系统是否从外置USB设备启动的?
SELECT PortableOperatingSystem FROM Win32_OperatingSystem
为True则代表是从USB设备中启动的。
如何使用WMI判断当前系统是否是主系统?
SELECT Primary FROM Win32_OperatingSystem
如何使用WMI判断系统类型?
SELECT ProductType FROM Win32_OperatingSystem
它的值的释义是
Value | Meaning |
---|---|
1 | Work Station |
2 | Domain Controller |
3 | Server |
如何使用WMI获取系统的注册用户名?
SELECT RegisteredUser FROM Win32_OperatingSystem
如何使用WMI获取系统序列号?
SELECT SerialNumber FROM Win32_OperatingSystem
如何使用WMI获取系统安装在那个设别上?
SELECT SystemDevice FROM Win32_OperatingSystem
如何使用WMI获取系统盘盘符?
SELECT SystemDrive FROM Win32_OperatingSystem
如何使用WMI查询系统可以见内存大小?
SELECT TotalVisibleMemorySize FROM Win32_OperatingSystem
该单位是以Kb为单位的。
如何使用WMI枚举已经安装的补丁信息?
SELECT * FROM Win32_QuickFixEngineering
以上信息是来源于
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Hotfix
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates
工程源码见《WMI技术介绍和应用——WMI概述》结尾。