文件路径中的wmic空间,导致无实例可用

问题描述 投票:1回答:2

我正在使用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"

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

wmi wmic
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'

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 -

虽然另一个答案适用于单一标准问题,但它对于复合查询会出错。我建议使用“Quote Before Equals”语法或“Paren Around Where”语法。这里有些例子

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
© www.soinside.com 2019 - 2024. All rights reserved.