1 个稳定版本
1.1.3 | 2023年2月21日 |
---|---|
1.0.0 |
|
#94 in Windows API
35KB
281 行
query_wmi
用于查询Windows中WMI类的crate
https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page
Windows管理规范(WMI)是Windows基于操作系统的管理数据和操作的基础设施。您可以通过编写WMI脚本或应用程序来自动化远程计算机上的管理任务,但WMI还向操作系统的其他部分和产品提供管理数据——例如,系统中心操作管理器(以前称为Microsoft Operations Manager (MOM)),或Windows远程管理(
WinRM
)。用法
use query_wmi::{COMLibrary, Variant, WMIConnection};
use query_wmi::computer_hardware::{
get_Win32_CDROMDrive, get_Win32_ComputerSystem,
get_Win32_PCMCIAController, get_Win32_PnPEntity, get_Win32_Processor,
get_Win32_SystemEnclosure, get_Win32_TapeDrive, get_Win32_USBHub,
};
use query_wmi::operating_systems::get_Win32_OperatingSystem;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let com_con = COMLibrary::new()?;
dbg!(get_Win32_OperatingSystem(com_con)?);
dbg!(get_Win32_CDROMDrive(com_con)?);
dbg!(get_Win32_ComputerSystem(com_con)?);
dbg!(get_Win32_PCMCIAController(com_con)?);
dbg!(get_Win32_PnPEntity(com_con)?);
dbg!(get_Win32_Processor(com_con)?);
dbg!(get_Win32_SystemEnclosure(com_con)?);
dbg!(get_Win32_USBHub(com_con)?);
dbg!(get_Win32_TapeDrive(com_con)?);
Ok(())
}
返回类型
类型 查询 = Vec<HashMap<String, Variant>>
.
String
是返回结构体字段的名称,Variant
是枚举类型。
目前包含的查询
子部分是根据 WMI脚本项目和应用程序的任务 定义的,您可以在 这里 找到更多类。
- Win32_CDROMDrive
- Win32_ComputerSystem
- Win32_PCMCIAController
- Win32_PnPEntity
- Win32_PointingDevice
- Win32_Processor
- Win32_SystemEnclosure
- Win32_USBHub
- Win32_TapeDrive
- Win32_DiskQuota
- Win32_VolumeChangeEvent
- Win32_LogicalDisk
- Win32_MappedLogicalDisk
- Win32_Volume
- Win32_DiskDrive
- Win32_DiskPartition
构建自己的类查询
您可以使用提供的 wmi
宏来创建自己的查询
#![allow(non_snake_case)]
use query_wmi::wmi;
use query_wmi::Query;
use paste::paste;
use std::collections::HashMap;
use query_wmi::COMLibrary;
use query_wmi::{Variant, WMIConnection};
// this creates the function `get_CLASS_NAME()`
wmi! {
/// Documentation
CLASS_NAME, r"path_to_namespace"
}
// calling it
let com_con = COMLibrary::new() ?;
dbg!(get_CLASS_NAME(com_con)?);
构建自己的查询
您也可以将 CLASS_NAME
替换为类似下面的查询:CLASS_NAME where SOME_CONDITION=VALUE
查看 WQL 运算符
依赖关系
~0–6MB
~15K SLoC