一种对处于冰点还原状态下的一体机硬盘进行修改、自定义自启动和安装倒计时组件的方法分享

许多学校为了方便教室用电子白板的管理、防止学生安装未经授权的应用程序,会开启集控后台的“冰点还原”功能(不同品牌与型号所用名称可能不同)。此功能会在系统关机时清除本次开机对硬盘进行的更改(虽然这个说法并不严谨,因为非正常关机是没用的),从而达到将系统“冰冻”在刚开启此功能时的样子。

然而这一功能也使得电教爱好者发觉,白板的可玩性和可维护性都大幅降低。一方面,旧班级在桌面上留下的古董课件极大地增加了文件管理的难度,并且例如某某影音无法卸载所带来的广告弹窗问题亦挥之不去。另一方面,在我的情况里,我无法为白板安装自己编写的文件同步桌面小组件(如高考倒计时、通知文字、辅助触控、一言等),也就无法用自己的能力做出贡献。

在一段时间的探索后,我总结出了一个方案,此方案可以在保持打开冰点还原的情况下,修改受保护磁盘分区内的文件,从而调用需要自启动的程序,并且可以轻松地通过未设置还原的数据盘来进行管理自定义的启动项。如果你有一定的编程能力,你亦可轻松地运用此方法来完成极多的系统自定义操作。

◯、局限性与我对原理的思考

首先请各位读者知悉,我的方法实测可用,但并不是最保守与稳妥的方法,如果可行,或者你有仅凭文件系统+自启动无法实现的需求,请考虑申请解除冰点还原或参阅本文重装系统以强制解除还原。

我所述的这种操作方法也有局限性。如上所言,这种基于 PE 的方法只能让你修改文件,搭配批处理或自编程序可以修改一部分系统设置,而想要进行与系统关联极强、设置时间极长与设置过程极复杂的操作,是做不到的。我这里列举一些没有可行性的操作,如果有此类需求,建议移步其他操作方法:

  • 安装程序,并且此程序对环境或注册表设置有极大依赖。
  • 卸载无法通过直接删除文件移除的软件。(如驱动等)
  • 更改“免打扰”(专注助手)等无法用 Win32 Api 访问的系统设置。

可以做什么:

  • 自定义一个需要开机自启的程序
  • 整理文件,移除桌面上无用的文件,并添加指向数据盘的快捷方式(如各科文件夹)
  • 用自定义程序修改壁纸、默认音量等
  • 解决冰点还原所致 OneDrive 错误弹窗与音量无法显示等问题
  • 强制移除某某影音等带有广告程序的软件。

而至于这种方法的发现,则是因为我某天想起了一个名为“影子系统”的软件,对比两个软件的行为与功能,我发觉二者应该是基于同样原理的,而“影子系统”这个软件要在 winlogon 开机阶段(即“欢迎”界面)才会生效,也就是说在此之前系统盘都是可修改的,可参见下图。

也就是说,在 winlogon 之前修改文件,或者干脆不启动硬盘内系统,就可以做到修改文件了。这一下子提醒我了 Windows PE 工具,只要用 WinPE(即 U 盘内的维护系统),就能达成我们的目的了。

理论存在,实践开始。

⚠️ 警告:请务必报备并确保人身与文件安全,本教程与作者不对操作者引发的后果负责!

一、原料与准备工作

  • 一台工作正常的希沃一体机。
  • 一体机附带的遥控器或自备的键鼠。
  • 一个 U 盘,烧录有类似于 FirPE 的 Windows PE 维护系统:烧录教程可参阅此处
  • 事先准备好的自启动脚本*/命好名且目标位置正确的快捷方式文件/需存入或替换的文件。
  • (可选)一个屏幕键盘程序与一个编辑器程序,以防万一。
  • 一双手、敏捷的大脑、应变能力。

⚠️ *下文中将会教学如何编写此脚本,你应当在实操前构思并编写好。

二、(可选)自启动程序的架构设计与脚本编写

这一步仅针对需要部署自启动程序的情况,我将以自己编写的 HiDesktop 桌面小组件程序为例。

我们知道,在 Windows 中开机自启一个程序,通常有四种方式:“启动”文件夹注册表任务计划程序和 Windows 服务。用户可以轻松自定义的是前三种,我已将概述贴在上面,这里我们只能修改文件系统,因此选用第一个方案:

C:\ProgramData\Microsoft\Windows\Start Menu\Startup\

上述即为 Windows 启动文件夹。你可以自己放一个文件进去试试,它会在开机后自动运行。如果你想在资源管理器中找到此文件夹,请注意,部分路径可能显示为中文(Start Menu→开始菜单;Startup→启动),并且你需要显示隐藏的文件项目,在某些奇葩系统上还要提权文件夹以访问。(笑,Windows 总是那么让人头痛)

我们将在这里放置一个 Windows 批处理文件,并利用其执行数据盘内的另一个脚本。这样,我们就可以在不进行第二次 PE 操作的前提下,自定义设置我们的启动项了。

::filename: start.bat ; lang: Windows CMD
@echo off
title 正在执行设置.
color 0a
echo 正在执行设置,请勿关闭或点击此窗口…!
start D:\startup.bat

解释:@echo off 用于关闭命令提示,使脚本显示的有效信息更多。后文中的警告是为了防止有人误触脚本窗口致使执行中断,最后一行执行了 D 盘(假定为数据盘)下已存在的另一个脚本文件 startup.bat,从而自启动它。

::filename: startup.bat ; lang: Windows CMD
@echo off
echo 这是一个自启动的脚本.
cd D:\
D:
cd D:\widgets
start Widgets.MVP.exe

解释:此文件即为你的自定义启动项,在我的案例中,我的小组件程序位于 D:\widgets\Widgets.MVP.exe,而直接用 start 启动它,会导致程序的执行目录不正确,因此我们先用 cd 命令定位到组件程序所在文件夹,有关为何切换盘符要再次书写盘符请参阅此处。

注意:你的程序应确保能在目标系统的环境中运行,你要先做好测试。我开发的上述 HiDesktop 项目依赖于 .NET 桌面运行时,故在编译时须以独立方式部署,以规避希沃原生 Windows 10 缺失 .NET 环境的问题。

三、进入 PE,修改文件。

插入 U 盘启动一体机,开机完成后直接重启,看见“Press <F2> to setup, <F7> to boot menu.”字样时,按下遥控器的 F7 键进入启动菜单(不同品牌型号此处会有所不同),并用上下键选择装有 PE 的 U 盘分区(我的是分区 2),确定,Loading Files 完成后,即可顺利进入 PE 系统。

在 Windows PE 环境下,你会发现磁盘图标上并没有冰点图标——冰点还原并未生效,你可以自由修改文件了!

承接第二步,我们将 start.bat 放入启动文件夹 C:\ProgramData\Microsoft\Windows\Start Menu\Startup\ 中,将 startup.bat 放入 D 盘根目录“D:\”,并按预定计划放置小组件等程序,就成功构造了一个自启动项!

重启至正常系统,可以发现更改生效。

其他的操作可自行进行,而有关前文中的几个应用案例,我也会择时写作发布。敬请关注喽~

四、写在最后

本文遵循 CC-BY-NC-SA知识共享协议 。

转载请保留原作者署名(幻愿Recovery),禁作商业用途。

文中可能用到第三方素材与互联网上收集的内容,如有侵权,请联系我们,我们会及时删除有关内容。

完成于 2025 年 2 月 10 日 21:32:37。

附:桌面路径:(Users 用户;Public 公用;Desktop 桌面)

C:\Users\(用户名)\Desktop\
C:\Users\Public\Desktop\

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注