将脚本添加到一键重置功能

更新时间: 2013年10月

应用到: Windows 8, Windows 8.1

你可以通过添加脚本(又称为 一键重置 可扩展性脚本)来自定义 一键重置 体验。例如,当运行“恢复电脑”“初始化电脑”功能时,你可以使用脚本保留重要自定义或执行系统诊断。 你可以在恢复过程中的多个点处添加脚本。详细信息,请参阅一键重置概述主题。

这些扩展点适用于诸如复制文件或插入驱动程序等的基本操作。

  1. 在记事本中,你可以创建自定义脚本保存或检索日志文件,检查分区和安装应用程序。

    Important重要事项
    你的脚本必须符合以下要求:

    • 脚本被格式化为 .cmd 或.exe 文件。

    • 脚本不依赖默认 Windows RE 映像 (winre.wim) 中不存在的 Windows PE 可选组件。

    • 脚本不依赖默认 Windows RE 映像 (winre.wim) 中不存在的二进制文件(例如 .exe 或 .dll 文件)。

    • 脚本运行时不显示图形用户界面 (GUI)。

    • 脚本在 5 分钟内完成每个可扩展点的所有预定功能。

    如果成功,你的脚本必须返回 0(零)。如果 一键重置 接收一个非 0 的值,可执行以下步骤:

    • 如果运行“恢复电脑”功能:所有系统更改将发生回滚。如果从 Windows“电脑设置”菜单中启动脚本或可执行文件,系统将在 Windows 中重新启动。如果从 Windows RE 或启动选项菜单中启动脚本或可执行文件,系统将保留在 Windows RE 中并显示错误消息。

    • 如果运行“重置电脑”功能:故障将被忽略。脚本或可执行文件继续执行重置过程中的下一步,并记录故障。

    如有需要,你可以使用以下位置进行存储。

    • Windows PE RAM 驱动程序 (X:)。该虚拟机由 Windows PE 来创建,并在“恢复电脑”过程中保持活跃。在刷新分区之前,你可以结合使用它和“恢复电脑”功能来保持数据,并在完成分区刷新之后恢复数据。可用内存空间限制为系统上的 RAM 空间,并减去完全扩展时 Windows RE 工具所需的 RAM 空间。有关安装 Windows RE 和确定完全扩展的文件大小的说明,请参阅自定义 Windows RE

    • 指定的 OEM 分区。你可以保留分区上的多余空间。例如,你可以保留恢复映像分区上的空间,并使用脚本临时分配驱动器号,然后将文件保存到该分区中。但是,如果你的用户使用恢复介质重新分配磁盘,这些分区上的数据可能会在恢复过程中丢失。

    示例 1:保存日志文件

    该示例脚本保留可以其他方式删除的文件,将这些文件放在内存的临时位置中,可由其他示例脚本 RetrieveLogFiles.cmd 进行检索。

    :rem == SaveLogFiles.cmd
    
    :rem == This sample script preserves files that would 
    :rem    otherwise be removed by placing them in a 
    :rem    temporary location in memory, to be retrieved by
    :rem    RetrieveLogFiles.cmd.
    
    :rem == 1. Use the registry to identify the location of
    :rem       the new operating system and the primary hard
    :rem       drive. For example, 
    :rem       %TARGETOS% may be defined as C:\Windows
    :rem       %TARGETOSDRIVE% may be defined as C:
    for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C
    
    for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A
    
    :rem == 2. Copy old logs to a temporary folder in memory
    mkdir X:\Temp
    xcopy %TARGETOS%\Logs\*.* X:\temp /cherkyi
    
    EXIT 0
    

    示例 2:检索日志文件

    该示例脚本检索由 SaveLogFiles.cmd 脚本保存在内存中的文件,并将它们添加回系统中。它还允许系统诊断,然后将输出发送到 C:\Fabrikam 文件夹。

    :rem == RetrieveLogFiles.cmd
    
    :rem == This sample script retrieves the files that 
    :rem    were saved in memory by 
    :rem    SaveLogFiles.cmd,
    :rem    and adds them back to the system.
    :rem
    :rem    It also runs a system diagnostic, and sends the output
    :rem    to the C:\Fabrikam folder.
    
    
    :rem == 1. Use the registry to identify the location of
    :rem       the new operating system and the primary hard
    :rem       drive. For example, 
    :rem       %TARGETOS% may be defined as C:\Windows
    :rem       %TARGETOSDRIVE% may be defined as C:
    for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C
    
    for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A
    
    :rem == 2. Copy the old logs to the new OS 
    :rem       at C:\Windows\OldLogs
    mkdir %TARGETOS%\OldLogs
    xcopy X:\Temp\*.* %TARGETOS%\OldLogs /cherkyi
    
    :rem == 3. Run system diagnostics using the
    :rem       DirectX Diagnostic tool, and save the 
    :rem       results to the C:\Fabrikam folders. ==
    
    mkdir %TARGETOSDRIVE%\Fabrikam
    %TARGETOS%\system32\dxdiag.exe /whql:off /t %TARGETOSDRIVE%\Fabrikam\DxDiag-TestLogFiles.txt
    
    EXIT 0
    

  1. 在记事本中,创建一个指向你的 一键重置 可扩展性脚本的配置文件 (ResetConfig.xml)。有关此文件的详细信息,请参阅 ResetConfig XML 参考

    <?xml version="1.0" encoding="utf-8"?>
    <!-- ResetConfig.xml -->
       <Reset>
          <Run Phase="BasicReset_BeforeImageApply">
             <Path>SaveLogFiles.cmd</Path>
             <Duration>4</Duration>
          </Run>      
          <Run Phase="BasicReset_AfterImageApply">
             <Path>RetrieveLogFiles.cmd</Path>
             <Duration>2</Duration>
          </Run>
          <Run Phase="FactoryReset_AfterDiskFormat">
             <Path>CheckPartitions.exe</Path>
             <Duration>2</Duration>
          </Run>
          <Run Phase="FactoryReset_AfterImageApply">
             <Path>InstallApps.cmd</Path>
             <Param>/allApps</Param>
             <Duration>2</Duration>
          </Run>
          <!-- May be combined with Recovery Media Creator
               configurations – insert SystemDisk element here -->
       </Reset>
    

    其中 SaveLogFiles.cmd、RetrieveLogFiles.cmd、CheckPartitions.exe 和 InstallApps.cmd 均为虚构脚本。

  2. 单击“文件”,然后单击“另存为”。在“编码”框中,选择 UTF-8,并将该文件另存为 E:\Recovery\RecoveryImage\ResetConfig.xml。

    其中 E 是 U 盘或其他可移动介质的驱动器号。请勿使用 ANSI 编码。

    note备注
    你可以使用相同的 ResetConfig.xml 文件配置 Windows,以便创建恢复介质。有关详细信息,请参阅部署一键重置功能

  1. 在目标计算机上,插入带有配置文件的 U 盘。

  2. 将配置文件复制到目标计算机

    Copy E:\Recovery\RecoveryImage\* R:\RecoveryImage\*
    

    其中 E 为 U 盘的盘符。

既然你已自定义 一键重置 体验,你可将 一键重置 (Install.wim) 的恢复映像部署到恢复映像分区。

若要将 Diskpart 脚本、ResetConfig.xml 文件和 一键重置 恢复映像 (install.wim) 复制到目标 PC 的恢复映像分区,请遵从部署一键重置功能主题中的说明。

显示:
© 2015 Microsoft