1

我正在使用 wmic 使用文件的完整路径获取有关服务的信息。

wmic service where PathName="C:\\Windows\\system32\\CxAudMsg64.exe"

哪个工作正常。但是,当我使用带有空格的路径时,如下所示:

wmic service where PathName="C:\\Program Files (x86)\\Common Files\\Adobe\\ARM\\1.0\\armsvc.exe"

它告诉我:“没有可用的实例。” 这是不正确的,因为路径正确并且服务存在。我需要逃离路径中的空间还是什么?

4

2 回答 2

1

我的错。

wmic service

wmic 服务显示 PathName 值有时会与 qoutes 一起列出,有时则不会。你必须检查两者。

wmic service where PathName='"C:\\Program Files (x86)\\Common Files\\Adobe\\ARM\\1.0\\armsvc.exe"'

wmic service where PathName='C:\\Program Files (x86)\\Common Files\\Adobe\\ARM\\1.0\\armsvc.exe'
于 2012-12-07T07:07:42.423 回答
0

TL;DR -

wmic service where "pathname='\"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"' AND ServiceSpecificExitCode=0" get name

#OR....

wmic service where (pathname="\"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"" AND ServiceSpecificExitCode=0) get name

Details -

While the other answer works for single-criterion questions, it'll error out for a compound query. I recommend using either the "Quote Before Equals" syntax or the "Paren Around Where" syntax. Here are some examples

Single-Where + Quote After Equals

Invalid alias verb          == wmic service where pathname=""C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe"" get name
Invalid query               == wmic service where pathname="\"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"" get name
Invalid alias verb          == wmic service where pathname="^"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe^"" get name
Invalid alias verb          == wmic service where pathname=^""C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe^"" get name
Invalid query               == wmic service where pathname="\"C:\\ProgramData\\Microsoft\\Windows^ Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"" get name
Invalid query               == wmic service where pathname="\"C:\\ProgramData\\Microsoft\\Windows\ Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"" get name
Works Perfect               == wmic service where pathname='"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe"' get name

Single-Where + Quote Before Equals

No Instance(s) Available    == wmic service where "pathname='C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe'" get name
No Instance(s) Available    == wmic service where "pathname='^""C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe""'" get name
No Instance(s) Available    == wmic service where "pathname='""C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe""'" get name
Invalid query               == wmic service where "pathname=""C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe""" get name
Invalid alias verb          == wmic service where "pathname='^"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe^"'" get name
Invalid alias verb          == wmic service where "pathname='"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe"'" get name
No Instance(s) Available    == wmic service where "pathname=\"C:\\ProgramData\\Microsoft\\Windows^ Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"" get name
No Instance(s) Available    == wmic service where "pathname=\"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"" get name
Invalid alias verb          == wmic service where "pathname=^"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe^"" get name
Invalid query               == wmic service where "pathname=\"C:\\ProgramData\\Microsoft\\Windows\ Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"" get name
Works Perfect               == wmic service where "pathname='\"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"'" get name

Single-Where + Paren Around Where

Works Perfect               == wmic service where (pathname="\"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"") get name

Compound-Where + Quote After Equals

Invalid alias verb          == wmic service where pathname='"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe"' AND ServiceSpecificExitCode=0 get name
Invalid alias verb          == wmic service where pathname='"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe"' AND ServiceSpecificExitCode='0' get name

Compound-Where + Quote Before Equals

Works Perfect               == wmic service where "pathname='\"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"' AND ServiceSpecificExitCode=0" get name

Compound-Where + Paren Around Where

Works Perfect               == wmic service where (pathname="\"C:\\ProgramData\\Microsoft\\Windows Defender\\platform\\4.18.1902.2-0\\NisSrv.exe\"" AND ServiceSpecificExitCode=0) get name
于 2019-03-27T19:54:01.223 回答