创建并返回 WMI 客户端对象,失败返回 null,
所有参数可省略,
@path 默认为 \root\cimv2
@computer 默认为"."
WMI / Windows Management Instrumentation 客户端。
用法也可可参考 com.monitor 库源码,以及『 范例 » COM 组件 » WMI 』。
参考文档 https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-reference
创建 WMI 客户端对象,失败返回 null
这是一个表对象指定了 WMI 类的别名。
for index,item in com.wmi.each("/*遍历参数 @wqlOrObject 指定的 WMI 对象。
参数 @wqlOrObject 也可以指定 WQL 查询语句或 WMI 类名。
可选用参数 @path 指定 WMI 路径,默认为 `\root\cimv2`
可选用参数 @parameters 指定包含 WQL 参数值的表对象,
包含 WQL 语句中 `@` 号开头的命名参数值或以 `?` 号为占位符的匿名参数值(数组成员) */") {
}
for event,targetInstance in com.wmi.eachNotification("/*遍历参数 @wqlOrObject 指定的查询事件通知,同步阻塞执行。
参数 @wqlOrObject 也可以输入 WQL 查询语句或 WMI 类名。
可选用参数 @path 指定 WMI 路径,默认为 `\root\cimv2`
可选用参数 @parameters 指定包含 WQL 参数值的表对象,
包含 WQL 语句中 `@` 号开头的命名参数值或以 `?` 号为占位符的匿名参数值(数组成员) */") {
}
for item,index in com.wmi.eachProperties("/*遍历参数 @wqlOrObject 指定的 WMI 对象的属性表。
参数 @wqlOrObject 也可以输入 WQL 查询语句或 WMI 类名。
可选用参数 @path 指定 WMI 路径,默认为 `\root\cimv2`
可选用参数 @parameters 指定包含 WQL 参数值的表对象,
包含 WQL 语句中 `@` 号开头的命名参数值或以 `?` 号为占位符的匿名参数值(数组成员) */") {
}
格式化参数 @1 指定的 WQL 语句,
com.wmi.query 等函数调用此函数格式化 WQL 语句
格式化参数 @1 指定的 WQL 语句,
参数@2及后续参数指定格式化参数,
支持 @号 开头的命名参数或以 ? 号为占位符的匿名参数,
如果参数不是一个表,则调用 string.format 格式化
可输入 WQL 查询语句或类名,
如果成功则返回查询结果中的第一个元素。
参数 @className 指定 WMI 类名,可省略 "Win32_"前缀 。
参数 @property 指定要取的属性名(只能包含字母、数字、下划线)。
可选用参数 @path 指定 WMI 路径,默认为 \root\cimv2。
成功则返回查询结果的首个元素指定属性的值,失败返回 null。
如果返回值为 CIM_DATETIME 格式的时间字符串,则转换为 time.cim 时间对象。
例如 aardio 代码 com.wmi.get("diskdrive","serialnumber")
的返回的字符串值与执行 wmic diskdrive get serialnumber 命令输出的字符串相同。
参数 @wql 可输入 WQL 查询语句或类名。
仅指定类名时可省略 "Win32_"前缀。
成功则返回查询结果的首个元素( COM 对象 )。
要注意此函数返回的是单个元素,不一定是能用 com.each 遍历的集合对象。
参数 @wql 指定 WQL 查询语句
可选参数 @parameters 可使用一个表对象指定 WQL 参数值。
@号 开头的命名参数值。? 号为占位符的数组参数的值。\root\cimv2。参数 @wql 可输入 WQL 查询语句。
可选用参数 @property 指定要取的属性名(只能包含字母、数字、下划线)。
成功则返回查询结果的首个元素指定属性的值,失败返回 null。
如果返回值为 CIM_DATETIME 格式的时间字符串,则转换为 time.cim 时间对象。
可选用参数 @path 指定 WMI 路径,默认为 \root\cimv2。
可选用参数 @3 及后续参数指定格式化参数。
如果指定了格式化参数则调用 string.format 格式化参数 @wql 。
执行 WQL 查询并获取查询结果内的首个元素。
成功返回包含查询结果内首个元素有效属性名值对的纯表对象(非 COM 对象)。
失败返回 null 值。
将参数 @wmiObject 指定 WMI 对象转换为普通的表对象。
返回包含该对象所有属性名值对的表对象。
失败返回 null
参数 @wql 指定 WQL 查询语句。
可选参数 @parameters 可使用一个表对象指定 WQL 参数值。
@号 开头的命名参数值。? 号为占位符的数组参数的值。\root\cimv2。执行 WQL 查询并返回一个包含了所有查询结果的纯数组。
数组元素为包含 WMI 对象所有属性名值对的属性表(纯值表,非 COM 对象)。
失败返回 null 值。
参数 @wql 指定 WQL 查询语句。
可选参数 @parameters 可使用一个表对象指定 WQL 参数值。
@号 开头的命名参数值。? 号为占位符的数组参数的值。\root\cimv2。调用 ExecQuery 执行 WQL 查询,返回查询结果。
参数 @wql 指定 WQL 查询语句。
可选参数 @parameters 可使用一个表对象指定 WQL 参数值。
@号 开头的命名参数值。? 号为占位符的数组参数的值。\root\cimv2。执行异步 WQL 查询。
参数 @objSink 可指定包含了回调事件的表对象或 com.wmi.sink 对象。
参数 @wql 指定 WQL 查询语句。
可选参数 @parameters 可使用一个表对象指定 WQL 参数值。
@号 开头的命名参数值。? 号为占位符的数组参数的值。\root\cimv2。执行异步 WQL 查询以接收事件。
参数 @objSink 可指定包含了回调事件的表对象或 com.wmi.sink 对象。
参数 @objSink 可指定 com.wmi.sink 对象或者指定了普通表对象。
参数 @wql 可输入 WQL 查询语句或 WMI 类名。
仅指定类名时可省略 "Win32_" 前缀或使用 com.wmi._alias 注册的别名。
可选用参数 @path 指定 WMI 路径,默认为 \root\cimv2。
参数 @objSink 可指定包含了回调事件的表对象或 com.wmi.sink 对象。
参数 @wql 指定 WQL 查询语句。
可选参数 @parameters 可使用一个表对象指定 WQL 参数值。
@号 开头的命名参数值。? 号为占位符的数组参数的值。\root\cimv2。com.wmi.sink(
OnCompleted = function(hResult,wbemErrorObject,wbemAsyncContext){
};
OnObjectPut = function(wbemObjectPath,wbemAsyncContext){
};
OnObjectReady = function(wbemObject,wbemAsyncContext){
};
OnProgress = function(upperBound,current,message,wbemAsyncContext){
};
)
执行查询并接收事件
执行异步查询以接收事件,
参数@1必须传入 com.wmi.sink 创建的对象,
参数@2指定 WQL 查询语句
更多参数说明请参考 https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execnotificationquery
使用 WQL 进行查询,返回 COM 对象,
参数@2必须省略,可选用参数@3指定选项,
半同步优化请将参数@3指定以下值 _wbemFlagReturnImmediately | _wbemFlagForwardOnly
更多参数说明请参考 https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execquery
异步查询对象,
参数@1必须传入 com.wmi.sink 创建的对象,
参数@2指定 WQL 查询语句。
更多参数说明请参考 https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execqueryasync
根据指定的类名,返回可使用 com.each 遍历的对象
删除对象
异步创建或更新 WMI 对象
创建或更新 WMI 对象,
修改属性后要调用这个函数才会生效,
进程可能需要管理权限
_wbemFlagForwardOnly=32
_wbemFlagReturnImmediately=16