我有一个正在运行的文件服务器 (SMB),我通过直接访问 \\1.2.3.4 在 Explorer (Windows 7 Professional) 中连接到它。我以一个用户身份登录,没有保存凭据,现在想注销(实际上我想更改为其他用户,但一般来说能够注销会很有用)。
我四处寻找方法来实现这一点,并发现一堆信息建议使用某种形式net use \\1.2.3.4 /del
:
- 如何从 Windows 共享文件夹注销?
- 如何更改在网络共享上登录的用户?
- 使用不同的凭据访问 Windows 7 中的共享文件夹(www.raymond.cc)
- 如何在 Win7 中删除网络位置的登录凭据?(serverfault.com)
- 无需重新启动即可退出网络共享驱动器?
- ETC。
但是,这些对我来说似乎都不起作用。我运行net use * /del
,然后使用net use
它来验证列表是否为空,但共享仍然神秘地保留在资源管理器中,不受影响、可访问,并且仍然使用以前的登录名。
我尝试过的另一件事,也失败了,例如net use \\1.2.3.4 /user:newusername
切换凭证。然而,即使net use
显示空的连接列表,这仍然会产生一个错误,指出不允许不同用户对同一资源建立多个连接——为什么有些连接没有出现在net use
列表中,对我来说是个谜。
然后我发现了这篇文章如何从共享文件夹注销(microsoft.com),建议:
net use * /del
(或任何服务器)。- 从凭证管理器中清除凭证。
- 重新启动工作站服务。
这个过程对我来说很有效。由于我没有保存凭据,因此凭据管理器中没有任何有趣的东西,但是清除连接后重新启动工作站服务net
是关键(我确实必须关闭所有资源管理器窗口才能重新启动服务)。
我的问题是:这根本就不方便,尤其是当我必须向不太懂技术的用户解释时。虽然我当然可以创建一个批处理脚本来自动化整个过程,但有没有一种实际、正确、一致的方式来做到这一点,而不涉及重新启动服务(可能不涉及命令行,尽管我个人不介意)?
另外,还有一个子问题:我觉得很奇怪,我找到的关于这个问题的绝大多数资源都没有建议重新启动 Workstation,而建议的net use
单独使用过程似乎至少对那些在这些帖子上发表评论的其他人有效。Workstation 重新启动是否只针对我,并表明我的机器存在其他问题,还是由于某种原因,它只是被排除在所有说明之外?只有 microsoft.com 支持帖子有推荐此步骤的说明,这最终让我成功了。
退出共享似乎是一个足够常见的用例,可以证明一些简单的方法可以做到这一点,所以我对弄清楚这一点的难度感到困惑。
我尝试过但没有效果的其他方法:
- 在使用命令之前和之后关闭所有资源管理器窗口
net use
(如Kody Browns 的回答),以及摆弄“每个文件夹窗口单独的进程”设置,希望它是某种每个进程的凭据缓存(也受到该答案的启发)。 - 更改家庭组连接管理设置(建议holmzi_online在上述 microsoft.com 帖子中的回答)。
- 终止所有 explorer 进程(包括主进程)并重新启动 explorer
net use * /del
(建议罗伯特·格里尔,尽管该问题与映射驱动器有关)。
答案1
答案2
我通过执行以下操作使其工作:
- 跑步
net use * /delete
- 清除凭据(例如我的是172.26.190.129,创建日期是今天,就这样)
- 禁用“本地连接”(控制面板\网络和 Internet\网络连接\本地连接)
- 稍等一下(我不知道为什么,但我认为它可能会破坏从我的 Win7 到 Ubuntu 的一些链接,并可能会清除一些缓存)
- 启用“本地连接”并且它起作用了..
答案3
这不是答案,但评论太长了:
我遇到了这种情况。对我来说,本地计算机是 Windows 10 21H2,远程计算机是 Windows 7。
可能存在特殊情况:远程计算机的“高级共享设置”-“公共文件夹共享”处于开启状态。这意味着,我第一次访问\\COMPUTERNAME
它时以“访客”身份登录。没有用户名/密码提示。
我知道我是客人,因为我在远程计算机上的本地计算机上创建了一个文件c:\users\public\public documents\
(可以以客人身份访问),然后使用属性 - 安全 - 高级 - 所有者检查了该文件的所有者。 (请注意,客人帐户在用户帐户 - 管理帐户中显示为关闭。但我猜它对于网络登录仍然有效。)
因此,如果我首先尝试访问受保护的资源,我可能会被迫提供用户名密码,然后我可能不会注意到这个问题。
注意,我可以确认凭证管理器中也没有列出缓存的凭证。但是,互联网上的其他人有,删除这些凭证可以为他们解决问题(例如:https://serverfault.com/questions/911503/how-to-log-out-from-network-path)。我不知道是不是因为我以访客身份登录。所以没有真的凭证。但话又说回来,一个凭证已经足够了,我不能再使用另一个了。但这与 OP 第一次明确登录的情况不同(除非他以某种方式仍然是否以访客身份登录?在这种情况下,您尝试远程访问的第一件事的访问要求可能会在这里发挥作用。)
我尝试了所有这些,但都没有用,都显示“无法找到网络连接”:
net use \\COMPUTERNAME /delete
net use \\COMPUTERNAME\IPC$ /delete
net use \\COMPUTERNAME\ADMIN$ /delete
net use * /delete
还有一点:在本地计算机上,我使用 Process Explorer 在所有进程中搜索字符串,并搜索远程计算机名称。它为该服务生成了一个打开的文件句柄svchost
。Workstation
不幸的是,通过 procexp 强制关闭该句柄没有帮助。
但我相信这加强了人们的怀疑:该Workstation
服务正在以无法访问的方式缓存这些凭据。
因此对我来说,重新启动Workstation
(aka LanmanWorkstation
)服务可以解决此问题。(注意:您实际上无法在 powershell 中执行此操作,至少在 v5.1 中是这样。因为它Workstation
有依赖服务。您必须提取这些服务,找出正在运行的服务,停止它们,存储该列表,重新启动LanmanWorkstation -force
(我认为这会导致依赖服务非正常死亡),然后重新启动以前运行的依赖服务。哦,对所有依赖项的依赖项执行此操作,依此类推。但是,services.msc
这一切都为您完成了。对我来说,唯一services.msc
重新启动的依赖服务是Computer Browser
aka browser
)
答案4
按照以下说明操作解决 Windows 错误 1219Altaro.com 上的下载对我很有用。特别是,下载进程探索器,选择Find/Find Handle or DLL
,然后搜索我的服务器的名称,结果显示打开一个带有服务器快速链接的 Windows 资源管理器窗口会立即重新建立与服务器的连接,从而net use \\server
失败并出现错误 1219。当 Process Explorer 没有显示活动句柄时,net use \\server
则会成功。