无忧启动论坛

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

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

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

很喜欢VHD系统特意写了这套开机还原脚本和大家分享,把批处理脚本的主代码贴上给大家参考下。
  1. @echo off
  2. title VHD还原
  3. cd /d %~dp0
  4. :: 检查脚本安装正确性
  5. set auto=baby1277
  6. for %%i in (Windows.*) do set nx=%%~xi
  7. for /f %%i in (description.ini) do set description=%%i
  8. for %%a in (z h c) do for %%i in (0ba a10 01a ab0) do if not exist bcd\bcd%%i%%a goto error
  9. for %%i in (10 11 1a 1b back) do if not exist Windows_%%i%nx% goto error
  10. reg query "HKEY_CLASSES_ROOT\DesktopBackground\shell\vhdstart" >nul 2>nul
  11. if %errorlevel% neq 0 call 添加桌面右键菜单.bat
  12. :: 查询 "Windows_back%nx%" VHD副本文件大小
  13. for %%i in (Windows_back%nx%) do set back=%%~zi
  14. :: 查询 "Windows 正常模式" 的VHD文件大小
  15. for %%i in (Windows_10%nx%) do set z0=%%~zi
  16. for %%i in (Windows_1a%nx%) do set za=%%~zi
  17. :: 查询 "Windows 还原模式" 的VHD文件大小
  18. for %%i in (Windows_11%nx%) do set z1=%%~zi
  19. for %%i in (Windows_1b%nx%) do set zb=%%~zi
  20. :: 重置符合条件的 "Windows 正常模式" 的VHD文件
  21. if %z0% gtr %za% if %za% gtr %back% copy /y Windows_back%nx% Windows_1a%nx%&&set v4=z
  22. if %za% gtr %z0% if %z0% gtr %back% copy /y Windows_back%nx% Windows_10%nx%&&set v4=z
  23. :: 重置符合条件的 "Windows 还原模式" 的VHD文件
  24. if %zb% gtr %back% copy /y Windows_back%nx% Windows_1b%nx% >nul 2>nul
  25. if %z1% gtr %back% copy /y Windows_back%nx% Windows_11%nx% >nul 2>nul
  26. :: 重新查询 "Windows 正常模式" 的VHD文件大小
  27. for %%i in (Windows_10%nx%) do set d0=%%~zi
  28. for %%i in (Windows_1a%nx%) do set da=%%~zi
  29. :: 重新查询 "Windows 还原模式" 的VHD文件大小
  30. for %%i in (Windows_11%nx%) do set d1=%%~zi
  31. for %%i in (Windows_1b%nx%) do set db=%%~zi
  32. :: 根据文件大小来设置默认引导菜单
  33. if %d0% geq %da% set v1=0&set v3=a
  34. if %da% geq %d0% set v1=a&set v3=0
  35. if %d1% leq %db% set v2=1
  36. if %db% leq %d1% set v2=b
  37. if %d1% neq %db% set v4=h
  38. if defined v4 bcdedit /import bcd\bcd%v1%%v2%%v3%%v4%
  39. :: 更新桌面右键菜单
  40. set reg=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell
  41. if %d1% neq %db% goto menu
  42. reg add "%reg%\start.1" /ve /t REG_SZ /d "%description%  正常模式         √" /f
  43. reg add "%reg%\start.2" /ve /t REG_SZ /d "%description%  还原模式" /f
  44. reg add "%reg%\start.3" /ve /t REG_SZ /d "一键恢复 %description%" /f
  45. if defined v4 (set m4=一键恢复 %description%) else set m4=%description%  正常模式
  46. if exist login.txt set "login=%date:~0,10% %time% 开机默认进入 "%m4%""&&call login.bat
  47. exit
  48. :menu
  49. if %d1% equ %db% exit
  50. reg add "%reg%\start.1" /ve /t REG_SZ /d "%description%  正常模式" /f
  51. reg add "%reg%\start.2" /ve /t REG_SZ /d "%description%  还原模式         √" /f
  52. reg add "%reg%\start.3" /ve /t REG_SZ /d "一键恢复 %description%" /f
  53. if exist login.txt set "login=%date:~0,10% %time% 开机默认进入 "%description%  还原模式""&&call login.bat
  54. exit
  55. :error
  56. msg %username% /time:3 检测到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系统和VHD系统都可以
     以创建bcd01az文件为例  bcdboot添加顺序为 1a 11 10
     01:右键挂载Windows_1a.vhdx 为V盘  (假设是V盘)
     02:打开 "命令提示符.lnk" 执行:bcdboot V:\windows /l zh-ch
     03:打开资源管理器 右键弹出V盘
     04:打开bootice v 1.4 智能模式 你会看见一个新增引导菜单  (假设名称为windows 11)
     05:把“windows 11”引导菜单的标题改为  “Windows 出厂模式”  保存当前系统设置后关闭bootice。
     06:右键挂载Windows_11.vhdx 为V盘  (假设是V盘)
     07:打开 "命令提示符.lnk" 执行:bcdboot V:\windows /l zh-ch
     08:打开资源管理器  右键弹出V盘
     09:打开bootice v 1.4 智能模式 你会看见一个新增引导菜单  (假设名称为windows 11)
     10:把“windows 11”引导菜单的标题改为  “Windows 还原模式”  保存当前系统设置后关闭bootice。
     11:右键挂载Windows_10.vhdx 为V盘  (假设是V盘)
     12:打开 "命令提示符.lnk" 执行:bcdboot V:\windows /l zh-ch
     13:打开资源管理器  右键弹出V盘
     14:打开bootice v 1.4 智能模式 你会看见一个新增引导菜单  (假设名称为windows 11)
     15:把“windows 11”引导菜单的标题改为  “Windows 正常模式”  保存当前系统设置后关闭bootice。
     16:打开 "命令提示符.lnk" 执行:bcdedit /export "%cd%\bcd\bcd01az" 创建bcd01az文件成功。
     17:删除新建的3个刚修改好的的菜单   (为后续添加菜单做准备)
      举一反三,重复1-17步骤按照xls表格的内容 分别创建其他的BCD文件

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


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

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

