wmi是一个强大的技术:只需要简单的指定一个WMI类名就能返回它类的所有实例:
复制代码 代码如下:
PS> Get-WmiObject -Class Win32_BIOS
SMBIOSBIOSVersion : 76CN27WW
Manufacturer : LENOVO
Name : 76CN27WW
SerialNumber : 1006250300406
Version : LENOVO – 1
你如何知道它有哪些类呢?这里有一款查找工具:
复制代码 代码如下:
function Find-WMIClass
{
param
(
[Parameter(Mandatory=$true)]
$SearchTerm = ‘Resolution’
)
Get-WmiObject -Class * -List |
Where-Object { $_.Properties.Count -ge 3 } |
Where-Object { $_.Name -notlike ‘Win32_Perf*’ } |
Where-Object {
$ListOfNames = $_.Properties | Select-Object -ExpandProperty Name
($ListOfNames -like “*$SearchTerm*”) -ne $null
} |
Sort-Object -Property Name
}
设置搜索条件后,代码将搜索出包含指定属性名的类(还可以通过通配符扩大搜索范围)
下面将找出所有包含“resolution”结尾的WMI类:
复制代码 代码如下:
PS> Find-WMIClass -SearchTerm *resolution
NameSpace: ROOT\cimv2
Name Methods Properties
—- ——- ———-
CIM_CacheMemory {SetPowerState, R… {Access, AdditionalErr…
CIM_CurrentSensor {SetPowerState, R… {Accuracy, Availabilit…
CIM_FlatPanel {SetPowerState, R… {Availability, Caption…
CIM_Memory {SetPowerState, R… {Access, AdditionalErr…
CIM_MonitorResolution {} {Caption, Description,…
CIM_NonVolatileStorage {SetPowerState, R… {Access, AdditionalErr…
CIM_NumericSensor {SetPowerState, R… {Accuracy, Availabilit…
CIM_PCVideoController {SetPowerState, R… {AcceleratorCapabiliti…
CIM_PointingDevice {SetPowerState, R… {Availability, Caption…
CIM_Printer {SetPowerState, R… {Availability, Availab…
CIM_Tachometer {SetPowerState, R… {Accuracy, Availabilit…
CIM_TemperatureSensor {SetPowerState, R… {Accuracy, Availabilit…
CIM_VideoController {SetPowerState, R… {AcceleratorCapabiliti…
CIM_VideoControllerResolution {} {Caption, Description,…
CIM_VolatileStorage {SetPowerState, R… {Access, AdditionalErr…
CIM_VoltageSensor {SetPowerState, R… {Accuracy, Availabilit…
Win32_CacheMemory {SetPowerState, R… {Access, AdditionalErr…
Win32_CurrentProbe {SetPowerState, R… {Accuracy, Availabilit…
Win32_DisplayControllerConfigura… {} {BitsPerPixel, Caption…
Win32_MemoryArray {SetPowerState, R… {Access, AdditionalErr…
Win32_MemoryDevice {SetPowerState, R… {Access, AdditionalErr…
Win32_NetworkAdapterConfiguration {EnableDHCP, Rene… {ArpAlwaysSourceRoute,…
Win32_PointingDevice {SetPowerState, R… {Availability, Caption…
Win32_Printer {SetPowerState, R… {Attributes, Availabil…
Win32_PrinterConfiguration {} {BitsPerPel, Caption, …
Win32_SMBIOSMemory {SetPowerState, R… {Access, AdditionalErr…
Win32_TemperatureProbe {SetPowerState, R… {Accuracy, Availabilit…
Win32_VideoConfiguration {} {ActualColorResolution…
Win32_VideoController {SetPowerState, R… {AcceleratorCapabiliti…
Win32_VoltageProbe {SetPowerState, R… {Accuracy, Availabilit…
接着,就可以使用类名查看它的有效数据啦:
复制代码 代码如下:
PS> Get-WmiObject -Class CIM_CacheMemory | Select-Object -Property *
心得:
其实有个类似功能的图形工具比这段代码更方便更直观,它叫ScriptomaticV2。
您可能感兴趣的文章:
- 探索PowerShell(十三) WMI对象介绍
- 探索PowerShell(十四) 使用WMI对象的方法
- Powershell小技巧之使用WMI测试服务响应
- Powershell小技巧之使用WMI查询插上的U盘
- PowerShell入门教程之访问.Net程序集、COM和WMI实例

评论(0)