列出具有WMI的映射的网络驱动器

时间:2019-10-28 13:38:02

标签: c# wmi network-drive

我有一个用c#编写的应用程序,它创建了所有映射的网络驱动器的列表。

我使用WMI来实现这一目标,这是我的方法:

List < NetworkConnection > networkConnections = new List < NetworkConnection > ();

try {
 var path = new ManagementPath();
 path.NamespacePath = "\\ROOT\\CIMV2";
 path.ClassName = "Win32_NetworkConnection"; //https://msdn.microsoft.com/en-us/library/aa394220(v=vs.85).aspx

 var management = new ManagementClass(path);

 foreach(ManagementObject obj in management.GetInstances()) {
  NetworkConnection networkConnection = new NetworkConnection() {
   LocalName = (string) obj.Properties["LocalName"].Value,
    Name = (string) obj.Properties["Name"].Value,
    RemotePath = (string) obj.Properties["RemotePath"].Value,
    UserName = (string) obj.Properties["UserName"].Value,
    IsPersistent = (bool) obj.Properties["Persistent"].Value,
    ConnectionState = (string) obj.Properties["ConnectionState"].Value
  };

  networkConnections.Add(networkConnection);
 }
} catch (Exception ex) {
 log.Error($ "Failed to get network connections.", ex);
}

return networkConnections;

这在我的测试客户端W7和W8 64位和32位上都可以使用。它不能在我的W10客户上使用。 在W10上,我只得到一个空列表。

似乎management.GetInstances()不返回任何内容。但是为什么呢?

任何帮助将不胜感激!谢谢!

0 个答案:

没有答案
相关问题