使用脚本不需要修改主板BIOS,支持安全启动,不影响系统更新。
同时支持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

评分

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

查看全部评分

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

202.10.11  取消BCD文件直接设置引导菜单和VHD文件路径
VHD秒还原2024.10.13.zip (594.71 KB, 下载次数: 52)

2024.10.5  此版本通过导入BCD文件方式修改引导菜单和
VHD文件路径
                为一楼详细介绍的方法,后续可能不再更新此方法的附件。
VHD秒还原2024.10.13(bcd).zip (593.93 KB, 下载次数: 319)     

2024.10.3  此版本没有还原模式菜单,适合新手。一楼图2样式)
VHD秒还原2024.10.14(无还原模式).zip (515.68 KB, 下载次数: 36)   
百度网盘下载 (方便没有权限的网友)

更新记录
● 编译为EXE程序(敬请期待)
● 添加本地磁盘系统菜单(待更新)
● 取消BCD文件直接设置VHD文件路径
识别VHD系统的菜单名称
识别.VHD和.VHDX格式
● 添加右键菜单动态密码
● 添加日志功能

● 添加脚本安装正确性检查
● 添加一键安装脚本
● 完善所有菜单文件排序组合

● 添加取消桌面右键菜单功能
● 添加创建BCD文件脚本
● 添加创建VHD差分文件脚本
● 添加桌面右键菜单密码功能
● 添加桌面右键菜单支持

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

PE系统环境下 手动安装VHD还原脚本的视频教程 (2024.10.4后父vhd重命名为:Windows.vhdx)
2024.9.10手动安装操作视频.part2.rar (2.86 MB, 下载次数: 51)
2024.9.10手动安装操作视频.part1.rar (3.91 MB, 下载次数: 52)


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


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

06:批处理所在的文件夹权限受限  (bat文件右键删除菜单有个小盾牌图标)
07:文件夹路径中包含符号或者空格符
08:安全防护软件的拦截
09:安装环境有问题,例如:系统版本太低,系统文件缺失,无法访问BCD。
10:硬盘分区错误,例如:ESP分区太小,分区表格式错误,分区文件格式错误。
11:默认引导程序不是bootmgr

点评

急需你的操作视频  发表于 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-10-18 13:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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