【问题标题】:Trouble with escape character in WMI queryWMI 查询中的转义字符问题
【发布时间】:2015-07-22 16:03:01
【问题描述】:
processName.Name = @"\\dfs\ns1\Application_Data\tiny\Development\tinyLOS\tinyLOS.exe";

string wmiQuery = string.Format("select CommandLine from Win32_Process where PathName='{0}'", processName.Name);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
ManagementObjectCollection retObjectCollection = searcher.Get(); 

我正在尝试使用 WMI 在 C# 中运行上述代码,但在执行时我不断收到无效查询错误。我怀疑这是转义反斜杠的问题,但我认为我已经用 @ 解释了这一点。我是否缺少一些简单的东西,因为这看起来应该可以执行?

(注意:当反斜杠被删除时查询执行)

【问题讨论】:

  • 您应该提供更多与错误相关的信息。

标签: c# wpf wmi-query


【解决方案1】:

您需要传递转义的斜杠,它是 ExecutablePath 而不是 PathName

wmiQuery = @"SELECT CommandLine FROM Win32_Process WHERE ExecutablePath =
            'C:\\Program Files\\Microsoft Security Client\\msseces.exe'";

var searcher = new ManagementObjectSearcher("root\\CIMV2", wmiQuery);

foreach (ManagementObject queryObj in searcher.Get())
    Console.WriteLine("CommandLine: {0}", queryObj["CommandLine"]);

对于

CommandLine: "C:\Program Files\Microsoft Security Client\msseces.exe" -hide -runkey

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多