如上所述,我使用的是使用Visual Studio 2012的Windows 8计算机。
我需要映射/取消映射网络驱动器以及获取所有当前映射驱动器的列表。 映射/取消映射我分别通过PInvoke使用WNetAddConnection2A和WNetCancelConnection2A。 要获取当前映射驱动器的列表,我目前正在使用WMI并查询Win32_MappedLogicalDisk。
using (var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_MappedLogicalDisk"))
{
foreach (ManagementObject queryObj in searcher.Get())
{
}
}
有趣的是,WMI返回的“映射”驱动器没有显示在“计算机”下的文件资源管理器的左侧面板中。返回的“映射”驱动器也不会使用“net use”命令显示。我可以通过WNetAddConnection2A映射一个驱动器,它将通过Win32_MappedLogicalDisk查询返回,但它将不显示在文件资源管理器中。
此外,我可以通过文件资源管理器手动映射驱动器,映射的驱动器将使用“net use”显示,但不将使用WMI返回查询Win32_MappedLogicalDisk。
文件浏览器/“网络使用”似乎与WNetAddConnection2A / WMI没有相同的来源。 我已经在Windows 7上测试了相同的代码而没有任何问题。
非常感谢任何帮助。感谢
答案 0 :(得分:2)
尝试Win32_LogicalDisk
WMI类和DriveType属性,(值4表示网络驱动器)。
Select * From Win32_LogicalDisk Where DriveType = 4