2011-05-11 218 views
3

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

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

净使用图工作正常。映射的驱动器将来自可用的网络驱动器号。在我的应用程序中,则使用UNC名称(\ remotePC \ sharedFolder)。

问题(不知道这是一个问题)是经过几次重新启动,我可以从文件管理器中看到断开连接的驱动程序列表:

enter image description here

我不知道所有的字母会如果我多次重新启动PC,用完了?我想清理所有断开连接的网络驱动器。我可以从批处理脚本中完成吗?我试图再次使用net use作为断开连接的驱动器,它首次删除OK,但它保留在文件资源管理器中。

NET USE T: /DELETE 

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

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

enter image description here

如果我右击这些断开网络驱动器,我可以将它们断开。必须有办法让这些断开连接的设备恢复可用状态。但是,它不会通过使用网发布/ delete命令:

NET USE X: /DELETE 

的断开连接的那些被重启或注销造成的。看起来,我无法控制它们,因为1)我使用动态映射,2)没有地方插入我的脚本,然后重新启动或注销。我能想到的一种方法是通过不使用下面的命令(简化的)重新连接:

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

其中Y:可以从一个循环。上面是一个简化的。我尝试从CMD它,它的工作原理。

但是,在我将它与循环放到我的批处理脚本之前,我宁愿清理掉所有断开的脚本。换句话说:在启动时为我的批处理添加一些脚本来完成清理。如果有任何脚本代码或工具可用,以便我可以在我的批处理脚本中使用断开的脚本代码或工具恢复可用状态?

回答

3

我想我找出一个解决方案。在我的映射脚本,反而是持续性的,我不应该使用:

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

此选项告诉Windows不要让这个网络驱动器持续重新连接(你可以从文件浏览器点击破一个把它找回来)。因此,当用户在注销或重新启动后再次登录时,网络驱动器将不在断开连接的列表中。我不会遇到用尽网络驱动器号的问题。

事实上,我的工作伙伴帮助我解决了这个问题,我想和那些对这个问题感兴趣的人分享。