Synology NAS WebDav SMB 占用大量CPU问题

症状

WebDav占用大量CPU:

旧版本NAS会显示DSM桌面 httpd占用大量 CPU:

新版本NAS会显示 WebDav Server占用大量 CPU:

SMB占用大量CPU:

SMB排查过程

通过检查NAS传输日志未发现大量文件读取操作:

对NAS进行网口抓包发现有大量的Find请求:

通过筛选找到发起大量的Find请求的电脑客户端,发现该电脑在获取NAS挂载盘中所有的文件:

登录电脑通过Process Monitor排查发现是有大量wmiprvse的进程在扫描NAS文件夹:

通过手动终止wmiprvse,发现当前执行的任务是wps发起的:
d37bd267e80f0f70f7a6c0c0f412e26d

参考微软官方教程使用WmiMon进行监控:
https://learn.microsoft.com/zh-tw/troubleshoot/windows-server/system-management-components/troubleshoot-wmi-high-cpu-issues

发现wmiprvse在执行以下请求后出现了扫描NAS文件夹的操作:

12:33:59.170 Grp=9102 _ClientProcessId=22100 [wps.exe] WIN-7BS8H2H4DEA WIN-7BS8H2H4DEA\xial012
        IWbemServices::Connect
12:33:59.172 Grp=9103 Op=9104 _ClientProcessId=22100 [wps.exe] WIN-7BS8H2H4DEA WIN-7BS8H2H4DEA\xial012
        Start IWbemServices::ExecQuery - ROOT\CIMV2 : SELECT Name FROM Win32_ShortcutFile WHERE Name LIKE 'C:\\Users\\Public\\Desktop%%.lnk'
12:33:59.210 Grp=9113 _ClientProcessId=23604 [] WIN-7BS8H2H4DEA NT AUTHORITY\NETWORK SERVICE
        IWbemServices::Connect
12:33:59.215 Stop Op=9113 0x0

复现问题

这边我们尝试复现,在Win10中挂载NAS的SMB共享:

确保桌面没有SMB共享的快捷方式:

PowerShell执行以下命令:

Get-WmiObject `
    -Namespace root\cimv2 `
    -Query "SELECT Name FROM Win32_ShortcutFile WHERE Name LIKE 'C:\\Users\\Public\\Desktop%%.lnk'"

发现PowerShell会加入wmiprvse任务,并且wmiprvse会扫描SMB共享盘:

以下为AI分析:

`SELECT Name FROM Win32_ShortcutFile WHERE Name LIKE 'C:\\Users\\Public\\Desktop%%.lnk'`

为什么加上了 C:\ 还会扫描网盘?(WMI 的致命机制)
WMI 把整个 Windows 系统看作一个巨大的关系型数据库。Win32_ShortcutFile(继承自 CIM_DataFile)就是一张包含系统中所有文件的超级大表。
当你向数据库发送查询时,性能取决于你是否命中了“索引”,在这个语句中,由于使用了 LIKE 操作符,并且带着通配符 %%。在 WMI 的底层解析器(CIMWin32 Provider)看来,Name 字段的 LIKE 匹配是不可优化(Unoptimized)的。WMI 引擎不够聪明,它无法从 LIKE 'C:\…' 中提取出“哦,我只需要去 C 盘找”这个指令,因此,WMI 的执行逻辑变成了极其弱智的暴力穷举:

  1. WMI 唤醒文件系统驱动。
  2. 遍历系统中所有已挂载的驱动器(包括 C 盘、D 盘、以及你的 SMB 网络映射盘 Z 盘等)。
  3. 把所有盘里的所有文件信息全部拉取一遍。
  4. 最后再用字符串匹配,把名字符合 C:\Users\Public\Desktop…\ 的结果筛选出来。
    这就是为什么即便语句里写了 C:,你的 SMB 网盘依然被无情扫描。

解决方法

请联系WPS官方以获取解决方案。

目前查看发生问题的都是WPS 2026夏季版:

尝试卸载WPS并重启电脑,然后重新安装WPS 2025秋季版后未发现类似问题: