Powershell小技巧之使用WMI工具
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所有版本
相关推荐
huangzonggui 2019-12-29
83520298 2019-12-21
zhangjie 2014-10-14
nullplus 2019-06-13
流离岁月 2019-06-13
xiaobater 2012-12-05
nullplus 2012-12-05
Haopython 2019-04-22
Haopython 2015-06-03
wgPython 2015-05-15
windowsIOS 2015-05-15
dgdafas 2009-08-28
YsuLiuYang 2009-08-12
zhangzhiyu 2013-03-19
mingkr 2019-04-09
BitTigerio 2018-01-29
清醒疯子 2017-11-29