为什么Windows认为有些东西被连接了,而“net use”报告没有打开任何驱动器或文件夹呢?
如何强制Win停止认为已连接某些内容而不重新启动?
如果我只输入:
net use n: \\192.168.10.120\test
它可以工作,但如果我放进
。 net use n: \\192.168.10.120\test "<password>" /user:"<domain\username>"
它会报错。为什么会这样?
net use n: \\192.168.10.120\test
它可以工作,但如果我放进
。 net use n: \\192.168.10.120\test "<password>" /user:"<domain\username>"
它会报错。为什么会这样?
在我们的网络中,我发现重启客户端计算机上的工作站服务(service)可以解决这个问题。在某些情况下,这种方法可以取代重新启动客户端计算机。但是重启服务更加快速和方便(并且在重新启动不起作用时可能有效)。
我的印象是本地 Windows PC 缓存了一些旧信息,并且这种方法可以清除它们。
有关重启服务的详细信息,请参见此问题。简单来说,就是在命令行上运行以下命令:
C:\> net stop workstation /y
C:\> net start workstation
请注意 - /y
标志将强制服务停止,即使这会中断现有连接。但如果不使用该标志,则会提示用户并等待。因此,在脚本编写中可能是必要的。
请注意,在Windows Server 2016(+可能其他版本)上,这些命令也可能会停止netlogon服务。如果是这样,您需要添加:net start netlogon
net use * /del
删除了共享文件夹,在服务器端仍然存在连接。 \\ IP \ Share
,则应该使用类似于 \\ ServerName \ Share password / user:Domain \ Username
的东西,这将创建一个新共享和新凭据。c:\windows\system32\drivers\etc\hosts
并为每个不同的用户凭据添加一个额外的条目,解析到相同的IP地址。 - silicontrip按照以下步骤进行:
开始
按钮,然后键入 cmd
。命令提示符
选项,然后选择 以管理员身份运行
。net use
,然后按下 Enter
。net use /delete \\servername\foldername
,其中 servername\foldername 是您要删除的驱动器。net stop|start
命令。Get-Service workstation | Restart-Service -Force
LanmanWorkstation
:Get-Service LanmanWorkstation | Restart-Service -Force
Get-Service workstation | Restart-Service -Force
不太确定发生了什么事... - undefinednet use \\<host> /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
注意事项:
仅重启工作站服务(例如从services.msc控制台)不足以解决问题。
该服务可能需要在短时间内停用。如果您要从脚本中执行此操作,则最好添加1秒的延迟。
在某些情况下,net use \\<host> /delete
无法正常工作,因为另一个程序仍在使用该共享资源,您可以查找并删除阻止的处理程序而不关闭它。使用Sysinternals Process Explorer,按Ctrl+F进行搜索,然后输入拥有此类共享资源的主机机器的名称。单击每个结果,程序窗口将跳转到已找到的程序的句柄。右键单击该句柄,然后选择Close Handle(关闭句柄)。 (或者只需关闭该程序,如果可以的话)这仅适用于通常存在阻止共享断开连接的程序的情况。而不是因为没有原因而被阻止的奇怪情况。
提升的帐户有自己的环境。这会带来一些意外行为。
如果您在提升的cmd/PS控制台中运行net use
命令,则不会影响Windows Explorer用于访问共享的用户。
反之亦然,如果您从共享中运行程序并且该程序请求并获得提升的访问权限,则该程序将失去与该共享及其可能需要运行的任何文件的连接。您需要从提升的cmd/PS中运行net use
以创建一个提升的共享连接到该共享。
从Windows Explorer的快速访问(左侧面板顶部)中删除最近的文件夹可能有助于解决某些问题。
如果您要连接的主机根据用户提供不同级别的访问权限,并/或具有Guest用户(匿名)共享访问权限,则您可能经常遇到此类情况。
当您使用用户名访问共享时,此类共享内的文件夹可能会被分配到快速访问面板中的最近项目。在重新启动后打开Windows Explorer时,将检查快速访问面板中的最近项目,并将建立与主机计算机的连接,以MUP的形式保持打开。如果您的共享接受授权和匿名连接,则仅打开Windows Explorer将创建匿名连接,当您单击需要授权的共享时,您将不会获得凭据对话框,而是会出错。
看起来重新启动Windows资源管理器服务就足够了:
在我的情况下,这有所帮助。
如果你和我一样,打开了这个页面是因为你遇到了错误,并且这是搜索结果中的前几个
请确保你没有在Windows中打开共享文件夹
\\192.168.10.15\Shared
映射到驱动器号net use /delete \\192.168.10.15\Shared
\\192.168.10.15\Shared
,并且它在一个窗口中打开了我在Super User网站上为主题“使用不同的用户打开网络驱动器”(https://superuser.com/questions/577113/open-a-network-drive-with-different-user/1524707#1524707)给出了答案。
我想要将路由器的USB驱动器用作不同用户的网络存储,但是遇到了这个主题中的错误信息:
“同一用户对服务器或共享资源的多个连接,使用超过一个用户名是不允许的。请断开与服务器或共享资源的所有先前连接,然后重试。”
除了使用“NET USE”命令的方法外,我还从网页上找到了另一种方法。
通过编辑位于目录“C:\Windows\System32\Drivers\etc”下的hosts文件,可以更好地解决Windows连接限制问题。
例如,我的路由器IP地址是192.168.1.1,其USB驱动器有三个共享文件夹:\user1、\user2和\user3,分别为三个用户提供服务。然后我们可以在hosts文件中添加以下三行:
192.168.1.1 server1
192.168.1.1 server2
192.168.1.1 server3
在这个例子中,我们将server1映射到用户#1,将server2映射到用户#2,将server3映射到用户#3。
重启计算机后,在Windows文件资源管理器中,我们可以同时连接用户#1的\user1文件夹,用户#2的\user2文件夹和用户#3的\user3文件夹,即
如果我们在资源管理器的文件夹指示字段中键入路由器名称\\server1,它将在资源管理器右窗格中显示路由器USB驱动器的所有共享文件夹,并在资源管理器左窗格的“网络”项下显示server1,然后用户#1就可以访问共享文件夹\user1了。
此时,如果我们在资源管理器的目录指示字段中键入\\server2或\\server3,则可以将路由器的USB驱动器连接为server2或server3,并访问用户#2或用户#3的共享文件夹\user2或\user3,并同时保持“server1”连接。
使用此方法,我们还可以使用“NET USE”命令执行这些操作。
net use * /d
可以帮助确保所有网络连接都被断开。至少在Windows 7上对我有效。 - Martin Connell