你目前正处于脱机状态,正在等待 Internet 重新连接

如何在 Windows NT 4.0 和 Windows 2000 中维护当前注册表备份

概要
注意:Microsoft 不对本文介绍的解决方案提供支持。采用这种方法需要自担风险。

在问题发生前创建注册表的备份,然后在发生问题后还原该备份,可以解决多数 Windows 问题。本文介绍如何创建批处理文件,以便定期创建压缩的注册表备份,以后您可以利用这些备份将注册表还原为某个已知状态。此外,如果您无法启动计算机,可以从 Windows 2000 恢复控制台还原注册表备份。批处理文件最多可以创建五个备份。在创建五个备份之后,当创建新备份时,会删除最旧的备份。

该过程使用 Regback.exe 工具备份注册表,使用 Makecab.exe 工具压缩备份。Windows 2000 中带有 Makecab.exe。对于 Windows NT 4.0,该工具包含在 Microsoft Cabinet 软件开发工具包 (SDK) 中。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
310618 Microsoft Cabinet 软件开发工具包
Regback.exe 是资源工具包中的工具。对于 Windows NT 4.0,请使用 Microsoft Windows NT 4.0 资源工具包中的版本。对于 Windows 2000,请使用 Microsoft Windows 2000 资源工具包中的版本。
更多信息

备份注册表

  1. 在 %Windir%\Repair 文件夹中创建名为 Savereg.bat 的批处理文件。文件中要包含以下行:
    set backupdir=%windir%\repair\regback
    set tempdir=%temp%\regback

    if not exist %backupdir% md %backupdir%
    if exist %tempdir% rd /s/q %tempdir%
    md %tempdir%
    regback %tempdir%

    :checknumfiles
    set num=1
    for %%f in (%backupdir%\*.cab) do set /a num+=1
    if %num% LSS 6 goto checkname
    for /f %%i in ('dir %backupdir%\*.cab /a/o-d/b') do set oldest=%%i
    move %backupdir%\%oldest% %backupdir%\%oldest%.old
    goto checknumfiles

    :checkname
    set num=1
    :loop
    if not exist %backupdir%\rb00%num%.cab goto createcab
    set /a num+=1
    goto loop

    :createcab
    set name=rb00%num%.cab
    echo .set inffilename=%backupdir%\setup.inf > %backupdir%\cabdirect.ddf
    echo .set cabinetnametemplate=%name% >> %backupdir%\cabdirect.ddf
    echo .set diskdirectorytemplate=%backupdir% >> %backupdir%\cabdirect.ddf
    echo .set rptfilename=%backupdir%\setup.rpt >> %backupdir%\cabdirect.ddf
    echo .set maxdisksize=cdrom >> %backupdir%\cabdirect.ddf
    for %%f in (%temp%\regback\*.*) do echo %%f >> %backupdir%\cabdirect.ddf

    makecab /f %backupdir%\cabdirect.ddf

    del %backupdir%\cabdirect.ddf
    del %backupdir%\setup.*
    if exist %backupdir%\%oldest%.old del /f/q %backupdir%\*.old
    rd /s/q %tempdir%
  2. 将 Regback.exe 和 Makecab.exe 文件复制到 %Windir%\System32 目录中。对于 Windows 2000,只需要复制 Regback.exe 文件,因为 Windows 2000 中已经含有 Makecab.exe 文件。
  3. 安排日常的注册表备份。在 Windows NT 4.0 和 Windows 2000 中运行以下命令,可以将批处理文件安排为在每天的午夜运行:
    at 00:00 /every:m,t,w,th,f,s,su %windir%\repair\savereg.bat
因为备份都是压缩形式,并且硬盘上仅保存五个备份,所以磁盘空间应当不是问题。根据 Windows 的版本和所安装程序的数量的不同,注册表备份的大小会存在差异。例如,一个“干净”安装的 Windows NT 4.0 的备份,其大小可能不超过 1 兆字节 (MB)。而一个安装有许多程序的 Windows 2000 的备份,其大小可能会超过 5 MB。

还原注册表

  1. 把 Windows 2000 光盘插入 CD-ROM 驱动器中,然后重新启动计算机。
  2. 按 R 键以选择“修复”。
  3. 按 C 键以选择“恢复控制台”。
  4. 选择要还原的 Windows 安装。
  5. 键入管理员密码,然后按 Enter 键。
  6. 键入 cd system32\config,然后按 Enter 键。
  7. 键入以下命令,备份现有注册表文件;在每个命令后按 Enter 键:
    copy default default.bak
    copy sam sam.bak
    copy security security.bak
    copy software software.bak
    copy system system.bak
  8. 键入 expand %windir%\repair\regback\rb00x.cab /f:*(其中,%windir% 是安装 Windows 的文件夹,rb00x.cab 是要还原的注册表备份文件),然后按 Enter 键。
  9. 当出现是否覆盖文件的提示信息时,按 A 键以覆盖所有文件。
  10. 键入 exit,然后按 Enter 键重新启动计算机。
注意:用“/f:filename”代替“/f:*”可以还原个别注册表配置单元,其中,filename 是要还原的注册表配置单元的名称。例如:
expand c:\winnt\repair\regback\rb001.cab /f:system
属性

文章 ID:318149 - 上次审阅时间:05/10/2005 10:30:00 - 修订版本: 2.0

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 开发员版
  • kbinfo KB318149
反馈