WMI:“文件未找到”时,试图检索“ServerNetworkProtocol”范围的SQL服务器

本文关键字:检索 ServerNetworkProtocol 服务器 SQL 范围 文件 WMI 文件未找到 | 更新日期: 2023-09-27 18:04:35

我正在尝试使用WMI获取服务器网络协议(SQL Server)。

我写了一个小程序:

---------------------------C# code--------------------------
ManagementScope scope = new ManagementScope(@"''computerName'root'Microsoft'SqlServer'ComputerManagement");
scope.Options.Username = "Administrator";
scope.Options.Password = "Password";
scope.Connect();
var query = new ObjectQuery(@"SELECT * FROM ServerNetworkProtocol");
var searcher = new ManagementObjectSearcher(scope, query);
var managementObjectCollection = searcher.Get();
var result = managementObjectCollection.Cast<ManagementObject>().ToList(); //<---- FileNotFoundException
var s = result.First()["ProtocolName"].ToString();
MessageBox.Show(String.Format("Protocol name:  {0}", s));

当我运行应用程序时,我将收到System.IO.FileNotFoundException。我使用WBEMTest实用程序测试了查询,一切正常(使用管理员凭据)。后来我编写了测试服务,并放入了相同的代码,服务正常工作,没有任何异常。我想问题与证书有关。

有谁能解释得更详细些吗?需要什么权限来运行这个查询(如果凭据有问题),以及我如何解决这个问题。

WMI:“文件未找到”时,试图检索“ServerNetworkProtocol”范围的SQL服务器

只需检查凭证并更改一行:

 ManagementScope scope = new ManagementScope(@"''computerName'root'Microsoft'SqlServer'ComputerManagement10");