snapshot从1.4版开始支持还原当前操作系统所在分区,但似乎只能在gui中实现
找了半天也没有发现可以用命令行实现的方法或参数
哪位大大知道方法的麻烦说下
这是官方介绍内容http://www.drivesnapshot.de/en/restboot.htm
通过分析注册表发现
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
"BootExecute"=hex(7):61,00,75,00,74,00,6f,00,63,00,68,00,65,00,63,00,6b,00,20,\
00,61,00,75,00,74,00,6f,00,63,00,68,00,6b,00,20,00,2a,00,00,00,73,00,6e,00,\
61,00,70,00,6e,00,61,00,74,00,69,00,76,00,65,00,2e,00,65,00,78,00,65,00,00,\
00,00,00
在“bootexecute”下多了一个启动程序
snapnative.exe c:\windows\system32\snapnative.exe
而在这里多了以下几个值
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Snapshot]
"AutoReboot"=dword:00000000
"AutoRebootSuccess"=dword:00000000
"Destination"="\\??\\C:"
"FullImage"="\\??\\x:\\C-Drive.sna"
关于从“bootexecute”键中运行的程序的特点
经查相关技术文档说是win系统在启动到这里时,所有系统分区中的文件都没有被锁定,而snapshot则巧妙的利用了win系统的这一点特性,通过在“bootexecute”键中添加snapnative.exe来还原系统
为什么不是snapshot.exe呢,因为在bootexecute这里运行的程序是很底层的native程序,普通程序在这里还没法运行
通过以上分析,虽然目前还没有命令行参数支持这种还原,但我们却可以通过注册导入相关的键值来实现
[ 本帖最后由 bfgxp 于 2010-12-19 13:03 编辑 ] |