
在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽如人意。于是乎,很多高级用户就会动手「魔改」 ,把系统调校到自己最顺手的状态。
在你看不到的系统底层,运行着纷繁复杂的「后台进程」,甚至可以说,有些进程你不一定需要,例如:
- 如果你从来不连接打印机,完全可以禁用掉「Print Spooler」服务;
- 而本文的主角——SysMain 服务,曾经还有一个更响亮的名字:Superfetch。
我自己的习惯是,在新安装一台 Windows 11 电脑后,首先要做的几件事之一,就是彻底关闭 SysMain 服务。
01. Sysmain 服务是什么?
先上结论:SysMain 就是当年的 Superfetch 服务换了个「马甲」:
- 2007 年,随着 Windows Vista 一同登场的,除了半透明的 Aero UI 特效,在系统底层,微软也做了大量改动,其中就包括 Superfetch 技术。
- Superfetch 是通过一个同名 Windows 后台服务来实现的。它会在你打开某个应用之前,提前把相应数据载入到内存(RAM)当中。
简单来说,它会根据你的日常使用习惯,自动预测你可能会打开的应用,然后提前加载好。等你真正点开时,几乎就是「秒开」。
这个设计的初衷,就是为了加快应用的启动速度。虽然 Vista 给人的印象跟「流畅」二字基本不沾边 😂,但在机械硬盘(HDD)为主的年代,这个思路确实能带来一些体验提升。
到了 Windows 11,SysMain 依然扮演着 Superfetch 的角色,虽然换了个马甲,但还是做着「预加载应用到内存」的老本行。
02. Sysmain 服务可以关闭吗?
2.1 关掉的好处
SysMain(Superfetch)诞生于机械硬盘时代。可如今的大多数电脑,硬盘早就换成了 SSD,内存也普遍更大、更快。SSD 的读写速度比 HDD 快了好几倍,这时候 SysMain 的作用就显得没那么必要了。
而且它有时候还可能「帮倒忙」,比如:
- 莫名奇妙预加载不需要的应用程序,导致内存占用凭空升高;
- 出现 SysMain 磁盘占用高的情况;
- 从睡眠状态唤醒或冷启动时,CPU 使用率突然飙高。
如果你的系统内存不大、CPU 性能一般,那它很可能就是系统莫名变卡的元凶。
2.2 开启还是关闭?
不过,微软之所以默认启用 SysMain 服务,自然也有他的道理。
- 如果你的电脑性能强悍,开启和关闭可能差别不大(相当玄学 ☯️)。
- 在一些内存 ≤ 8GB 的机器上,保持开启有时会有更好的体验。
总的来说,如果你内存比较小、硬盘不够快,或者长时间不关机,可以考虑保持开启。但我自己在一台使用 HDD 的老旧笔记本上关掉它后,磁盘占用率长时间 100% 的问题直接就消失了 😅。
03. 如何禁用 SysMain 服务
3.1 使用「服务」管理器
1按Windows + R
快捷键打开「运行」对话框,执行services.msc
打开「服务」管理器。
2找到名为「SysMain」的服务,右键点击选择「属性」。
3在「启动类型」下拉菜单中,选择「禁用」。
4在「服务状态」区域点击「停止」,然后点击「确定」。

相关阅读:如何管理 Windows 服务
3.2 使用 sc 命令
1右键点击「开始」菜单,选择「终端管理员」,以管理员权限打开 Windows 终端。
2依次执行以下命令:
sc stop SysMain # 立即停止 SysMain 服务
sc config SysMain start= disabled # 禁止开机自动启动
sc qc SysMain # 验证设置

完成设置后,建议重启电脑。然后仔细观察一阵子,看看 CPU、内存、磁盘占用率,以及应用启动速度有没有变化,也许你会发现之前的卡顿问题真的消失了。
最新评论
1.你贴的方法我没测试,如果有效,也只适用于个人或小规模使用,不具备普遍性。 2.根据微软最佳实践,是建立一个本地帐户专门用来远程连接。 3.在域环境中,不存在使用 Microsoft 帐户的情况。
关于rdp无法连接win11微软账户的问题 有很简单的解决办法 不需要退出微软账户或者重置之类的 在中文互联网搜索到的教程内容一般是使用MicrosoftAccount\邮箱作为用户名 密码填微软账户密码然后链接 但是这有个问题就是如果服务端(被控端)本身无缓存时将无法链接 改用英文在google搜索后发现了这样一篇微软社区问答 https://answers.microsoft.com/en-us/windows/forum/all/remote-desktop-not-working-with-microsoft-account/71f0c323-688a-4c97-8740-e80eb31ae11d 打开cmd终端后输入runas /u:MicrosoftAccount\你的邮箱 winver并回车 在出现类似输入MicrosoftAccount\xxx@xxx.com:的密码的文本时输入你的微软账户密码并回车(密码不会显示) 如果密码正确 稍后你将会看到一个Windows关于信息框 关掉它既可 这条命令的意思是 以xxx@xxx.com的身份运行winver程序 在完成后它即可以在本地生成关于该账户信息的缓存 接下来即可在客户端(控制端)输入对应地址链接 用户名为MicrosoftAccount\你的邮箱 密码为微软账户密码 如果一切顺利 在建立连接后 即可弹出证书验证框(如果以前从未链接此计算机) 确定即可 稍等即可进入远程桌面 对于伸手不看理论党的直白概括: 被控端: 打开运行框输入cmd回车 在cmd输入runas /u:MicrosoftAccount\你的邮箱 winver并回车 在出现新的文本时输入微软账户密码并回车(密码不会显示的) 关闭新弹出的窗口及cmd 控制端: 打开rdp客户端 输入计算机的地址回车 用户名:MicrosoftAccount\你的邮箱 密码:微软账户密码 回车后保存证书即可链接 您好,这是我转自B站的评论,不知道这个方法是否具有普遍性来辅助我们用同一个账号进行远程控制
没有用哦,
应用安装失败,错误消息: 从 (Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8wekyb3d8bbwe.Appx) 使用程序包 Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8wekyb3d8bbwe 中的目标卷 C: 执行的部署 Add 操作失败,错误为 0x80040154。有关诊断应用部署问题的帮助,请参阅 http://go.microsoft.com/fwlink/?LinkId=235160。 (0x80040154) 大佬看看怎么解决