У меня есть приложение, написанное на 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 я просто получаю список emtpy.
Похоже, что management.GetInstances () ничего не возвращает. Но почему?
Любая помощь очень ценится! Спасибо!