我有一台 2008 远程桌面服务器,最近被 Cryptolocker 感染了。服务器本身从未被感染,而是一台映射了网络驱动器的工作站。
感染已被清除并且文件已恢复,因此没有问题,但似乎从那时起我们就遇到了以下问题。
用户远程登录并将文件复制到服务器。
服务器 LAN 上的另一个用户尝试通过映射的网络驱动器访问这些文件,但它们没有显示出来。我已登录并复制了此行为。
我想知道是否有人听说过这个问题、有解决方案、和/或有建议。
再次感谢您的帮助。
答案1
我遇到了类似的问题,最终找到了导致此问题的原因。具体问题是 SMB2 目录缓存,它是 SMB2 客户端重定向器缓存组件之一:
这是客户端最近执行的目录枚举的缓存。客户端应用程序发出的后续枚举请求以及目录中文件的元数据查询都可以从缓存中得到满足。客户端还使用目录缓存来确定目录中是否存在文件,并使用该信息防止客户端反复尝试打开服务器上已知不存在的文件。此缓存可能会影响在多台计算机上运行的分布式应用程序访问服务器上的一组文件 - 其中应用程序使用带外机制相互发送有关服务器上文件的修改/添加/删除的信号。
这个神奇的小缓存的默认值是 10 秒,它产生了您所看到的行为。当您的代码向系统询问该目录/文件时,它会获取缓存的结果,该结果已有 10 秒,因此它表示该文件不存在。将 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters\DirectoryCacheLifetime (DWORD) 设置为 0 值将禁用缓存并解决文件不存在的问题。令人惊讶的是,此更改不需要重新启动客户端计算机!这还允许您保持 SMB2 启用,这应该比强制使用 SMB1 更好,原因有很多。现在 SMB 3 已经推出,我们真的不想禁用它。
我是从别人的帖子里得到这个的,不想居功。