每次电脑熄屏,进入闲置状态时,硬盘都会狂写,今天终于被我抓了一个现场。

180 天前
 tool2d
问题是只要我一动鼠标,开启屏幕,硬盘读写症状就会完全消失。这时候打开任务管理器,也是看不到任何异常状态,就和躲猫猫一样。

但是我非常好奇,究竟是哪一个进程干扰了正常休眠。借助 GPT 的能力,写了一个监控 BAT 脚本:

:_start
typeperf -qx Process | find "IO Read Bytes/sec" > iotest.txt
typeperf -f CSV -o iotest.csv -si 5 -sc 5 -cf iotest.txt
goto :_start

抓过来一看,好嘛,竟然是 VS 的静默 Update 服务,所谓“静默”,就是你电脑必须完全闲置,它才会开始下载,这设计逻辑,我也是服。

2780 次点击
所在节点    Windows
16 条回复
xuanbg
180 天前
windows 的更新从来都是在你不用电脑的时候进行的。不和你抢资源,你还觉得不好?
aleimu
180 天前
还有 win 自己更新服务
tool2d
180 天前
@xuanbg 主要是不知道哪个程序,我安装过 VS 后,很少打开,直接给忘了。

直觉上猜测是微软后台搞的鬼,本来以为是磁盘文件读取到内存,建立后台高速缓存。没想到是万年不用的 VS 。
EVANGELIONAir
180 天前
我不懂,和 op 说的类似的情况,比如磁盘碎片整理 trim 日志维护.net 缓存等一堆任务都是不应该存在于地球上的?
tool2d
180 天前
@EVANGELIONAir 你说的这些后台任务都是可预见的,我烦的是偷偷下载,你至少要给一个提示吧?

或者说,我已经好几个月没打开过 VS 了,但是更新任务几乎每隔几天就有。
EVANGELIONAir
180 天前
@tool2d 这按钮都让你自己选了还叫偷偷下载啊?更何况 VS 从 17 开始的更新都是在 installer 问你要不要更新的
tool2d
180 天前
@EVANGELIONAir 我说了几个月没打开过 vs ,压根就没想到是 vs 的后台。

不抓取系统日志,估计永远都找不出这个内鬼。

我认为正常的更新流程,至少你要启动一下主程序,而不是安装完后,永远在后台静默下载。
wanmyj
180 天前
虽然微软罪大恶极,用户怨声载道,但感觉 Op 应该多了解一下 Service 的概念。。。
tool2d
180 天前
@wanmyj 这个不是 service ,是一个叫 BackgroundDownload.exe 独立程序,由隐藏很深的 Task Scheduler 所触发,触发条件竟然是 when computer is idle 。
xmt328
179 天前
@tool2d #9 这个隐藏不深啊,很多定时任务都是靠这个启动的
tool2d
179 天前
@xmt328 也可能我对 task scheduler 不熟悉,不知道怎么列出所有 task 。

只能按照树状结构,一个个点进去。隐藏深是指目录结构比较深。
ktyang
179 天前
公司电脑一闲置 CPU 、硬盘和散热风扇就起飞,借脚本抓抓看~到底是公司的监控还是巨硬让电脑待机比使用功耗还高~
SHF
179 天前
提个问题,有什么方法可以列出所有 "when computer is idle" 情况下自动运行的任务?我也不想有我不知道的任务偷偷运行。
hez2010
179 天前
@tool2d @SHF 打开 PowerShell ,执行:
Get-ScheduledTask | ? { ($_.Triggers | % { $_.CimClass.CimClassName }) -contains "MSFT_TaskIdleTrigger" }
就能列出来所有的 "when computer is idle" 任务。
hez2010
179 天前
@hez2010 不过这样会把已经禁用的 Task (即不会执行)一并列出来。
如果只想列出来有效的 Task 的话,可以执行这个:
Get-ScheduledTask | ? { ($_.Triggers | % { $_.CimClass.CimClassName }) -contains "MSFT_TaskIdleTrigger" -and $_.State -ne "Disabled" }
SHF
178 天前
@hez2010 #15 非常感谢,很好用,禁用了一堆垃圾

D:/> Get-ScheduledTask | ? { ($_.Triggers | % { $_.CimClass.CimClassName }) -contains "MSFT_TaskIdleTrigger" -and $_.State -ne "Disabled" }

TaskPath TaskName State
-------- -------- -----
\ RNIdle Task Ready
\Microsoft\Office\ Office Automatic Updates 2.0 Ready
\Microsoft\VisualStudio\Updates\ BackgroundDownload Ready
\Microsoft\XblGameSave\ XblGameSaveTask Ready

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/994530

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX