无法映射或取消映射驱动器,因为 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 它已被使用但无处显示?

无法映射或取消映射驱动器,因为 Windows 认为它正在使用中

今天我以全新的头脑开始,并认为我测试问题是否仍然存在,如果确实如此,我将卸下所有驱动器并尝试进行故障排除。

令我惊讶的是,我能够解决问题。如上所述,驱动器和共享未在任何地方列出,挂载共享驱动器的命令失败并显示上述相同消息,卸载失败并显示驱动器未被使用的消息等。 重新启动没有改变任何情况

出于某种原因

净使用/删除 *

释放了网络资源,即使其他所有内容都失败了。

如此简单,几乎令人尴尬。我仍然不确定这是如何发生的,以及为什么没有迹象表明正在使用驱动器/共享。