【问题标题】:Repairing a "disconnected" windows drive mapping修复“断开连接”的 Windows 驱动器映射
【发布时间】:2009-09-24 10:53:46
【问题描述】:

有时网络驱动器由于“断开连接”而已映射到驱动器号。使用正常的 Windows 功能访问该驱动器上的文件/文件夹失败。只要用户手动单击该驱动器,它就会出现 Windows 资源管理器对话框,它会神奇地修复。

由于我的程序是一个批处理程序,我想从我的程序 (C++) 中启动这个“魔法”,但我还没有找到一个 Windows 函数。通常的 WNet... 函数中没有任何内容...

【问题讨论】:

  • 您可能应该考虑通过 UNC 路径而不是映射驱动器访问资源。 \\machine\share\something\somefile.ext 与 M:\something\somefile.ext
  • 我的客户选择了路径。所以这不是由我来决定的......

标签: c++ windows networking batch-file disconnected


【解决方案1】:
NET USE V: /DELETE
NET USE V: "\\server1\videos"

NET USE L: /DELETE
NET USE L: "\\server2\archive"

【讨论】:

    【解决方案2】:

    插入路径后,可以查看是否为网络资源,在打开文件之前,使用WNetGetConnection()获取网络资源。

    您也可以尝试使用WNetRestoreConnectionW(),它似乎有更多的虚假支持,具体取决于环境。

    【讨论】:

      【解决方案3】:

      尝试通过net use重新连接到共享:

      net use \\server\folder [/user:[domain\]username] [password]
      

      如果还是不行,你可以先net use /delete它,然后重新连接。

      【讨论】:

      • 应该可以。除非用户已将密码与旧连接相关联。由于我的应用程序不知道这一点,它会有效地删除密码。但是好像没有官方的“修复”方式....
      【解决方案4】:

      这不是 WNetAddConnection 和 WNetAddConnection2 的用途吗?

      【讨论】:

      • 不,它们用于添加新连接(而不是修复现有连接)。
      【解决方案5】:

      不过,我怀疑这确实是一回事。 Explorer 可能会在注册表中的某处缓存连接信息。当用户尝试访问该驱动器时,资源管理器发现映射已断开连接,从注册表中读取连接信息,然后重新创建连接。也许您可以在创建驱动器映射时尝试运行 regmon,看看是否可以确定连接信息的缓存位置和方式。

      【讨论】:

        【解决方案6】:

        不久前,我在我的一个客户那里遇到了麻烦。我不知道您的情况是否可行,但我们的解决方法是调整服务器的网络设置以停止超时和断开连接。详情请见MSKB 297684

        【讨论】:

          【解决方案7】:

          我同意上述 CMB 的评论。我过去一直走这条路(请原谅双关语),这给我带来了无穷无尽的麻烦。

          如果路径是用户可配置的,他们可以使用 m:\pathonserver 或者他们可以使用 \server\c\pathonserver。

          它不应该对您的代码产生任何影响,打开文件为 m:\blahdeblah.dat 或 \server\c\blahdeblah.dat 将是相同的。

          使用 UNC 路径要可靠得多,无论映射的字母是否存在,Windows 都会自动重新连接到该路径。

          【讨论】:

            【解决方案8】:

            如果您将驱动器映射到网络 共享,映射的驱动器可能会在定期间隔后断开连接 不活动,Windows 资源管理器可能会在图标上显示一个红色的“X” 映射的驱动器。但是,如果您尝试访问或浏览 映射驱动器,它会快速重新连接。

            要避免这种行为,请使用以下命令:
            net config server /autodisconnect:-1

            微软对此话题的解释:
            https://support.microsoft.com/da-dk/help/297684/mapped-drive-connection-to-network-share-may-be-lost

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2013-01-06
              • 1970-01-01
              • 2011-10-14
              • 2020-02-02
              • 2017-07-19
              • 2020-10-19
              • 1970-01-01
              相关资源
              最近更新 更多