VPN 下 SMB 文件夹显示陈旧?检查脱机文件
连接 VPN 时,资源管理器可能仍显示缓存的共享副本。在禁用脱机文件之前,请核对 UNC 路径、同步状态和待处理的修改。
你连上 VPN,打开映射的驱动器,文件夹里却缺了服务器明明有的文件。第一反应是怪隧道、DNS 或 Samba 权限。很多情况下连接本身没问题,只是资源管理器显示了共享的缓存副本。即使 VPN 已连上,脱机文件仍可能提供这份副本,因为决定视图是否实时的是共享而不是隧道。修正要从证明你看到的是哪一份开始。
误区:VPN 图标说明共享是最新的
VPN 图标只说明到端点的隧道存在。它不说明某个 SMB 共享是否可达、资源管理器是否已把该共享切回在线模式,也不说明同步失败是否留下了旧副本。它同样不说明 DFS 路径选中了哪台服务器。
脱机文件保留重定向或固定共享的本地副本 以便服务器不可达时仍可使用。共享恢复后,客户端应当切回在线并同步。慢速链接策略可能判定连接仍然太慢而保留缓存视图,尚未处理的冲突也能在快速链路上造成同样结果。
所以症状看起来是选择性的:一个文件夹陈旧,另一个正常打开,第三个完全打不开。这是三种不同状态,只有第一种是本文所说的缓存问题。先给状态命名,再选择修复方式。
证明资源管理器读的是哪个目标
从准确的 UNC 路径入手,而不是驱动器盘符。映射的驱动器可能指向你没想到的共享,DFS 路径则可能指向完全另一台服务器。读取映射可以看到保存的目标及其状态:
Get-SmbMapping | Select-Object LocalPath, RemotePath, Status
Get-SmbConnection
net use在新窗口中直接打开 UNC 路径,与映射的驱动器比较。如果直接路径显示当前文件而映射的驱动器不显示,问题出在映射而不是缓存。
然后确认文件对目标用户确实存在。服务器上的管理员列表只能证明文件存在,不能证明普通 SMB 用户有同样的访问权限,因此要用真正使用该共享的账户核实。凭据不同会产生不同的视图,原因与缓存无关。存在、访问和可见性是三项独立检查。
清理任何内容之前先读同步状态
在提供该功能的系统里,同步中心会报告共享是否处于脱机工作、上次同步是否失败,以及是否有冲突在等待。这三种状态对应不同的修复方式,在有冲突等待时清理缓存可能丢掉本地工作。
在禁用缓存、取消固定共享或删除脱机副本之前,先查找尚未到达服务器的本地修改。只存在于缓存中的文件不是陈旧视图,而是未同步的数据,必须先在受支持的流程中保留下来。带有待处理修改的缓存不能安全删除。
本地工作安全之后,使用受支持的在线切换和同步,然后重新比对列表。打开第二个资源管理器窗口不会强制刷新,因为两个窗口可能读取同一份本地缓存。
修复共享状态,而不是删掉这项功能
如果共享因慢速链接策略而保持脱机,应针对该共享或网络调整策略,而不是给所有用户关掉脱机文件。如果同步持续失败,先修好失败并解决冲突;可用的同步才是让缓存副本重新变新的关键。只改覆盖该共享的最小策略。全局改动是用一个人的陈旧视图换取所有人失去脱机访问。
对于绝不该缓存的共享,服务器可以发送按共享生效的提示。Samba 把它作为共享参数提供,必须保持仅在线时的取值是:
csc policy = disableSamba 参数参考 定义了允许的取值及其含义。请通过真正生成配置的共享管理器应用该设置,尤其是在 NAS 上,并记住该提示不会修复客户端已经缓存的数据。
任何策略改动之后,都要验证客户端重新连接且预期文件出现。重启服务不能证明待处理的本地修改已上传,所以要检查文件,而不只是连接状态。
当原因不是脱机文件时
如果 UNC 路径已确认在线,而新的列表仍然不同,缓存就不是解释。检查共享和文件系统权限、基于访问的枚举,以及 DFS 引荐实际选中的服务器。这些都可能在没有本地副本参与的情况下隐藏文件夹。
始终连不上的共享需要路由和服务过滤方面的证据,而不是检查缓存。隧道上被阻断的 445 端口、解析到错误地址的 DNS 名称,或只允许 ping 不允许 SMB 的防火墙规则,都会在缓存起作用之前造成失败。
区分两类的测试很简单:服务器上存在、对正确用户可见却仍不在线显示的文件夹,指向策略或枚举;带着旧内容出现的文件夹,指向缓存。改设置之前先诊断类别。