PowerShell 技能连载 - 使用 DCOM 协议运行 Get-CimInstance
PowerShell 3.0 增加了Get-WmiObject
的另一个选择:Get-CimInstance
,它工作起来十分相似但可以从内部 的 WMI 服务中获取信息:
1 | PS C:\> Get-WmiObject -Class Win32_BIOS |
虽然 Get-WmiObject
仍然存在,但 Get-CimInstance
绝对是未来的选择。这个 Cmdlet 支持 WMI 类的智能提示(在 PowerShell ISE 中),并且返回的数据可读性更好:例如日期是以人类可读的日期格式返回,而 Get-WmiObject
显示 WMI 内部原始的日期格式。
最重要的区别是它们远程工作的方法。Get-WmiObject
使用的是旧的 DCOM 协议,而 Get-CimInstance
缺省使用的是新的 WSMan
协议,不过它是灵活的,可以根据需要退回 DCOM 协议。
以下示例函数通过 Get-CimInstance
远程获取 BIOS 信息。该函数缺省采用 DCOM,通过 -Protocol
参数您可以选择希望的通信协议:
1 | #requires -Version 3 |
PowerShell 技能连载 - 使用 DCOM 协议运行 Get-CimInstance
http://blog.vichamp.com/2016/01/07/use-get-ciminstance-with-dcom/