当前位置: 首页 > 编程笔记 >

Powershell小技巧之使用WMI工具

林华皓
2023-03-14
本文向大家介绍Powershell小技巧之使用WMI工具,包括了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所有版本

 类似资料:
  • 本文向大家介绍Powershell小技巧之使用WS-Man来调用PowerShell命令,包括了Powershell小技巧之使用WS-Man来调用PowerShell命令的使用技巧和注意事项,需要的朋友参考一下 虽然PowerShell远程管理被构建在 WS-Management的之上,但它是协议中的协议。如果尝试使用 PSRP (PowerShell远程处理协议)直接进行交互,本质上需要在客户端

  • 本文向大家介绍Powershell小技巧之复合筛选,包括了Powershell小技巧之复合筛选的使用技巧和注意事项,需要的朋友参考一下 当你分析文本日志或筛选不通类型的信息时,你通常要使用 Where-Object。这里有一个通用脚本来说明复合筛选:

  • 本文向大家介绍Powershell小技巧之获取MAC地址,包括了Powershell小技巧之获取MAC地址的使用技巧和注意事项,需要的朋友参考一下 在Powershell中获取MAC地址不是很难。这里就有一种方法: 我们面临的问题是要分类数据并格式化。未处理的信息是来自Getmac.exe输出的CSV数据,这里有一个技巧:跳过第一行来命名你喜欢的列(此时包涵了CSV的头),此时可以提供你自己独特的

  • 本文向大家介绍Powershell小技巧之设置IE代理,包括了Powershell小技巧之设置IE代理的使用技巧和注意事项,需要的朋友参考一下 IE的代理设置位于注册表中:”HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings”下。关键键值为ProxyEnable和ProxyServer。所以通过更改注册表即可完成IE代

  • 本文向大家介绍PowerShell小技巧之发送TCP请求,包括了PowerShell小技巧之发送TCP请求的使用技巧和注意事项,需要的朋友参考一下 很多时候我们需要通过Socket发送特定的TCP请求给服务器的特定端口来实现探测服务器的指定端口所开启的服务。很多语言都有相应的方法实现上述需求,当然,PowerShell也不例外,比如我们要发送一个简单的http请求到指定的web服务器: GET /

  • 本文向大家介绍PowerShell小技巧之尝试ssh登录,包括了PowerShell小技巧之尝试ssh登录的使用技巧和注意事项,需要的朋友参考一下 在PSNet程序集中继续进行扩展,在$env:PSSpace/PSNet/TCPOp/下创建Invoke-SSHLogin.ps1脚本用于在传入指定ssh地址、用户名和密码后返回是否登录成功。 在$env:PSSpace/PSNet/下创建Lib目录用