磁盘与文件系统

Windows Server 存储感知功能疑难解答 - Windows Server

· 52CE 我爱测

介绍 存储感知是 Windows 11、Windows 10 和 Windows Server 版本中的内置功能,通过删除不必要的文件,帮助你自动释放磁盘空间。 此功能通常用于管理本地文件和过时的云内容、清理下载文件夹以及管理物理和虚拟桌面基础结构(VDI)环境中的用户配置文件。 但是,用户可能会遇到存储感知由于配置问题、产品 bug、不受支持的环境或外部软件干扰而无法按预期工作的情况。 本文整合了实际支持体验,为管理员和支持人员提供全面的分步解决方案。

介绍

存储感知是 Windows 11、Windows 10 和 Windows Server 版本中的内置功能,通过删除不必要的文件,帮助你自动释放磁盘空间。 此功能通常用于管理本地文件和过时的云内容、清理下载文件夹以及管理物理和虚拟桌面基础结构(VDI)环境中的用户配置文件。 但是,用户可能会遇到存储感知由于配置问题、产品 bug、不受支持的环境或外部软件干扰而无法按预期工作的情况。 本文整合了实际支持体验,为管理员和支持人员提供全面的分步解决方案。

故障排除清单

使用此清单进行系统故障排除:

  • 标识 Windows 版本或 SKU(例如企业版、多会话、服务器、IoT)。
  • 确定存储感知是否应可用于 OS 和 SKU。
  • 检查是否安装了最新的 Windows 更新(包括已知修补程序,如KB5050092)。
  • 检查 组策略>注册表 以获取正确的配置(尤其是文件夹清理阈值)。
  • 验证 Windows 设置>系统>存储中的存储感知设置。
  • 验证存储感知“计划任务”是否存在,并在任务计划程序中检查其状态。
  • 在任务计划程序和事件查看器中查找相关的错误消息。
  • 确定最新的第三方软件(防病毒、DLP、备份)是否存在,并检查更新的文件访问时间。
  • 检查要清理的文件夹和驱动器。 另请检查打开的句柄。
  • 确定问题是文件特定、文件夹特定还是配置文件特定。
  • 查看最近的系统、网络和存储拓扑更改。
  • 确定问题是影响单个用户、子集还是所有用户。
  • [可选]尝试手动运行存储感知,并查看存储空间更改。

常见问题和解决方案

以下部分详细介绍了最常见的故障模式,并提供分步解决方案。

存储感知缺失、未运行或不可用

原因

  • 设计上有意缺少的功能(例如 Windows 11 多会话版本 23H2 或 22H2)。
  • 不支持的 SKU 或版本。
  • 已知错误(例如,KB5050092修复前的环境)。
  • 计划任务已删除或取消注册。

决议

  1. 检查操作系统 (OS) 和 SKU 的支持情况:请检查是否应该有“存储感知”功能(请参考 Microsoft 文档)。
  2. 应用 OS 更新:
    • 对于缺失或非活动的“Storage Sense”功能,请安装最新的 Windows 累积更新。
    • 对于多会话版本 23H2 或 22H2,请应用KB5050092或更高版本(KB5051989)。
  3. 检查任务计划程序:如果存储感知任务未注册或缺失,则此条件可能是设计或由 bug 引起的(引用KB5050092)。

解决方法

如果缺少某个功能,请使用 PowerShell 或第三方工具和脚本进行清理。

存储感知运行但不按预期删除文件

原因

  • 组策略对象或注册表设置或目标不正确。
  • 不在存储感知范围内的文件和文件夹(例如,下载中的子文件夹、非系统驱动器)。
  • 防病毒或安全功能工具更新“LastAccessTime”文件。
  • 文件受到保护:文件处于打开状态、正在使用、隐藏或系统标记。

决议

  1. GPO 和注册表:
    1. 请确保策略已应用且注册表项正确。
      • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\StorageSense
      • 例如,“下载”文件夹的 ConfigStorageSenseDownloadsCleanupThreshold DWORD。
    2. 若要检查策略,请使用 gpupdate /force 和 gpresult /h result.html。
  2. 策略范围:仅清理下载根文件夹中的文件。 子文件夹和海关文件夹需要脚本。
  3. 文件夹与属性检查:
    1. 使用 PowerShell:

      Get-ChildItem \<DownloadsPath> | Where-Object { $_.LastAccessTime -lt (Get-Date).AddDays(-30) }
      
    2. 确保文件未隐藏,且不是系统文件,也未在使用中。

  4. 从防病毒扫描中排除:
    1. 从例行扫描中排除下载或相关文件夹。
    2. 如果不可能,请使用自定义脚本中的“LastWriteTime”作为删除日期属性。
  5. 手动运行:若要验证配置,请尝试通过 Windows 设置运行手动存储感知。

存储感知计划任务失败(“类未注册”或其他错误)

原因

  • 操作系统或功能更新的 bug(例如:删除 SettingSyncStateReporter)
  • 计划任务已删除或不匹配

决议

  1. 已知的良性故障:如果存储感知手动工作,通常可以忽略“类未注册(0x80040154)”等错误。
  2. 更新 Windows:等待修复问题的累积更新或参考可用的补丁程序。
  3. 重新创建任务:受影响的 SKU 不需要或无法进行。 而是依赖于等待产品更新。

由于属性或环境因素而未删除文件和文件夹

原因

  • 文件已隐藏或系统标记(存储感知会跳过这些文件)。
  • 锁定或打开文件(通过用户会话或第三方工具)。
  • 防病毒、备份、DLP、Teams、同步应用程序更新时间戳。

