PowerShell 技能连载 - WMI 快速入门(第 4 部分)
通常,WMI 对象有许多包含重要信息的属性。这行代码将获取所有运行中的记事本实例的所有信息(请先运行记事本):
1 | Get-WmiObject -Class Win32_Process -Filter 'Name LIKE "%notepad%"' |
有些时候,WMI 对象也包含方法。获取方法名最简单的方法是用 Get-WmiObject,然后将结果通过管道传送给 Get-Member 命令:
1 | PS> Get-WmiObject -Class Win32_Process -Filter 'Name LIKE "%notepad%"' | Get-Member -MemberType *method |
要调用一个方法,例如获取一个进程的所有者时,Get-WmiObject 和 Get-CimInstance 之间有一个基本的区别:
当您通过 Get-WmiObject 获取对象时,对象的方法是返回对象的一部分:
1 | $notepads = Get-WmiObject -Class Win32_Process -Filter 'Name LIKE "%notepad%"' |
通过 Get-CimInstance 返回的对象不包含 WMI 方法。要调用 WMI 方法,您需要调用 Invoke-CimMethod:
1 | $notepads = Get-CimInstance -Class Win32_Process -Filter 'Name LIKE "%notepad%"' |
在以上的代码中,假设您移除 GetOwner,而是按下 CTRL + SPACE 键调出智能感知(或在简单 PowerShell 控制台中按 TAB 键),您可以获得所有可用的方法名称。如果一个方法需要参数,请使用 -Arguments 参数。
PowerShell 技能连载 - WMI 快速入门(第 4 部分)
https://blog.vichamp.com/2018/05/08/wmi-quick-primer-part-4/
