由于从挂起的 *** 连接断开而不中断工作流而刷新网络驱动器的方法

Posted

技术标签:

【中文标题】由于从挂起的 *** 连接断开而不中断工作流而刷新网络驱动器的方法【英文标题】:Way to Refresh Network Drives due to Disconnection from Pending *** Connection without Workflow Interruption 【发布时间】:2020-08-31 13:42:56 【问题描述】:

我公司的大多数人目前都在家工作,并且不得不通过 *** 进入我们的办公网络。因此,从技术上讲,在我们登录 *** 之前,我们所有的网络驱动器都是断开连接的。连接后,我们可以简单地打开文件资源管理器窗口并打开每个网络驱动器以重新建立/刷新 Windows 眼中的连接,但是超过 2 或 3 个驱动器是一件麻烦事,我们的一些成员甚至不想这样做每天打开我们的一些需要映射网络驱动器的程序之前,即使是我们的主要项目驱动器(我们只在办公室使用的通用驱动器号),也可能会弄乱我们的文件或其中的链接。

所需的解决方案: 我正在寻找可以运行以刷新或重新连接驱动器的批处理或 cmd 文件,如果可能,无需显式使用NET USE(更多关于为什么进一步向下)或通过使用批处理文件打开文件资源管理器来打开快捷方式一个网络文件夹。如果这是不可能的,我会坚持使用 NET USE 的解决方案,但希望能帮助解决下面列出的问题。

我有几个解决方案有点侵入性,因为它们需要某种形式的交互才能在启动后解除它们,而不是运行,到达 eof,然后使用 TIMEOUT /T 5 关闭。我希望可能有一些更精简的东西,或者至少不那么干扰,我可以用来避免我目前正在处理的这些不必要的交互:

每个驱动器上的文件夹的快捷方式以“ping”所述驱动器以进行刷新,但这会打开一个文件资源管理器窗口,可能会中断工作流程。如果可能,我想禁止打开此窗口,或者至少立即将其关闭(我知道,文件资源管理器的工作方式并不完全正确)。

测试所有映射驱动器是否断开连接的批处理文件,然后尝试重新连接,有时会导致 cmd 窗口中的用户输入中断工作流程(我们有两个安全级别,每个级别都有自己的登录凭据,我们中的一些人已经映射了使用这两个凭据中的每一个的网络驱动器,因此当/USER:%username% %password% 参数不起作用时,一些断开连接的驱动器将需要手动输入用户名和密码,我似乎无法避免。@987654326 的服务器和网络位置都不是@ 是针对哪个安全级别的可行测试,它们在项目本身而不是所需的安全级别之后标记,因此我唯一的补救措施是禁止要求用户输入)。

多个批处理文件,每个驱动器一个,需要用户根据自己的需要手动复制和更改批处理文件(我们正在进行的每个项目只有一个驱动器通用,即使这样有些人是一个不同的项目) ,然后更新任务调度程序以运行他们创建的每个文件(完全不可取,而且就我而言,不可接受)。如果没有其他可以修改或不受干扰的工作,我可以使用它在我们公司的默认项目驱动器号上运行,并让人们担心根据需要重新连接其他的。

我有一个任务安排在我们的 *** 客户端报告连接的任何时候,由于我们的家庭网络和/或我们与 *** 服务器之间的连接,每天可能发生多次(我最多有 4或 5 个“连接”事件在初始登录后触发我的任务,尽管我只需要显式登录一次),这可能会导致工作流程进一步中断,而不仅仅是初始 *** 登录运行。我愿意接受任何使用 NET USE 的解决方案,只要我可以在 Windows 登录密码不起作用时禁止用户输入请求,或者如果我可以阻止打开文件资源管理器窗口则使用快捷方式。替代解决方案是首选,但我知道这可能是不可能的。

我已经使用DIR //server/foo 进行了测试,但它超时的原因与 *** 登录成功后文件资源管理器未将网络驱动器显示为“已连接”的原因相同。

将任务调度程序设置为从网络连接运行我的程序,而不是来自我们的 *** 客户端的“连接”事件,我也有不同的结果,主要是因为它运行不可靠,如果有的话,因为我需要等到通过 *** 连接,而不仅仅是通过以太网电缆的标准互联网连接。为此,我尝试使用两种方法here,但在 *** 登录后可用的网络似乎都没有正确触发任务,即使手动触发甚至通过任务计划程序显示该操作运行良好。因此,我认为这是一个失败,但如果没有更多简化的解决方案可用,或者我可以保证这种方法不会像观看 *** 客户端那样频繁触发(最好每次登录一次),我可以重新审视它连接事件。

在这一点上,我遇到了两种解决方案,它们很可能会中断工作流程,并且让用户非常恼火,以至于我不想将其作为最终解决方案发送出去(NET USE 上的 for 循环,其中驱动器是断开连接和一个批处理文件来打开一个打开窗口前面和中心的快捷方式),以及另一个我认为范围有限且作为最后手段的解决方案。如果没有更好的方法来处理前两个中的任何一个,我会尽力而为,但与此同时,我将非常感谢任何帮助/建议!

编辑:

