【发布时间】:2018-11-14 04:54:50
【问题描述】:
我正在尝试向一行 PowerShell 代码添加过滤器或查询,但我得到了奇怪的结果。我可以使用任何 WMI 查询来复制这个问题。这是一个例子:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "Get-WmiObject -class Win32_Processor -Namespace root\cimv2 -filter 'Status = `"OK`"'"
这给了我这个错误:Get-WmiObject : Invalid query "select * from Win32_Processor where Status = OK"。但是如果我在已经打开的 PowerShell 窗口中运行它,像这样:
Get-WmiObject -class Win32_Processor -Namespace root\cimv2 -filter 'Status = "OK"'
效果很好。所以我不理解这种行为。我尝试了各种单引号、双引号和转义字符,但似乎没有任何效果。
【问题讨论】:
-
您的查询语法错误:
-Filter 'Name LIKE "Drivers - %"' -
我也用 LIKE 试过了,但没用。出于某种原因,它可以在不使用 powershell.exe -command 的情况下正常工作,但不能使用。
-
你的说法没有任何意义。你实际上是怎么称呼它的?
-
我把问题改成了更简单的例子。
标签: powershell wmi