gpt4 book ai didi

powershell - Powershell 6 的哪个库包含 get-wmiobject 命令?

转载 作者:行者123 更新时间:2023-12-02 22:14:57 26 4
gpt4 key购买 nike

尝试使用 get-WmiObject 时出现以下错误PowerShell(版本 6)中的命令:

PS C:\Users\zsofi> Get-WmiObject Win32_product | select name, packagecache

Get-WmiObject : The term 'Get-WmiObject' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Get-WmiObject Win32_product | select name, packagecache
+ ~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-WmiObject:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException`

最佳答案

Gert Jan Kraaijeveld's helpful answer为真正仅在 Windows PowerShell 中可用的 cmdlet 提供了解决方案(在 PowerShell [Core] 6+ 中也不可用)。

然而,在这种特殊情况下,正如 Lee_Daily 在评论中指出的那样,您可以 使用 Get-CimInstance 小命令 ,即 在 PowerShell [Core] 6+ 中也可用 :

Get-CimInstance CIM_Product | Select-Object Name, PackageCache

注意 CIM_Product类(class)名称; CIM 类通常具有与其 WMI 相同的属性 Win32_*同行。

为什么通常应该使用 CIM cmdlet 而不是 WMI cmdlet:

在 PowerShell Core 中,所有 future 的开发工作都将用于,CIM cmdlet 是您唯一的选择,但它是 建议使用 CIM ( *-Cim* ) cmdlet,即使在 Windows PowerShell 中也是如此, 因为 WMI (*-Wmi*) cmdlet 在 PowerShell 版本 3 中已弃用(2012 年 9 月发布),当引入 CIM cmdlet 时;来自 Get-CimInstance docs :

Starting in Windows PowerShell 3.0, this cmdlet has been superseded by Get-CimInstance.



至于 为什么 CIM cmdlet 是更好的选择 (引自 this TechNet blog post ):

The big drawback to the WMI cmdlets is that they use DCOM to access remote machines. DCOM isn’t firewall friendly, can be blocked by networking equipment, and gives some arcane errors when things go wrong.



同一篇博文还描述了 CIM cmdlet 如何:
  • 使用与 PowerShell 本身相同的基于标准的远程处理机制 ( WS-Management ,通过其 Windows 实现,WinRM )
  • 也就是说,为 PowerShell 远程处理设置的计算机(请参阅 about_Remote_Requirements )隐式支持通过 CIM cmdlet 进行定位。
  • 但是,您仍然可以选择使用 DCOM 协议(protocol)(就像 WMI cmdlet 所做的那样),使用 New-CimSessionOption cmdlet。
  • session 支持
  • 功能略有不同与过时的 WMI 对应物相比,返回的对象没有直接的方法; 方法必须通过 Invoke-CimMethod 调用 .
  • 关于powershell - Powershell 6 的哪个库包含 get-wmiobject 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54495023/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com