WQL在C#和PowerShell上返回不同的结果

WQL在C#和PowerShell上返回不同的结果

问题描述:

我在C#和PowerShell上运行此WQL“SELECT * FROM Win32_Service WHERE Started = true”,但返回的结果不同。通过C#查询时,列表中没有找到处于运行模式的某些服务。WQL在C#和PowerShell上返回不同的结果

C#代码:

ManagementObjectSearcher s1 = new ManagementObjectSearcher("SELECT * FROM Win32_Service WHERE Started=true"); 
     ManagementObjectCollection qCollection = s1.Get(); 
     foreach (ManagementObject mo in qCollection) 
     { 
      Console.WriteLine("Service: '{0}'", mo["Name"]); 
     } 

PowerShell代码:

$query = "SELECT * FROM Win32_Service WHERE Started=true" $results = Get-WmiObject -Query $query $results|Export-Csv -path .\temp\service.csv -Encoding ASCII -NoTypeInformation

增加模拟的C#代码和问题现在已经得到解决。 To connect to WMI remotely with C# (System.Management)