无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4240|回复: 74
打印 上一主题 下一主题

[原创] VHD秒还原开机脚本 两种还原模式 + 桌面右键菜单 持续更新

    [复制链接]
跳转到指定楼层
1#
发表于 2024-6-23 16:19:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 baby1277 于 2024-9-16 15:21 编辑

很喜欢VHD系统特意写了这套开机还原脚本和大家分享,把批处理脚本的主代码贴上给大家参考下。

------------------------------------------------保存ANSI编码-------------------------------------------     
@echo off
title VHD还原
cd /d %~dp0
:: 检查脚本安装环境
set auto=baby1277
if not exist bcd\bcdab0z goto error
if not exist Windown11_back.vhdx goto error
reg query "HKEY_CLASSES_ROOT\DesktopBackground\shell\vhdstart" >nul 2>nul
if errorlevel 1 call 添加桌面右键菜单.bat
:: 查询 "Windown11_back.vhdx" VHD副本文件大小
for %%i in (Windown11_back.vhdx) do set back=%%~zi
:: 查询 "Windown11 正常模式" 的VHD文件大小
for %%i in (Windown11_10.vhdx) do set z0=%%~zi
for %%i in (Windown11_1a.vhdx) do set za=%%~zi
:: 查询 "Windown11 还原模式" 的VHD文件大小
for %%i in (Windown11_11.vhdx) do set z1=%%~zi
for %%i in (Windown11_1b.vhdx) do set zb=%%~zi
:: 重置符合条件的 "Windown11 正常模式" 的VHD文件
if %z0% gtr %za% if %za% gtr %back% copy /y Windown11_back.vhdx Windown11_1a.vhdx&&set v4=z
if %za% gtr %z0% if %z0% gtr %back% copy /y Windown11_back.vhdx Windown11_10.vhdx&&set v4=z
:: 重置符合条件的 "Windown11 还原模式" 的VHD文件
if %zb% gtr %back% copy /y Windown11_back.vhdx Windown11_1b.vhdx
if %z1% gtr %back% copy /y Windown11_back.vhdx Windown11_11.vhdx
:: 重新查询 "Windown11 正常模式" 的VHD文件大小
for %%i in (Windown11_10.vhdx) do set d0=%%~zi
for %%i in (Windown11_1a.vhdx) do set da=%%~zi
:: 重新查询 "Windown11 还原模式" 的VHD文件大小
for %%i in (Windown11_11.vhdx) do set d1=%%~zi
for %%i in (Windown11_1b.vhdx) do set db=%%~zi
:: 根据文件大小来设置默认引导菜单
if %d0% geq %da% set v1=0&set v3=a
if %da% geq %d0% set v1=a&set v3=0
if %d1% leq %db% set v2=1
if %db% leq %d1% set v2=b
if %d1% neq %db% set v4=h
if defined v4 bcdedit /import bcd\bcd%v1%%v2%%v3%%v4%
:: 更新桌面右键菜单
set reg=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell
if %d1% neq %db% goto menu
reg add "%reg%\start.1" /v "" /t REG_SZ /d "Windown11  正常模式         √" /f
reg add "%reg%\start.2" /v "" /t REG_SZ /d "Windown11  还原模式" /f
reg add "%reg%\start.3" /v "" /t REG_SZ /d "Windown11  出厂模式" /f
exit
:menu
if %d1% equ %db% exit
reg add "%reg%\start.1" /v "" /t REG_SZ /d "Windown11  正常模式" /f
reg add "%reg%\start.2" /v "" /t REG_SZ /d "Windown11  还原模式         √" /f
reg add "%reg%\start.3" /v "" /t REG_SZ /d "Windown11  出厂模式" /f
exit
:error
msg %username% /time:5 VHD还原脚本安装错误,请查看安装说明。

------------------------------------------------保存ANSI编码-------------------------------------------














  
正常模式:每次开机不会还原系统,正常模式下的VHD文件保持不变。
还原模式:每次开机都会还原系统,正常模式下的VHD文件保持不变,俗称 网吧模式。
出厂模式:开机只会还原系统一次,正常模式下的VHD文件被还原,下次开机为正常模式,

                俗称  一键还原系统。

桌面右键菜单算是别出心裁吧,电脑小白点两下鼠标就可以轻松还原系统,简直太方便了。
  
vhd还原脚本的逻辑:1重置或者保留VHD文件
-----2导入默引导菜单的BCD文件-----3更新桌面右键菜单
  
