不允许同一用户使用多个用户名与服务器或共享资源建立多个连接

Posted

技术标签:

【中文标题】不允许同一用户使用多个用户名与服务器或共享资源建立多个连接【英文标题】:Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed 【发布时间】:2014-09-16 00:07:59 【问题描述】:

使用 Windows 2008 R2。在我们的服务器上,我们收到此错误:“。断开与服务器或共享资源的所有先前连接,然后重试。”尝试在命令行上映射驱动器时。但是,远程计算机没有打开的资源管理器窗口,当我进行“网络使用”时,远程计算机上没有任何显示。

为什么当“net use”报告没有打开驱动器或文件夹时,Windows 会认为某些东西已连接??

如何强制 Win 在不重新启动的情况下停止认为某些东西已连接?

如果我指定用户名和密码,我似乎会收到错误消息。如果我只是输入:

 net use n: \\192.168.10.120\test 

它有效,但如果我输入

 net use n: \\192.168.10.120\test "<password>" /user:"<domain\username>" 

它给出了错误。为什么会这样?

【问题讨论】:

我没有找到完整的答案,但我发现我可以得到 2 个不同的“网络使用”答案,具体取决于我是以普通用户还是管理员身份运行它。我发现这个网站:woshub.com/… 有一些有趣的信息,但我仍然不知道确切的原因。 SunChero 下面的答案是最接近的。 :) @raphael75,我敢打赌,当您成功执行 net use n: \\192.168.10.120\test 时,您会在文件共享服务器中看到一个使用 net session /list 属于另一个用户,而不是您在第二个命令行中尝试连接的用户名。 Windows 用户帐户控制机制在网络驱动器映射方面似乎存在缺陷。正如@raphael75 所指出的,从正常模式和提升模式/令牌执行net use * /d 可以帮助确保所有网络连接都被丢弃。这至少在 Windows 7 上对我有用。 【参考方案1】:

在我们的网络中,我发现在客户端计算机上重新启动 Workstation 服务能够解决此问题。这在重新启动客户端也可以解决问题的情况下有效。但是重新启动服务更快更容易[并且在重新启动时可能会起作用]。

我的印象是本地 Windows PC 正在缓存一些旧信息,这似乎可以清除它。

有关重新启动服务的信息,请参阅this question。归结为在命令行上运行以下命令:

C:\> net stop workstation /y
C:\> net start workstation

注意 - /y 标志将强制服务停止,即使这会中断现有连接。但否则它会提示用户并等待。所以这可能是编写脚本所必需的。


请注意,在 Windows Server 2016(可能还有其他)上,这些命令也可能会停止 netlogon 服务。如果是这样,您必须添加:net start netlogon

【讨论】:

这对我有用。很困惑为什么我以前工作的 samba 共享突然没有了。谢谢! 尝试映射连接到路由器的驱动器时,我收到了 OP 发布的错误。你的答案解决了我的问题! 在我的情况下,重新启动客户端不起作用,但是,这种方法有效。谢谢! 我认为这应该是公认的答案。它解决了问题,而当前接受的答案仅提供了一种解决方法。 @DerreckDean 谢谢 - 我无法验证自己,但我已将其作为注释添加到答案中。【参考方案2】:

即使您通过net use * /del 删除共享文件夹,在服务器端仍然存在连接。

为了解决微软设计创建的这个问题,您应该以某种方式映射驱动器,让 Windows 认为它​​是另一台服务器上的另一个共享。最简单的方法是使用 DNS 别名或 IP 地址。 在您的情况下,如果您的第一个映射将\\IP\Share 之类的 IP 地址与您当前的凭据一起使用,您应该使用\\ServerName\Share password /user:Domain\Username 之类的东西,这应该使用新凭据创建一个新共享。

Microsoft 将这种行为称为设计.. 我称之为愚蠢的设计。

【讨论】:

