禁用SysMain服务可解决Windows磁盘100%占用问题:通过服务管理器图形化禁用、管理员命令行停用、PowerShell清除预读残留、注册表关闭Prefetch和Superfetch开关四步彻底根治。

Windows系统磁盘占用长期卡在100%、鼠标卡顿、程序响应迟缓,任务管理器里System进程或SysMain服务持续高I/O读写——这大概率是SysMain(旧称Superfetch)在NVMe SSD上强行预加载导致的无效内耗,它本为机械硬盘设计,如今反而拖垮高配主机。
用服务管理器图形化禁用SysMain
这是最直观、零命令行风险的方法,适合所有用户,修改后立即生效,重启后也不再自启。
1. 按下 Win + R 打开运行框,输入 services.msc 回车。
2. 在服务列表中滚动查找 SysMain;若没看到,右键空白处勾选“显示所有服务”再刷新。
3. 双击打开属性 → 若状态为“正在运行”,先点【停止】按钮;【启动类型】必须选“禁用”,否则下次开机还会复活。
4. 点击“应用”→“确定”。这一步做完,当前运行实例已终止,且永久切断开机自启路径。
用管理员命令提示符一键停用
命令行方式效率高,适合想快速收工、或图形界面已卡死的场景。两条命令必须按顺序执行,缺一不可。
方法一:分步执行(推荐新手)
1. 右键“开始”按钮 → 选择“终端(管理员)”或“命令提示符(管理员)”。
2. 在UAC弹窗点“是”。
3. 输入:net stop SysMain 回车 → 确认服务已停。
4. 输入:sc config SysMain start= disabled 回车 → 看到 [SC] ChangeServiceConfig SUCCESS 即成功。
方法二:合并执行(老手常用)
直接输入:sc stop "SysMain" & sc config "SysMain" start=disabled 回车。一条命令完成停止+禁用,但若前半段失败,后半段仍会执行,建议新手分步操作。
用PowerShell彻底清除预读残留
仅停用SysMain服务还不够——Windows内存代理(MMAgent)可能还在后台调用ApplicationPreLaunch等子功能,尤其在Win11 22H2及以后版本中常见。这一步能斩断最后的预读调用链。
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
第一步:停用核心服务
1. 右键“开始”→“Windows PowerShell(管理员)”,UAC点“是”。
2. 输入:Stop-Service -Name SysMain -Force 回车。
第二步:禁用内存代理预加载能力
3. 输入:Disable-MMAgent -ApplicationPreLaunch 回车。
4. 再输入:Disable-MMAgent -OperationAPI 回车。
【注意】这两条PowerShell命令必须在管理员权限下运行,普通用户权限会报错拒绝访问。
注册表双保险:关掉Prefetch和Superfetch底层开关
有些Win10/Win11版本在禁用SysMain后,仍会因注册表残留参数触发底层预取逻辑,必须手动关闭两个关键DWORD值,否则磁盘100%可能卷土重来。
1. 按 Win + R → 输入 regedit 回车 → 点“是”进入注册表编辑器。
2. 定位到路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
3. 在右侧找到 EnablePrefetcher,双击 → 数值数据改为 0 → 确定。
4. 同样路径下找到或新建 EnableSuperfetch(DWORD 32位),双击 → 数值数据也设为 0。
5. 关闭注册表,重启电脑。这一步完成后,连系统级预读引擎都彻底哑火了。










