Board logo

标题: [原创教程] PowerShell 技能连载 - WMI 搜索工具 [打印本页]

作者: victorwoo    时间: 2014-10-20 09:35     标题: PowerShell 技能连载 - WMI 搜索工具

原始链接:PowerShell 技能连载 - WMI 搜索工具
发表日期:2014-10-15


适用于 PowerShell 所有版本

WMI 是一个很棒很强大的技术:只需要指定一个 WMI 类名,您就可以获取该类的所有实体。
  1. PS> Get-WmiObject -Class Win32_BIOS
  2. SMBIOSBIOSVersion : 76CN27WW
  3. Manufacturer      : LENOVO
  4. Name              : 76CN27WW
  5. SerialNumber      : 1006250300406
  6. Version           : LENOVO - 1
复制代码
那么如何知道有哪些 WMI 类呢?以下是一个搜索工具函数:
  1. function Find-WMIClass
  2. {
  3.    param
  4.    (
  5.       [Parameter(Mandatory=$true)]
  6.       $SearchTerm = 'Resolution'
  7.    )
  8.    Get-WmiObject -Class [i] -List [/i]
  9.    Where-Object { $[i].Properties.Count -ge 3 } [/i]
  10.    Where-Object { $[i].Name -notlike 'Win32[/i]Perf[i]'  } [/i]
  11.    Where-Object {
  12.       $ListOfNames = $_.Properties | Select-Object -ExpandProperty Name
  13.       ($ListOfNames -like "*$SearchTerm*") -ne $null
  14.    } |
  15.    Sort-Object -Property Name
  16. }
复制代码
只需要指定一个搜索条件。该函数将会查找所有属性名中包含搜索条件的 WMI 类(可以用通配符来扩大搜索范围)。

这段代码能搜索属性以“resolution”结尾的 WMI 类:
  1. PS> Find-WMIClass -SearchTerm *resolution
  2.    NameSpace: ROOT\cimv2
  3. Name                                Methods              Properties
  4. ----                                -------              ----------
  5. CIM_CacheMemory                     {SetPowerState, R... {Access, AdditionalErr...
  6. CIM_CurrentSensor                   {SetPowerState, R... {Accuracy, Availabilit...
  7. CIM_FlatPanel                       {SetPowerState, R... {Availability, Caption...
  8. CIM_Memory                          {SetPowerState, R... {Access, AdditionalErr...
  9. CIM_MonitorResolution               {}                   {Caption, Description,...
  10. CIM_NonVolatileStorage              {SetPowerState, R... {Access, AdditionalErr...
  11. CIM_NumericSensor                   {SetPowerState, R... {Accuracy, Availabilit...
  12. CIM_PCVideoController               {SetPowerState, R... {AcceleratorCapabiliti...
  13. CIM_PointingDevice                  {SetPowerState, R... {Availability, Caption...
  14. CIM_Printer                         {SetPowerState, R... {Availability, Availab...
  15. CIM_Tachometer                      {SetPowerState, R... {Accuracy, Availabilit...
  16. CIM_TemperatureSensor               {SetPowerState, R... {Accuracy, Availabilit...
  17. CIM_VideoController                 {SetPowerState, R... {AcceleratorCapabiliti...
  18. CIM_VideoControllerResolution       {}                   {Caption, Description,...
  19. CIM_VolatileStorage                 {SetPowerState, R... {Access, AdditionalErr...
  20. CIM_VoltageSensor                   {SetPowerState, R... {Accuracy, Availabilit...
  21. Win32_CacheMemory                   {SetPowerState, R... {Access, AdditionalErr...
  22. Win32_CurrentProbe                  {SetPowerState, R... {Accuracy, Availabilit...
  23. Win32_DisplayControllerConfigura... {}                   {BitsPerPixel, Caption...
  24. Win32_MemoryArray                   {SetPowerState, R... {Access, AdditionalErr...
  25. Win32_MemoryDevice                  {SetPowerState, R... {Access, AdditionalErr...
  26. Win32_NetworkAdapterConfiguration   {EnableDHCP, Rene... {ArpAlwaysSourceRoute,...
  27. Win32_PointingDevice                {SetPowerState, R... {Availability, Caption...
  28. Win32_Printer                       {SetPowerState, R... {Attributes, Availabil...
  29. Win32_PrinterConfiguration          {}                   {BitsPerPel, Caption, ...
  30. Win32_SMBIOSMemory                  {SetPowerState, R... {Access, AdditionalErr...
  31. Win32_TemperatureProbe              {SetPowerState, R... {Accuracy, Availabilit...
  32. Win32_VideoConfiguration            {}                   {ActualColorResolution...
  33. Win32_VideoController               {SetPowerState, R... {AcceleratorCapabiliti...
  34. Win32_VoltageProbe                  {SetPowerState, R... {Accuracy, Availabilit...
复制代码
下一步,选择一个类名并观察它的实际数据:
  1. PS> Get-WmiObject -Class CIM[i]CacheMemory [/i] Select-Object -Property *
复制代码
本文国际来源:WMI Search Tool




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2