您能否提供更多详细信息,例如您提到的“按设计”的博客或文章? 这是 Microsoft 知识库文章,在“by design”处对其进行了描述:support.microsoft.com/en-us/kb/938120 同意,愚蠢的设计。我尝试了所有可能的方法,包括重新启动工作站服务。最后,在出现此问题时不想重新启动我的工作站 2 年后(总是在项目中间),我咬紧牙关:我清除了所有网络使用项目然后重新启动,问题就消失了。 我不能说 IP 地址,但它似乎对待 \\machine-name\share 和 \\machine-name.domain.com\share 相同;我在 Windows 2016 上为自己尝试此操作时收到上述错误消息。 您还可以编辑c:\windows\system32\drivers\etc\hosts 并为每个不同的用户凭据添加一个额外条目,解析为相同的 IP 地址。【参考方案3】:

按照以下步骤操作:

选择Start按钮,然后输入cmd。 右键单击Command Prompt 选项,然后选择Run as administrator。 输入net use,然后按Enter。 查找列出的任何可能有问题的驱动器。在发生此问题的许多情况下,驱动器可能没有分配一个字母。您需要移除该驱动器。 在命令提示符中,键入 net use /delete \\servername\foldername,其中 servername\foldername 是您要删除的驱动器。

【讨论】:

