【问题标题】:Clean Up Disconnected Network Drives清理断开的网络驱动器
【发布时间】:2011-05-11 21:34:57
【问题描述】:

我有一个需要连接到远程窗口的应用程序。我所做的是使用映射驱动器在 Windows 启动菜单上建立连接。部分代码如下所示:

 @IF NOT EXIST \\remotePC\sharedFolder NET USE * \\remotePC\sharedFolder /USER:user1 pwd /PERSISTENT:YES

净使用地图工作正常。映射的驱动器将是可用网络驱动器号之一。在我的应用程序中,改为使用 UNC 名称(\remotePC\sharedFolder)。

问题(不确定是否是问题)是在几次重新启动后,我可以从文件资源管理器中看到断开连接的驱动程序列表:

如果我多次重启我的电脑,我不确定所有的字母都会用完吗?我想清理所有断开连接的网络驱动器。我可以从批处理脚本中做到吗?我尝试再次对断开连接的驱动器使用net use,它第一次删除OK,但它保留在文件资源管理器中。

NET USE T: /DELETE

注意:我不确定选项 /PERSISTENT:YES 的用法。我认为它应该在登录或重新启动后重新连接网络驱动器。它不会发生。这就是我将脚本添加到启动菜单的原因。我还意识到我的其他文件资源管理器工具也显示断开连接的网络驱动器。每次我重新启动时,都会出现一个断开连接的网络驱动器。 Windows 中似乎确实存在断开连接的网络驱动器。脚本中有没有办法找到它们并清理它们?

更新:我最多运行了 10 次测试,现在我已经到了没有更多字母可用于网络驱动器映射的阶段。这是我使用 Total Commander 的网络驱动器状态的快照:

如果我右键单击那些断开的网络驱动器,我可以断开它们。必须有一种方法可以使那些断开连接的那些恢复可用。但是,它不会被 use net /delete 命令释放:

NET USE X: /DELETE

断开连接的原因是重新启动或注销。似乎我无法控制它们,因为 1)我使用动态映射,以及 2)在重新启动或注销之前没有地方插入我的脚本。我能想到的一种方法是使用以下命令(简化的)重新连接:

IF NOT EXIST Y:\ NET USE \\remotePC\Shared...

其中 Y: 可能来自循环。上面是一个简化的。我从 cmd 尝试过,它可以工作。

但是,在我将它与循环一起放入批处理脚本之前,我更喜欢清理所有断开连接的脚本。这涉及到另一种方式:在启动时将一些脚本添加到我的批处理中以进行清理。如果有任何可用的脚本代码或工具,以便我可以在批处理脚本中使用以使断开连接的脚本恢复可用?

【问题讨论】:

    标签: scripting batch-file


    【解决方案1】:

    我想我想出了一个解决办法。在我的映射脚本中,我应该使用 no,而不是使用 yes 来表示持久性:

    NET USE * \\remotePC\sharedFolder /USER:user1 pwd /PERSISTENT:NO
    

    此选项告诉 Windows 不要保留此网络驱动器以进行重新连接(您可以从文件资源管理器中单击损坏的驱动器以将其恢复)。因此,当用户在注销或重新启动后再次登录时,网络驱动器将不在断开连接的列表中。我不会遇到网络驱动器号用完的问题。

    实际上我的同事帮助我解决了这个问题,我想与对此问题感兴趣的人分享。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      相关资源
      最近更新 更多