文章经过了更改,因为我发现这似乎并不是Windows11的问题。我保留了它,权当一份记录,也提醒我不要妄下论断吧。各位如果感兴趣,当个故事看就好。
Windows11有多个工作桌面,可以设置不同的壁纸,这本来是非常好的事情的。可是最近我自己的电脑出现了工作中的虚拟桌面壁纸突然被自动换为某个默认壁纸的情况,切换虚拟桌面再切换回来可以恢复原来设置的壁纸,但是一段时间后又会被篡改。
本来个人猜测这是Windows11的老漏洞了,因为2022年就有人反映了(无论是国内国外),居然到现在还没修复。
Redirectinghttps://answers.microsoft.com/en-us/windows/forum/all/desktop-wallpaper-keeps-reverting-to-a-specific/2d47bfbb-4b22-4c55-9524-a06427798066win11壁纸被不知名程序篡改 - Microsoft Community
https://answers.microsoft.com/zh-hans/windows/forum/all/win11%E5%A3%81%E7%BA%B8%E8%A2%AB%E4%B8%8D%E7%9F%A5/14392e46-8ecd-4099-8e33-2e8658af9087 经过我的测试,如果已经关闭了设置中的“同步你的设置”以及“Windows聚焦”,那么应该就是陷入了这种情况。
我们可以通过查找注册表来找到这个不请自来的图片的位置:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers
系统会认准这个路径以及图片名对壁纸进行重置,所以只需要把这个文件删掉就行了。
(比如我是C:\Windows\Web\Wallpaper\MI\Default.jpg,我发现放一个Default.png不能阻止这种更换,可能是基于名称的匹配)
这是后面改动的内容:我不得不承认,应该错怪微软了……不知道上面的内容有没有其他参考价值。
起因是关于这个路径我觉得很奇怪,我这个文件夹似乎和小米有点关系(也就是电脑的品牌)。于是我尝试找出更改壁纸的程序到底是谁。
我在注册表中搜索了这个路径,并没有在其他项中找到这个路径。在附近的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpaper\MRU中的名称为0的项的值对应的也是这个总是跳出来的壁纸的路径,但是由于这个项和其他一些路径并列存在(只是名称序号不同),修改它只有可能改变跳出来的壁纸是哪个而已。我们应该需要一个制止这种机制的开关,遗憾的是我目前并未发现。
我还试图用微软自己的Procmon(微软官方的基于事件的进程监听器,虽然事件很难读懂,但是其过滤器可以快速定位有关文件访问的进程,推荐大家使用)试图找出这个篡改壁纸的进程,发现涉及的事件如下:
Time of Day | Process Name | PID | Operation | Path | Result | Detail |
04:54.6 | OSDUtility.exe | 10412 | CreateFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened |
04:54.6 | OSDUtility.exe | 10412 | QueryBasicInformationFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | CreationTime: 2022/6/25 5:45:15, LastAccessTime: 2024/9/16 20:04:19, LastWriteTime: 2021/12/6 16:28:10, ChangeTime: 2024/9/16 20:04:16, FileAttributes: A |
04:54.6 | OSDUtility.exe | 10412 | CloseFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | |
04:54.6 | Explorer.EXE | 9600 | CreateFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened |
04:54.6 | Explorer.EXE | 9600 | QueryBasicInformationFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | CreationTime: 2022/6/25 5:45:15, LastAccessTime: 2024/9/16 20:04:19, LastWriteTime: 2021/12/6 16:28:10, ChangeTime: 2024/9/16 20:04:16, FileAttributes: A |
04:54.6 | Explorer.EXE | 9600 | CloseFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | |
04:54.6 | Explorer.EXE | 9600 | QueryDirectory | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | FileInformationClass: FileBothDirectoryInformation, Filter: Default.jpg, 2: Default.jpg |
04:54.6 | Explorer.EXE | 9600 | CreateFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened |
04:54.6 | Explorer.EXE | 9600 | QueryStandardInformationFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | AllocationSize: 2,899,968, EndOfFile: 2,897,704, NumberOfLinks: 1, DeletePending: False, Directory: False |
04:54.6 | Explorer.EXE | 9600 | CreateFileMapping | C:\Windows\Web\Wallpaper\MI\Default.jpg | FILE LOCKED WITH ONLY READERS | SyncType: SyncTypeCreateSection, PageProtection: PAGE_EXECUTE_READ |
04:54.6 | Explorer.EXE | 9600 | QueryStandardInformationFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | AllocationSize: 2,899,968, EndOfFile: 2,897,704, NumberOfLinks: 1, DeletePending: False, Directory: False |
04:54.6 | Explorer.EXE | 9600 | CreateFileMapping | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS | SyncType: SyncTypeOther |
04:54.6 | Explorer.EXE | 9600 | CloseFile | C:\Windows\Web\Wallpaper\MI\Default.jpg | SUCCESS |
其中的OSDUtility.exe是小米的热键展示模块,它出现在这里很突兀,这理应和壁纸没什么联系,但是我多次测试,都是这个进程先读取了文件,然后Explorer作了一系列响应(可能是在实施换壁纸)。我试图禁止这个进程,但找不到启用它的服务,在杀死进程后它会被自启动。
于是我查找了小米的所有自带应用,希望或许能找到关闭这个模块的功能。(我觉得这一点很关键,找到问题根源的时候先去查模块有没有提供相应选项,而不是试图手动修改特定部分……我自己尝试了很多禁掉进程的手段,但是都被绕过了,浪费了很多时间……)结果在小米电脑管家里面发现了防烧屏壁纸轮换功能……???这东西似乎一直开着,但是以前并没有什么问题,我也并不知道还有这种事情,但直觉上看就是这玩意儿没跑了。关掉之后果然就算保留路径上的图像文件也不会出现跳壁纸的现象了。看来是小米把这个功能集成到所谓的热键展示模块里让它来定时改壁纸的;这模块化做的不太合理啊。
所以实际是个大乌龙……不知道是Windows11更新还是小米的部件升级触发了这个BUG(要是它真的不断轮换而不是固定给我切到同一张默认壁纸我也不至于想不明白)。其他厂家的使用者应该不会出现这个问题吧。不过我觉得这个探索的过程还是很有意思的,没准也能给别人一些启发,所以我还是保留了这篇文章。
总之,谢谢各位的浏览吧。
以上。