这不适用于 WebDav 连接。 ;( 我有同样的问题,但是这个命令返回一个空列表。【参考方案4】:

看来重启windows explorer服务就够了:

    打开任务管理器 查找 Windows 资源管理器进程 选择它。选择后,右下角会出现“重启”按钮。 单击“重新启动”按钮。将重新加载 Windows 资源管理器。

这对我有帮助。

【讨论】:

我试过了,但仍然不允许重新建立连接。 谢谢。它帮助了我。这是我可以在没有管理权限的情况下完成的一项成功操作。 原谅我的无知,但多年来我使用任务管理器的次数,我从未见过“重新启动”按钮 - 只有“结束任务”。【参考方案5】:

net use \\&lt;host&gt; /delete 最快且有针对性(不影响其他连接),但很多时候它不起作用,原因有很多。

@DaveInCaz 提供的net stop workstation 在某些情况下应该会有所帮助。

如果都失败了,重启LanmanWorkstation服务,就可以使用这个脚本了:

@echo.
@echo Restarting
net stop LanmanWorkstation /y
@PING.EXE -n 2 0.0.0.0 >nul
net start LanmanWorkstation

注意事项:

重启 Workstation 服务是不够的(例如从 services.msc 控制台) 该服务可能需要在短时间内禁用。如果您从脚本重新启动,最好添加 1 秒延迟。

如果net use \\&lt;host&gt; /delete 由于另一个程序仍在使用该共享而无法工作,您可以识别该程序并删除阻塞句柄而不关闭它。使用 Sysinternals Process Explorer,按 Ctrl+F 进行搜索并输入拥有此类共享的主机名称。单击每个结果,搜索对话框后面的程序窗口会跳转到找到的程序的句柄。右键单击该句柄并选择关闭句柄。 (或者如果可以的话,关闭这样的程序)这仅适用于确实有程序阻止共享断开连接的常规情况。在那些无缘无故被阻止的奇怪情况下。

提升的帐户有它自己的环境。这会带来一些意想不到的行为。 如果您在提升的 cmd/PS 控制台中执行 net use 命令,它不会影响 Windows 资源管理器使用哪个用户来访问共享。 反过来说,如果您从共享运行一个程序并且该程序将询问并获得提升的访问权限,该程序将失去与该共享以及它可能需要运行的任何文件的连接。您需要从提升的 cmd/PS 运行 net use 以创建到该共享的提升共享连接。

在某些情况下,从 Windows 资源管理器(左面板顶部)的快速访问中删除最近使用的文件夹可能会有所帮助。 如果您要连接的主机根据用户提供不同的访问级别,和/或具有访客用户(匿名)共享访问权限,您可能经常会遇到这种情况。 当您使用您的用户名访问共享时,此类共享中的文件夹可能会作为最近项目分配给快速访问面板。重新启动后打开 Windows 资源管理器时,将检查快速访问中的最近项目,并与主机建立连接,并以 MUP 的形式保持打开状态。如果您的共享同时接受授权和匿名连接,只需打开 Windows 资源管理器将创建匿名连接,当您单击需要授权的共享时,您将不会看到凭据对话框,而是出现错误。

【讨论】:

【参考方案6】:

这是 @UuDdLrLrSs answer 的 Powershell 替代品。

Get-Service workstation | Restart-Service -Force

【讨论】:

我必须以管理员身份运行命令才能正常工作【参考方案7】:

可能是 Windows 凭据管理器保留了网络共享的凭据。

加载凭据管理器(最简单的方法可能是在开始菜单中搜索),查看您的网络共享是否有任何 Windows 凭据,然后尝试删除/更新它们。

【讨论】:

终于解决了【参考方案8】:

我已经在超级用户站点中为“使用不同用户打开网络驱动器”(https://superuser.com/questions/577113/open-a-network-drive-with-different-user/1524707#1524707)的线程给出了答案

我想使用路由器的U盘作为不同用户的网络存储,因为这个帖子我遇到了错误信息

“不允许同一用户使用多个用户名与服务器或共享资源建立多个连接。断开与服务器或共享资源的所有先前连接,然后重试。”

除了使用“NET USE”命令的方法之外,我从网页中找到了另一种方法

http://backupchain.com/i/how-to-fix-error-1219-multiple-connections-to-a-server-or-shared-resource-by-the-same-user

最好通过编辑目录“C:\Windows\System32\Drivers\etc”下的hosts文件来解决Windows连接限制。

比如我的路由器IP地址是192.168.1.1,它的U盘有\user1、\user2和\user3三个共享文件夹,分别为三个用户,那么我们可以在hosts文件中添加以下三行,

192.168.1.1 服务器1

192.168.1.1 server2

192.168.1.1 服务器3

在本例中,我们将 server1 映射到用户 #1,将 server2 映射到用户 #2,将 server3 映射到用户 #3。

重启PC后,我们可以在Windows文件资源管理器中同时连接用户#1的\user1、用户#2的\user2和用户#3的\user3文件夹,即

如果我们在资源管理器的文件夹指示字段中键入路由器名称为\\server1,它将在资源管理器的右窗格中显示路由器USB驱动器的所有共享文件夹,并在资源管理器左窗格的“网络”项下显示sever1,然后用户#1 可以访问共享文件夹 \user1。

此时如果我们在资源管理器的目录指示栏中输入\\server2或\\server3,则可以将路由器的U盘连接为server2或server3,并访问用户#2的共享文件夹\user2或\user3或用户 #3 并同时保持“server1”连接。

使用这种方法,我们也可以使用“NET USE”命令来执行这些操作。

【讨论】:

【参考方案9】:

在 Windows 10 中,我使用 Windows 凭据管理器解决了这个问题。我找到了我遇到问题的 NAS 单元的多个凭据。删除这两个凭据后,我可以毫无问题地访问 NAS 映射的网络驱动器。

【讨论】:

【参考方案10】:

这对我有用:

安装并运行Microsoft Sysinternals tcpview 在菜单栏中,在搜索栏中输入服务器ip地址 出现进程名称system。鼠标右键单击该行并选择关闭连接

【讨论】:

【参考方案11】:

如果你和我一样,因为浏览了错误而打开了这个页面,并且这是第一个结果

确保您没有在 Windows 中打开共享文件夹

    我试图运行一个批处理脚本来将\\192.168.10.15\Shared 映射到一个驱动器号 得到错误 我跑net use /delete \\192.168.10.15\Shared 尝试再次运行批处理,同样的错误 用谷歌搜索了错误,找到了这个页面,没有任何帮助 我注意到我之前直接从“运行”打开了\\192.168.10.15\Shared,它是在一个窗口中打开的 关闭窗口 再试一次 成功了

【讨论】:

以上是关于不允许同一用户使用多个用户名与服务器或共享资源建立多个连接的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 模式操作

PostgreSQL模式介绍

“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接”问题的解决

局域网共享问题:不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接

局域网共享问题:不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接

samba不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接