无法映射或取消映射驱动器,因为 Windows 认为它正在使用中
本文关键字:映射 Windows 取消 驱动器 因为 | 更新日期: 2023-09-27 18:36:37
我写了一个类,它允许我以编程方式映射和取消映射网络驱动器。就我而言,有两个文件夹映射到两个驱动器(Y:和Z:)它工作正常,但发生了一些事情,我无法再映射或取消映射 Y:驱动器。
我得到的例外是
不允许同一用户使用多个用户名与服务器或共享资源建立多个连接。断开以前与服务器或共享资源的所有连接,然后重试
我在命令行中看了一下
net use
这导致了
Status Local Remote Network
---------------------------------------------------------------------------
OK U: ''ramsay'Users Microsoft Windows Network
OK Z: ''imperial'EzyCSV Microsoft Windows Network
我什至尝试通过命令行映射/取消映射驱动器,但没有成功,我收到相同的错误消息。
我使用aejw的网络类作为起点,可以在这里找到:http://www.codeproject.com/Articles/6847/Map-Network-Drive-API
这是我用来映射/取消映射的代码:
public static void Map(string address, string drive)
{
NetworkDrive nd = new NetworkDrive
{
Persistent = true,
Force = true,
PromptForCredentials = false,
SaveCredentials = true,
ShareName = address,
LocalDrive = drive
};
try
{
nd.MapDrive(@"domain'username", "password");
}
catch (Exception err)
{
MessageBox.Show("Cannot map drive!'nError: " + err.Message);
}
}
public static void Unmap( string drive)
{
NetworkDrive nd = new NetworkDrive
{
Force = true,
LocalDrive = drive
};
try
{
nd.UnMapDrive();
}
catch (Exception err)
{
MessageBox.Show("Cannot unmap drive!'nError: " + err.Message);
}
}
奇怪的是,相同的代码适用于取消映射和映射具有该路径的 Z 驱动器,但不适用于 Y:
有没有其他方法可以强制断开 Y: 或某种缓存和锁定文件,告诉 Windows 它已被使用但无处显示?
今天我以全新的头脑开始,并认为我测试问题是否仍然存在,如果确实如此,我将卸下所有驱动器并尝试进行故障排除。
令我惊讶的是,我能够解决问题。如上所述,驱动器和共享未在任何地方列出,挂载共享驱动器的命令失败并显示上述相同消息,卸载失败并显示驱动器未被使用的消息等。 重新启动没有改变任何情况
出于某种原因
净使用/删除 *
释放了网络资源,即使其他所有内容都失败了。
如此简单,几乎令人尴尬。我仍然不确定这是如何发生的,以及为什么没有迹象表明正在使用驱动器/共享。