清理断开的网络驱动器

时间:2011-05-11 21:34:57

标签: scripting batch-file

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

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

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

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

enter image description here

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

NET USE T: /DELETE

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

更新:我运行我的测试最多10次,现在我进入了不再有可用于网络驱动器映射的字段的阶段。以下是使用Total Commander实现网络驱动器状态的快照:

enter image description here

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

NET USE X: /DELETE

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

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

其中Y:可能来自循环。以上是简化的。我从cmd尝试了它,它的工作原理。

然而,在我将循环放入我的批处理脚本之前,我更愿意清理所有已断开连接的脚本。这是另一种方式:在启动时向我的批处理中添加一些脚本来进行清理。如果有任何脚本代码或工具可用,以便我可以在我的批处理脚本中使用断开连接的代码或工具可用?

1 个答案:

答案 0 :(得分:3)

我想我找到了解决方案。在我的映射脚本中,我应该使用no:

而不是持久化
NET USE * \\remotePC\sharedFolder /USER:user1 pwd /PERSISTENT:NO

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

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