1:重置或者保留VHD文件
     还原模式的VHD文件对比大小,copy大于副本的。
     正常模式的VHD文件对比大小,copy小的保留大的。
  
2:
导入默引导菜单的BCD文件
     使用bcdboot和bootice创建固定路径菜单的bcd文件,最后用bcdedit /import 命令导入。
     秒还原脚本大致的原理是:BCD文件与默认引导菜单和VHD文件三者组合起来交替挂载使用
     以下是我整理出的xls表格,其中10和1a对应正常模式和出厂模式,11和1b交替挂载为还原模式。   
  

       

     手动创建bcd文件的方法 (已支持一键创建BCD文件,当备选方案
     运行环境:win8以上本地磁盘系统或者PE系统都可以
     以创建bcd01az文件为例  bcdboot添加顺序为 1a 11 10
     01:右键挂载Windown11_1a.vhdx 为V盘  (假设是V盘)
     02:打开 "命令提示符.lnk" 执行:bcdboot V:\windows /l zh-ch
     03:打开资源管理器 右键弹出V盘
     04:打开bootice v 1.4 智能模式 你会看见一个新增引导菜单  (假设名称为windows 11)
     05:把“windows 11”引导菜单的标题改为  “Windows11 出厂模式”  保存当前系统设置后关闭bootice。
     06:右键挂载Windown11_11.vhdx 为V盘  (假设是V盘)
     07:打开 "命令提示符.lnk" 执行:bcdboot V:\windows /l zh-ch
     08:打开资源管理器  右键弹出V盘
     09:打开bootice v 1.4 智能模式 你会看见一个新增引导菜单  (假设名称为windows 11)
     10:把“windows 11”引导菜单的标题改为  “Windows11 还原模式”  保存当前系统设置后关闭bootice。
     11:右键挂载Windown11_10.vhdx 为V盘  (假设是V盘)
     12:打开 "命令提示符.lnk" 执行:bcdboot V:\windows /l zh-ch
     13:打开资源管理器  右键弹出V盘
     14:打开bootice v 1.4 智能模式 你会看见一个新增引导菜单  (假设名称为windows 11)
     15:把“windows 11”引导菜单的标题改为  “Windows11 正常模式”  保存当前系统设置后关闭bootice。
     16:打开 "命令提示符.lnk" 执行:bcdedit /export "%cd%\bcd\bcd01az" 创建bcd01az文件成功。
     17:删除新建的3个刚修改好的的菜单   (为后续添加菜单做准备)
      举一反三,重复1-17步骤按照xls表格的内容 分别创建其他的BCD文件

3:更新桌面右键菜单
      对比还原模式的VHD文件大小,相同设置为正常模式,不同则设置为还原模式。
      进入系统后没有出厂模式,如菜单显示为出厂模式则会按上述规则重新设置。


VHD还原脚本手动安装方法(已支持一键安装,当备选方案)
      安装运行环境:win8以上本地磁盘系统或者PE系统都可以
      1:将父VHD系统和脚本放在一起放重命名为Windown11.vhdx
      2:右键装载Windown11.vhdx (父VHD) 为V盘 (假设是V盘)
      3:打开 "命令提示符.lnk" 执行:bcdboot V:\windows /l zh-ch
      4:重启系统自动引导登录Windown11.vhdx (父VHD) 运行“添加开机启动.bat”
      5:重启系统手动选择进入PE系统或者本地磁盘系统 运行“创建vhd差分文件.bat”
      6:运行“创建bcd文件.bat”
      7:重启系统完成安装,安装成功后首次进入 “Windown11  正常模式”

VHD还原脚本的安装逻辑 (手动安装)      
      1:重命名目标VHD文件 (步骤1)
      2:往目标VHD系统的注册表添加开机启动项 (步骤2-4)
      3:差分目标VHD (步骤5)
      4:引导登录差分VHD (步骤6)


脚本支持安全启动,同时支持UEFI和BIOS固件,理论上Win7-Win11的新旧电脑都可以使用。
分别在操作系统为 Windows_10_2019_ltsc 固件为 BIOS 的实体机测试OK
分别在操作系统为 Windows_11_23H2 固件为 UEFI 的实体机测试OK

如有问题或建议请回帖,有时间我会回复大家,谢谢大家的支持







点评

默默等待BIOS系统  发表于 2024-6-29 11:38
辛苦了  发表于 2024-6-23 18:09

评分

参与人数 7无忧币 +37 收起 理由
879792799 + 5 绝对好创意!
smartcowboy + 5 期待分享其他更好的作品
whyme22 + 5
Myptour + 5 赞一个!
新空气 + 5
yyz2191958 + 2 赞一个!
20090101 + 10 很给力!

查看全部评分

2#
 楼主| 发表于 2024-6-23 16:20:20 | 只看该作者
本帖最后由 baby1277 于 2024-9-20 12:49 编辑

2024.9.15   添加右键菜单动态密码
VHD秒还原2024.9.15.zip (596.64 KB, 下载次数: 204)

Win7不支持VHDX,仅改后缀名为VHD,其他未测试。

VHD秒还原2024.9.20(Win7适用).zip (596.82 KB, 下载次数: 4)

更新记录
● 编译为EXE程序(敬请期待)
● 取消BCD文件直接设置路径(待更新)
● 添加本地磁盘系统菜单(待更新)
● 添加右键菜单动态密码
● 添加日志功能
● 添加一键安装脚本
● 完善所有菜单文件排序组合
● 添加一键创建BCD文件
● 添加右键菜单支持

手动安装成功率:99%  操作复杂,需要多次重启系统。
一键安装成功率:70%  操作简单,不需要重启系统。

PE系统环境下 手动安装VHD还原脚本的视频教程
2024.9.10手动安装操作视频.part2.rar (2.86 MB, 下载次数: 29)
2024.9.10手动安装操作视频.part1.rar (3.91 MB, 下载次数: 29)


PE系统环境下 一键安装VHD还原脚本的视频教程


安装失败的可能原因:
01:目标VHD文件被占用,可能安装前被挂载过。
02:目标VHD文件相关连的其他VHD文件被挂载或占用。
03:目标VHD文件被设置为只读属性
04:目标VHD文件自身无法被命令行挂载,但右键可以。
05:批处理没有以管理员权限运行

06:批处理所在的文件夹权限受限
07:文件夹路径中包含特殊符号
08:安全防护软件的拦截
09:安装环境的操作系统有问题,例如:版本太低,系统文件缺失,无法访问BCD。
10:硬盘分区错误,例如:ESP分区太小,分区表格式错误,分区文件格式错误。



点评

急需你的操作视频  发表于 2024-8-28 11:24

评分

参与人数 3无忧币 +20 收起 理由
879792799 + 5 批处理还原大法集大成者!666
qq27722 + 5 赞一个!
20090101 + 10 很给力!

查看全部评分

回复

使用道具 举报

3#
发表于 2024-6-23 16:35:15 | 只看该作者
谢谢共享
回复

使用道具 举报

4#
发表于 2024-6-23 16:36:27 | 只看该作者
密码是?

点评

我的ID 帖子中有说明  详情 回复 发表于 2024-6-23 16:40
回复

使用道具 举报

5#
 楼主| 发表于 2024-6-23 16:40:33 | 只看该作者

我的ID 帖子中有说明
回复

使用道具 举报

6#
发表于 2024-6-23 16:45:14 | 只看该作者

谢谢分享!!!
回复

使用道具 举报

7#
发表于 2024-6-23 16:47:10 | 只看该作者
谢谢分享
回复

使用道具 举报

8#
发表于 2024-6-23 17:28:18 | 只看该作者
感谢分享,我比较菜,不懂VHD,有详细使用说明吗?谢谢

点评

详细的资料,只能帮助到这里了。 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414366  详情 回复 发表于 2024-6-23 17:37
回复

使用道具 举报

9#
 楼主| 发表于 2024-6-23 17:37:18 | 只看该作者
2013ertert 发表于 2024-6-23 17:28
感谢分享,我比较菜,不懂VHD,有详细使用说明吗?谢谢

详细的资料,只能帮助到这里了。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414366
回复

使用道具 举报

10#
发表于 2024-6-23 17:37:51 | 只看该作者
vhd系统一直不能休眠啊 ,而我又需要休眠,
所以我不大用vhd系统

点评

用winntsetup创建/附加VHD并安装系统进去,主BCD里有Windows Resume Application. 你试试这样操作,看看这样整的系统能不能休眠?  详情 回复 发表于 2024-6-24 10:59
回复

使用道具 举报

11#
 楼主| 发表于 2024-6-23 17:45:05 | 只看该作者
从来没用过休眠功能,刚刚我试用了好像支持,点击睡眠主机风扇和屏幕也关了。
不知道是不是休眠,可以win11支持了也难说。


点评

vhd支持睡眠、不支持休眠。 我是台式机,因为有没干完的活(打开的软件或其他,也怕关机把没干完的活忘了),所以不能关机,但又怕停电,只能休眠。  详情 回复 发表于 2024-6-24 11:17
回复

使用道具 举报

12#
发表于 2024-6-23 17:56:07 | 只看该作者
主板支持睡眠,就可以的。我一直在用。
回复

使用道具 举报

13#
发表于 2024-6-23 18:09:06 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
发表于 2024-6-23 20:13:20 | 只看该作者
VHD从7时代就开始用了,挺好的,特别是用来测试系统
你这个想法,貌似之前有人发过类似的,更早以前BIOS模式还有个GUI小软件形式添加的,不过,我个人更喜欢手工确认更换
回复

使用道具 举报

15#
发表于 2024-6-23 22:22:09 | 只看该作者
谢谢分享。
回复

使用道具 举报

16#
发表于 2024-6-23 22:42:03 | 只看该作者

谢谢分享
回复

使用道具 举报

17#
发表于 2024-6-24 08:35:01 | 只看该作者
谢谢分享
回复

使用道具 举报

18#
发表于 2024-6-24 09:48:46 | 只看该作者
回复

使用道具 举报

19#
发表于 2024-6-24 10:39:08 | 只看该作者
谢谢分享
回复

使用道具 举报

20#
发表于 2024-6-24 10:59:54 | 只看该作者
likeyouli 发表于 2024-6-23 17:37
vhd系统一直不能休眠啊 ,而我又需要休眠,
所以我不大用vhd系统

用winntsetup创建/附加VHD并安装系统进去,主BCD里有Windows Resume Application. 你试试这样操作,看看这样整的系统能不能休眠?

点评

这句没看懂, 我感觉应该也不能休眠,不能休眠的原因估计是虚拟分区的原因,也就是说只有正常硬盘分区才支持休眠。 这只是我猜测。  详情 回复 发表于 2024-6-24 11:09
回复

使用道具 举报

21#
发表于 2024-6-24 11:09:29 | 只看该作者
音乐与电脑 发表于 2024-6-24 10:59
用winntsetup创建/附加VHD并安装系统进去,主BCD里有Windows Resume Application. 你试试这样操作,看看 ...
主BCD里有Windows Resume Application
这句没看懂,
  我感觉应该也不能休眠,不能休眠的原因估计是虚拟分区的原因,也就是说只有正常硬盘分区才支持休眠。 这只是我猜测。

点评

要不试试  详情 回复 发表于 2024-6-24 11:38
回复

使用道具 举报

22#
发表于 2024-6-24 11:17:21 | 只看该作者
baby1277 发表于 2024-6-23 17:45
从来没用过休眠功能,刚刚我试用了好像支持,点击睡眠主机风扇和屏幕也关了。
不知道是不是休眠,可以win1 ...

vhd支持睡眠、不支持休眠。
  我是台式机,因为有没干完的活(打开的软件或其他,也怕关机把没干完的活忘了),所以不能关机,但又怕停电,只能休眠。
回复

使用道具 举报

23#
发表于 2024-6-24 11:38:02 | 只看该作者
likeyouli 发表于 2024-6-24 11:09
这句没看懂,
  我感觉应该也不能休眠,不能休眠的原因估计是虚拟分区的原因,也就是说只有正常硬盘分 ...

要不试试
回复

使用道具 举报

24#
发表于 2024-6-24 13:03:08 | 只看该作者
感谢楼主分享
回复

使用道具 举报

25#
发表于 2024-6-24 15:02:42 | 只看该作者
感谢辛苦提供分享!
回复

使用道具 举报

26#
发表于 2024-6-25 08:45:02 | 只看该作者

谢谢楼主
回复

使用道具 举报

27#
发表于 2024-6-25 12:04:18 | 只看该作者
支持原创。虽然vhd一键还原早就有了,但是爱折腾永不过时。
回复

使用道具 举报

28#
发表于 2024-6-25 14:11:48 | 只看该作者
感谢分享
回复

使用道具 举报

29#
发表于 2024-6-29 12:19:02 | 只看该作者
这个要支持
回复

使用道具 举报

30#
发表于 2024-7-10 19:13:01 | 只看该作者
现在用的仅仅是2个vhd系统,正常和恢复,恢复也仅仅是copy&restart 写在计划任务里,这回有新玩法了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-20 18:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表