如何解决gwmi:无效的类“ WmiMonitorID” PowerShell错误?

时间:2019-07-17 02:45:07

标签: powershell wmi powershell-core get-wmiobject

我收到以下错误:

gwmi : Invalid class "WmiMonitorID"
At line:1 char:1
+ gwmi WmiMonitorID -Namespace root\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)

code screenshot

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

error screenshot

我在俯视什么吗?

1 个答案:

答案 0 :(得分:0)

非常感谢@Drew指出空白。

所以无论我是c&p还是我的代码,都在代码中添加了多余的空格,最终使它看起来像

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

或在末尾添加多余的空格

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

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