还原 Active Directory 服务器

Active Directory 服务器必须脱机还原。 必须在目录服务还原模式下重启系统。 在此模式下,作系统在没有 Active Directory 域服务的情况下运行,并且所有用户验证都通过注册表中的安全帐户管理器(SAM)进行。 若要还原 Active Directory 域服务,请使用还原的域控制器上的本地管理员的凭据。

注释

如果域控制器当前配置为 使用网络以安全模式运行,则该模式不允许系统管理员登录。

还原函数的调用方必须具有 SE_RESTORE_NAME 访问权限。 使用 DsSetAuthIdentity 函数设置在其中调用目录备份和还原函数的安全上下文。

请注意,还原 Active Directory 域服务时,还必须还原其他系统状态组件。

若要还原 Active Directory 域服务,请执行以下步骤:

  1. 调用 DsIsNTDSOnline 函数以确定 Active Directory 域服务是否正在运行。
  2. 如果未运行 Active Directory 域服务,将调用 DsRestorePrepare 函数来初始化还原作并获取备份上下文句柄。 如果 Active Directory 域服务正在运行,则无法还原,并且还原应用程序必须使还原操作失败。 DsRestorePrepare 函数要求在备份作期间从 DsBackupPrepare 函数获取过期令牌。
  3. 调用 DsRestoreGetDatabaseLocations 函数以确定要还原文件的目录。 如果此函数失败,将数据还原回原始备份源目录;,它是从中备份数据的目录。
  4. 调用 DsRestoreRegister 函数,为还原作准备 Active Directory 服务器并锁定还原目录。
  5. 使用标准 Win32 函数还原文件。 首先,删除目标目录中的所有文件;然后将备份文件复制到目标目录。
  6. 调用 DsRestoreRegisterComplete 函数以指示还原已完成。
  7. 调用 DsRestoreEnd 函数以释放与上下文关联的任何资源。

在目录服务还原模式下还原后,域控制器应在正常模式下重启。 目录服务启动时,域控制器将执行正常的一致性检查,还原的目录随后将联机。

请注意,还原 Active Directory 服务器始终是一个两个步骤的操作。 首先,将数据库还原到执行备份的时间。 其次,复制该目录,新还原的 DSA 将在备份后从域和企业林中的其他 DSA 接收更新并进行复制。

在 Windows 2000 或 Windows Server 2003 上运行的计算机(包含目录服务的副本)是域控制器。

DsRestoreRegister 函数会将数据添加到注册表中,这些数据必须经注册表还原过程才能正常运行。 若要确保保留此注册表数据,请在调用 RegReplaceKey 函数后重启计算机之前使用 DsRestore* 函数还原 Active Directory 域服务。 此过程之所以有效,是因为在重启计算机之前RegReplaceKey 实际上不会替换注册表配置单元,DsRestoreRegister 函数添加的注册表数据在注册表还原操作期间被特别排除在替换操作之外。