【问题标题】:How to resolve a gwmi : Invalid class "WmiMonitorID" PowerShell error?如何解决 gwmi : Invalid class "WmiMonitorID" PowerShell 错误?
【发布时间】:2019-11-25 19:35:19
【问题描述】:

我收到以下错误:

gwmi:无效的类“WmiMonitorID” 在行:1 字符:1 + gwmi WmiMonitorID -命名空间根\wmi | ForEach-Object {($_.UserFrie ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidType: (:) [Get-WmiObject], ManagementException + FullyQualifiedErrorId:GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

在尝试使用以下方式获取我的显示器的序列号时:

gwmi WmiMonitorID -Namespace root\wmi | ForEach-Object {
    ($_.UserFriendlyName -notmatch 0 | foreach {[char]$_}) -join "";
    ($_.SerialNumberID -notmatch 0 | foreach {[char]$_}) -join ""
}

我在大约 2 个月前使用过这个命令,它运行良好。 (甚至没有在管理员中运行 PowerShell)

现在无论有没有管理员,我都会收到上述错误。 (也尝试了 x64 和 x86 有/没有管理员)

我是否忽略了什么?

【问题讨论】:

  • 可能是您的 WMI 已损坏。请尝试以下步骤virtuallyboring.com/…
  • @TheGameiswar 我的WMI Control (Local) 在截图中看起来不错
  • 第二个屏幕截图看起来好像类中还有一个额外的空间。您可以在 Invalid Class " WmiMonitorID" 中看到它,因此它可能正在读取空格。
  • @Drew 看起来你是对的,但现在出现了一个新错误。 i.imgur.com/jsRYonB.png
  • 现在它看起来像是独立运行每一行而不是一个更大的表达式。

标签: powershell wmi powershell-core get-wmiobject


【解决方案1】:

非常感谢@Drew 指出空格。

所以看起来无论我是 c&p 的代码是在代码中添加额外的空格,这将使它最终看起来像

gwmi(Space)(Space)WmiMonitorID(Space)(Space)-Namespace

或在末尾添加额外的空格

... -join ""}(Space)(Space)

解决方案是将其复制到 .txt 或粘贴箱中,并确保在复制回 PowerShell 之前没有多余的空格。

【讨论】:

    猜你喜欢
    • 2020-05-11
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    相关资源
    最近更新 更多