Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在COMException(0x80005)中运行WMI查询结果_C#_Wmi - Fatal编程技术网

C# 在COMException(0x80005)中运行WMI查询结果

C# 在COMException(0x80005)中运行WMI查询结果,c#,wmi,C#,Wmi,我一直在为我的工作开发一个小型WMI信息抓取器,因为我使用了数百台服务器,当必须在5台以上的服务器上获取某些信息时,能够抓取这些信息是非常有益的 List<string> output = new List<string>(); ObjectQuery query = new ObjectQuery("SELECT * FROM ComputerSystem"); ManagementObjectSearcher objectSearcher = new Managem

我一直在为我的工作开发一个小型WMI信息抓取器,因为我使用了数百台服务器,当必须在5台以上的服务器上获取某些信息时,能够抓取这些信息是非常有益的

List<string> output = new List<string>();
ObjectQuery query = new ObjectQuery("SELECT * FROM ComputerSystem");

ManagementObjectSearcher objectSearcher = new ManagementObjectSearcher(ServerConnect.HardwareScope, query);
ManagementObjectCollection retObject = objectSearcher.Get();

foreach (ManagementObject manObj in retObject)
{
    string[] data = ((string)manObj["Description"]).Split('-');
    string IPMI = data[1].Substring(7);
    string firmware = data[2].Substring(5);

    output.Add("IPMI Version: " + IPMI);
    output.Add("BMC Firmware Version: " + firmware);
}

return output;
我一直在试图解决这个问题,即为什么一些服务器返回这个异常,而不是能够获取信息,以及是否有可能修复它

在过去的几周里,我一直在努力解决这个问题,最终决定就我遇到的这个具体问题寻求帮助

更新


我在WMI Code Creator()中为给我带来问题的服务器运行了相同的名称空间和选择,它能够获得我需要的数据,但是当通过我的程序运行时,它给出了COMException。我已经检查了code Creator编写的代码和我的代码,并修改了其中一些代码,但仍然会出现错误。

听起来您可能有几个问题之一,首先想到的是您遇到问题的机器,在调用WMI调用之前,它是否需要凭据,如
用户名/密码
2nd
是否在不工作的远程服务器上安装和/或设置了WMI
3rd
OS`与正常工作的远程服务器和不正常工作的远程服务器有什么区别?我将(有点)有根据地猜测一下,并说它与权限有关。查看您用于执行此代码的帐户,并确保它具有管理员级别的权限。1。我正在使用凭据,但是我能够连接到服务器,但是在运行上面的命令时它会冻结,然后会因COMException崩溃。2.WMI已在所有服务器3上安装并启用。每台服务器都是Windows server 2012 OS@EkoostikMartin所有服务器都具有相同的管理员权限级别,我使用管理员帐户登录。以下是我正在使用的在每台服务器上都有效的级别,但有此错误的除外:conOptions.EnablePrivileges=true;AuthenticationLevel.PacketPrivacy;ImpersonationLevel.Impersonate;如果运行代码失败,是否可以运行另一个WMI查询。。?要测试吗?@DJKRAZE您是否正确运行了它?因为我知道它在某些服务器上成功运行,但在其他服务器上崩溃。这里有一张图片显示它在服务器上完成查询。在原始帖子中运行完全相同的代码。
foreach (ManagementObject manObj in retObject)