顺便说一句,我确实希望 cmd 窗口会短暂弹出,然后在操作完成后自动关闭(就像使用快捷方式解决方案一样),因此一些工作流程中断可能是不可避免的。我认为不可接受的是,我无法将其最小化并阻止用户表单直接或间接与其交互以使 cmd 或生成的窗口在它从任何程序用户之前处于活动窗口状态后关闭.

编辑 2:

我已经在其他地方发布了这个查询,并附上了这个额外的回顾,以帮助缩小我的请求: 回顾一下,我正在寻找一种解决方案来刷新不依赖凭据管理器的网络驱动器连接,如果网络驱动器凭据与 Windows 登录凭据不同,则不需要用户输入,并且不会弹出需要用户的窗口手动关闭。由于在自动关闭之前弹出 cmd 或子进程窗口而导致的短暂工作流中断是可以接受的,但我更喜欢我已经运行的两种解决方案途径之一。再次感谢您提供的任何意见!

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。当我打开 *** 时,我有 4 个映射驱动器要重新连接,这真的很痛苦。我一直在徒劳地寻找批处理文件的解决方案。

我的解决方案是使用一个名为 FBackup 的免费程序。无论如何,我还是将它用于备份的预期目的,但我注意到当它打开时,它会重新连接我的所有驱动器(包括使用 *** 到办公室的映射驱动器

所以在我连接后,我打开 FBACKUP。它为我建立了所有连接,然后我将其关闭。任务完成。

【讨论】:

我真的很喜欢它的简单性,但不幸的是,这可能不是我们的情况的解决方案。在我目前工作的小组中,IT 非常严格,不允许运行未经批准的可执行文件。也就是说,我肯定会更喜欢这个解决方案,并且当我离开这个小组的另一个项目时,我会牢记何时进行测试。【参考方案2】:

1 这可能属于该网站所针对的网站,我不确定是否允许我在该网站上通过名称引用。

也就是说,如果它在此站点上,您可能想在超级用户上发布。

那是..

对于具有多个驱动器映射的用户,您希望存储他们在 Windows 凭据管理器中使用的凭据,以便驱动器可以自动映射,而无需每次都指定用户名和密码。

这将允许您的批处理脚本在后台运行并重新映射驱动器

【讨论】:

很遗憾,无法使用凭据管理器。我假设这有一些安全原因,但无论哪种方式,IT 都可能不会启用它。不过,我确实忘记了那个工具。我会在今晚晚些时候或明天花一些时间在另一个网站上发帖,看看我是否得到任何其他点击。感谢您的提示。 Windows 凭据管理器是 Windows 的内置部分,默认启用,并存储映射驱动器等的用户名和密码。虽然它可以被禁用,但它并不是一个很奇怪的推荐安全做法。以为你是 IT,这通常是 IT 解决的类型,而不是最终用户。 也就是说,只需通过运行命令行界面Cmdkey /List 来检查以确保凭据管理器不可用,如果这不会引发错误凭据管理器正在按预期运行,并且您可以使用它永久添加凭据ss64.com/nt/cmdkey.html 好吧,我应该更具体地说,cm 的某些部分被禁用(Windows 和基于证书的凭据),但仍启用通用凭据。我很确定他们不希望人们存储他们的密码,特别是在我目前的安全级别下,如果可能的话,无论如何都不能确定。他们有点挑剔,有时过于敏感。对于我们公司来说,解决这类问题的不仅仅是 IT。我正在处理很多项目自动化的东西 atm,所以我最终选择了这个作为我的 cs 和脚本背景的副任务。 与其说是导出问题,不如说是用户离开项目后仍保留访问权限。同样,由于它可以访问的客户/项目,我的公司对更高级别的许可很挑剔,并尽最大努力将其限制在有权访问的人。仅设置为较低级别许可的计算机可能没有禁用这些功能,目前我对此不确定。不过,感谢您的信息和提示。我可能会在接下来的一两天内尝试专家交流,因为我目前的两个帖子都没有收到回复。【参考方案3】:

由于缺乏对我们的设置可行的更好答案(以后肯定会记住 Ben 的答案,以防我能够将它用于较低的安全配置文件),我决定使用更有限的我的批处理文件的范围,因为我还没有找到任何信息可以让我在尝试刷新与所有已保存网络驱动器的连接时抑制文件资源管理器窗口或从 cmd 窗口请求用户输入(密码)。

由于根据我们的指南,绝对必须重新连接的一个驱动器被普遍分配给同一个字母(映射更改取决于我们正在进行的主要项目),我选择只刷新这个驱动器作为凭据因为此驱动器将始终与 Windows 登录凭据匹配,因此如果密码错误,则不会要求用户输入。

我会密切关注这个问题,以便如果其他人出现并有更好的解决方案,我一定会将选定的答案交换给他们。

【讨论】:

以上是关于由于从挂起的 *** 连接断开而不中断工作流而刷新网络驱动器的方法的主要内容,如果未能解决你的问题,请参考以下文章

运行需要输入而不挂起的命令,但仍然允许输入

Bluez 自动重新连接设备

如何在由于库函数而挂起的函数上实现超时? [复制]

是啥导致 Eclipse 在与工作区断开连接时挂起?

中断后CPU恢复执行的进程状态

linux系统中挂起操作和强制结束操作(后台运行程序方法)