决议

  1. 解锁或释放文件:

    1. 使用 Sysinternals Handle.exe 或进程资源管理器识别打开的句柄并关闭它们。
    2. 若要释放永久性锁,请重启系统。
  2. 文件属性:确保文件未隐藏或系统标记(使用 PowerShell 或 Windows 资源管理器删除属性)。

  3. 环境排除:从扫描中排除目标目录,尤其是针对防病毒。

  4. 文件夹的自定义脚本:使用 PowerShell 清理文件夹和文件:

    Get-ChildItem "C:\Downloads" -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item -Recurse -Force
    

用户配置文件容器或存储空间配额错误

原因

  • 用户配置文件容器达到分配的配额。
  • 文件系统或共享存储卷几乎已满。
  • 磁盘错误代码(例如,0xC000CF13),用户配置文件文件夹中的“空间不足”。

决议

  1. 扩大配额:通过概况解决方案或 VHD/VHDX 管理工具调整概况或容器大小。
  2. 磁盘管理:使用磁盘管理(diskmgmt.msc)检查和扩展卷。

更改后网络或文件共享不可访问性

原因

  • 在网络或存储迁移后,DNS缓存依然保留旧的文件共享IP地址。
  • NLB 或 DirectAccess 配置错误。

决议

  1. 刷新 DNS 缓存:
    • ipconfig /flushdns
  2. 验证解决方法:
    • nslookup <文件共享>
    • ipconfig /displaydns
  3. 重启客户端:作为最后手段,重启客户端以刷新缓存。

存储系统、日志已满或存储设备缺失

原因

  • USN 日志已满或达到分配限制(事件日志/堆栈显示日记或群集错误)。
  • 存储 ID 更改或拓扑更新后未检测到磁盘/LUN。

决议

  1. 清除 USN 日志:
    • fsutil usn deleteJournal /D <DriveLetter>:
  2. 运行磁盘检查工具 (Chkdsk):
    • chkdsk /f <DriveLetter>:
  3. 对于设备问题:
    1. 在 Device Manager 中重新扫描磁盘。
    2. 与存储供应商协调进行阵列或设备重新映射。
    3. 如果问题仍未解决,请重启。

文件夹或 VM 磁盘上的访问权限被拒绝错误

原因

  • 系统或用户权限不正确或缺失。
  • 密码或凭据更改未同步。

决议

  1. 检查权限:**
    • 在 PowerShell 中使用 Get-Acl <路径> 来检查 SYSTEM 或完全访问权限。
  2. 调整 ACL:** 使用 “属性>安全性 ”选项卡或 icacls 命令。
  3. 同步凭据:根据需要执行密码更改。 然后,再次验证。

存储组件中的安全漏洞

原因

  • CVE 会影响存储(如案例中所述)。
  • 等待更新部署。

决议

应用安全更新:跟踪并安装解决 CVE 的相关 Windows 更新。

常见问题快速参考表

症状 根源 决议
多会话中缺少存储感知功能 按设计移除,产品漏洞 安装KB5050092/KB5051989(如果适用)
存储感知任务“类未注册” OS 组件删除/已知良性错误 根据需要,忽略、应用更新,必要时手动运行
下载中未删除的文件 AV 处理文件,策略未配置,仅处理文件而不包括文件夹 从 AV 中排除、查看 GPO/reg、文件夹脚本
云文件未脱水 属性(隐藏/系统),最近访问 取消属性设置,检查访问日志,使用非隐藏
IP 更改后无法访问文件共享 DNS 缓存已过时 ipconfig /flushdns;如果未解决,请重启
配置文件或文件夹显示“空间不足” 配额已超出,存储空间已满 增加配额,扩展共享,清理空间
USN 日志或存储日志已满 达到生命周期限制 fsutil usn deleteJournal /D <drive>; chkdsk (执行 fsutil usn 命令以删除日志;然后运行 chkdsk 检查磁盘)
Hyper-V“访问被拒绝”附加磁盘 配置目录缺少权限 重设文件夹的系统/用户权限
LUN/存储更改后未检测到存储 存储 ID 不匹配,设备隐藏 在设备管理器中重新扫描、重新启动、存储供应商支持
存储感知不会清理非系统驱动器 当前设计不支持 对非系统驱动器使用自定义脚本

数据收集

在联系Microsoft支持人员之前,可以收集有关你的问题的以下信息。

  • 策略/注册表导出:

    • gpresult /h gp.html
    • 相关密钥的注册表导出命令
  • 任务计划程序快照

    • 存储感知任务的状态及历史记录
  • 文件元数据的 PowerShell:

    • <Get-ChildItem 路径> | 选择 Name、LastAccessTime、Attributes
  • Sysinternals 实用工具:

    • Handle.exe,进程监视器(Procmon),进程资源管理器
  • 磁盘工具:

    • diskmgmt.msc
    • chkdsk /f <驱动器>
    • fsutil usn deleteJournal /D <驱动器>
  • 事件/系统日志:

    • 存储感知:C:\Windows\System32\LogFiles\setupcln\setupact.log
    • 事件查看器:应用程序、系统、Hyper-V、FailoverClustering 日志
  • 网络:

    • ipconfig /displaydns,ipconfig /flushdns,nslookup <host>
  • 用户档案配额:

    • 管理工具、PowerShell 或特定于解决方案的实用工具
  • 命令行引用表

Scenario 示例命令
GP 验证 gpresult /h gp.html
注册表导出 reg export <key><file>
文件元数据 <Get-ChildItem path> / dir /ta
磁盘运行状况 chkdsk /f <驱动器>
USN 日记 fsutil usn deleteJournal /D <驱动器>
任务计划程序 打开任务计划程序应用
DNS 问题 ipconfig /flushdns / nslookup

References

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
按正文的 Windows / Windows Server 适用版本;保留原文兼容性要求
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。