概要 您可以使用三种方法还原已删除的用户帐户、计算机帐户和安全组。这些对象统称为安全主体。在所有这三种方法中,都是先对已删除的对象执行授权还原,然后再还原已删除安全主体的组成员身份信息。还原已删除对象时,您必须还原受影响安全主体先前的 member 和 memberOf 属性值。这三种方法如下:
方法 1:还原已删除的用户帐户,然后使用 Ntdsutil.exe 命令行工具将已还原的用户添加到原来的组中(仅限 Microsoft Windows Server 2003 Service Pack 1 [SP1])
方法 2:还原已删除的用户帐户,然后将已还原用户添加至原来的组中 方法 3:对已删除的用户帐户和已删除的用户所在的安全组执行两次授权还原
方法 1 和 2 可为域用户和管理员提供更好的体验,因为它们会保留自上次备份系统状态到发生删除这段时间内向安全组中添加的用户。方法 3 不对安全主体进行个别调整,而是将安全组成员身份回滚到上次备份时的状态。
如果您不具有有效的系统状态备份,而且发生删除的域包含基于 Windows Server 2003 的域控制器,您可以手动或以编程方式恢复已删除的对象。您也可以使用 Repadmin 实用工具来确定删除用户的时间和位置。
多数大规模删除都是意外发生的。Microsoft 建议您采取一些措施,以防他人批量删除对象。 注意:要避免意外删除或移动对象,可以向每个对象的安全描述符中添加两个 Deny 访问控制项 (ACE)。
要在 Windows 2000 Server 和 Windows Server 2003 中执行此操作,请使用―Active Directory 用户和计算机‖、ADSIEdit、LDP 或 DSACLS 命令行工具。在 Windows Server 2008 中,―Active Directory 用户和计算机‖管理单元的―对象‖选项卡上包括一个―防止对象被意外删除‖复选框。在使用 Windows Server 2008 中的―Active Directory 用户和计算机‖创建组织单位 (OU) 时,将出现―防止对象被意外删除‖复选框。默认情况下,该复选框处于选中状态。
虽然可以使用这些 ACE 配置 Active Directory 中的每个对象,但 OU 才是其最佳适用对象。删除或移动所有叶对象都会产生重大影响。此配置可防止发生这类删除或移动。要使用这样的配置真正删除或移动对象,必须先删除 Deny ACE。
更多信息 本文分步介绍如何在从 Active Directory 中删除之后还原用户帐户、计算机帐户及其组成员身份。这一情况又可以分为多种情形,用户帐户、计算机帐户或安全组可能已被单个删除,也可能组合在一起删除。无论是哪种情况,初始步骤都是一样的 — 授权还原(或者使用 auth restore 还原)意外删除的对象。有些已删除的对象还需要其他一些操作才能被还原。这些对象包括用户帐户等对象,它们包含用作其他对象属性的反向链接的属性。其中的两个属性是 managedBy 和 memberOf。
在向安全组中添加用户帐户、安全组或计算机帐户等安全主体时,将在 Active Directory 中执行下列更改:
1. 将安全主体的名称添加到每个安全组的 member 属性中。
2. 对于每个用户、计算机或安全组所属的安全组,都将向安全主体的 memberOf 属性
中添加反向链接。
同样,从 Active Directory 中删除用户、计算机或组时,将进行以下操作:
1. 已删除的安全主体移至已删除对象容器中。
2. 从已删除的安全主体中去除大量属性值,包括 memberOf 属性。
3. 从所有所属的安全组中删除已删除的安全主体。也就是说,从每个安全组的 member
属性中删除已删除的安全主体。
在恢复已删除的安全主体并还原其组成员身份时,需要记住一点,即每个安全主体都必须存在于 Active Directory 中,才能还原其组成员身份。(该成员可能是用户、计算机或其他安全组。)从广义上讲,此规则要求属性值为反向链接的对象必须存在于 Active Directory 中,才能还原或修改包含正向链接的对象。
虽然本文重点介绍如何恢复已删除的用户帐户及其在安全组中的成员身份,但其概念同样适用于其他对象删除操作。这些概念还适用于 Active Directory 中其属性值使用到其他对象的正向链接和反向链接的已删除对象。
您可以使用上述三种方法当中的任意一种来恢复安全主体。使用方法 1 时,您可以将添加到林中任一安全组的所有安全主体保留在原位置,并且只将从各自域中删除的安全主体添加至原来的安全组中。例如,您可以做一个系统状态备份,将用户添加到安全组中,然后还原系统状态备份。使用方法 1 或 2 时,将保留自创建系统状态备份到还原备份这段时间内向包含已删除用户的安全组中添加的所有用户。使用方法 3 时,会将包含已删除用户的所有安全组的安全组成员身份回滚到创建系统状态备份时的状态。
方法 1:还原已删除的用户帐户,然后使用 Ntdsutil.exe 命令行工具将已还原的用户添加到原来的组中(仅限 Microsoft Windows Server 2003 Service Pack 1 [SP1])
注意:此方法仅在运行 Windows Server 2003 SP1 的域控制器上有效。如果用于恢复的域控制器上未安装 Windows Server 2003 SP1,请使用方法 2。
在 Windows Server 2003 SP1 中,Ntdsutil.exe 命令行工具增加了一项新功能,有助于管理员更轻松地还原已删除对象的反向链接。每次授权还原操作都会生成两个文件。其中一个文件包含授权还原的对象的列表。另一个文件则是由 Ldifde.exe 实用工具使用的 .ldf 文件。此文件用于为授权还原的对象还原反向链接。在 Windows Server 2003 SP1 中,授权还原用户对象还会生成包含组成员身份信息的 LDIF 文件。此方法可避免双重还原。
使用此方法时,需执行下列高级步骤:
1. 查看用户域中是否存在未在删除中复制的全局编录,如果存在,则阻止对该全局编录进
行复制。如果不存在潜在的全局编录,请在已删除用户所在的主域中查找全局编录域控制器的最新系统状态备份。
2. 对所有已删除的用户帐户执行授权还原,然后允许对这些用户帐户进行端到端复制。 3. 将所有已还原用户重新添加到这些用户帐户在被删除之前所属的各个域的所有组中。
要使用方法 1,请按照以下步骤操作:
1. 查看已删除的用户所在的主域中是否存在未复制任何删除部分的全局编录域控制器。
注意:请重点关注复制计划次数最少的全局编录。
如果存在一个或多个这样的全局编录,应使用 Repadmin.exe 命令行工具立即禁用入站复制。为此,请按照下列步骤操作:
a. 单击―开始‖,然后单击―运行‖。
b. 在―打开‖框中键入 cmd,然后单击―确定‖。 c. 在命令提示符处键入以下命令,然后按 Enter:
repadmin /options 注意:如果无法立即发出 Repadmin 命令,请从潜在的全局编录中删除所有网络连接,直至可以使用 Repadmin 禁用入站复制,然后立即恢复网络连接。 2. 此域控制器将称为恢复域控制器。如果不存在这样的全局编录,请转到步骤 2。 3. 如果符合下列所有条件,最好停止对林中安全组的更改: o 您正使用方法 1 按可分辨名称 (dn) 路径对已删除的用户帐户或计算机帐户 执行授权还原。 o 除了潜在的恢复域控制器外,已向林中的所有域控制器复制了删除。 o 您当前未对安全组或其父容器执行授权还原。 如果您正在对安全组或承载安全组或用户帐户的组织单位 (OU) 容器执行授权还原,请暂时停止所有这些更改。 通知适当域中的管理员和技术支持管理员以及发生删除的域中的域用户停止这些更改。 4. 在发生删除的域中,创建新的系统状态备份。如果必须回滚所做的更改,您可以使用此 备份。 注意:如果系统状态备份是删除时的最新状态,请跳过此步骤并转到步骤 4。 如果在步骤 1 中确定了恢复域控制器,现在请备份它的系统状态。 如果删除中复制了发生删除的域中的所有全局编录,请备份该域中全局编录的系统状态。 如果创建了备份,则可将恢复域控制器还原为它当前的状态,并可以在首次尝试失败时再次执行恢复计划。 5. 如果无法在删除了用户的域中找到潜在的全局编录域控制器,可在该域中查找全局编录 域控制器的最新系统状态备份。此系统状态备份应包含已删除的对象。请将此域控制器用作恢复域控制器。 只有用户域中全局编录域控制器的还原操作包含位于外部域中的安全组的全局和通用组成员身份信息。如果删除了用户的域中不存在全局编录域控制器的系统状态备份,您将无法使用还原的用户帐户的 memberOf 属性来确定全局或通用组成员身份,或恢复外部域中的成员身份。此外,建议您查找非全局编录域控制器的最新系统状态备份。 6. 如果您知道脱机管理员帐户的密码,请在 Dsrepair 模式下启动恢复域控制器。如果您 不知道脱机管理员帐户的密码,请在恢复域控制器仍处于正常 Active Directory 模式下时重置密码。 当运行 Microsoft Windows 2000 Service Pack 2 (SP2) 和更高版本的域控制器处于联机 Active Directory 模式下时,您可以使用 setpwd 命令行工具重置其密码。 注意:Microsoft 不再支持 Windows 2000 SP2。安装最新的 Windows 2000 Service Pack 可获得此功能。 有关更改恢复控制台管理员密码的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 239803 如何在域控制器上更改恢复控制台的管理员密码 Windows Server 2003 域控制器的管理员可以使用 Ntdsutil 命令行工具中的 set dsrm password 命令重置脱机管理员帐户的密码。 有关如何重置目录服务还原模式管理员帐户的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 322672 如何在 Windows Server 2003 中重置目录服务还原模式的管理员帐户密码 7. 启动过程中按 F8 可以在 Dsrepair 模式下启动恢复域控制器。使用脱机管理员帐户登 录到恢复域控制器的控制台。如果在步骤 5 中重置了密码,请使用新密码。 如果恢复域控制器是一个潜在的全局编录域控制器,请不要还原系统状态。转到步骤 7。 如果您要通过使用系统状态备份来创建恢复域控制器,请立即还原在该恢复域控制器上创建的最新系统状态备份。 8. 对已删除的用户帐户、计算机帐户或安全组执行授权还原。 注意:授权还原这一术语是指使用 Ntdsutil 命令行工具中的 authoritative restore 命令增加特定对象或特定容器及其所有从属对象的版本号的过程。一旦发生端到端复制,恢复域控制器本地 Active Directory 副本中的目标对象就会在所有共享该分区的域控制器上变得具有授权。授权还原不同于系统状态还原。系统状态还原使用创建系统状态备份时的对象版本填充已还原的域控制器的 Active Directory 本地副本。 有关对域控制器执行授权还原的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 241594 如何在 Windows 2000 中对域控制器执行授权还原 授权还原使用 Ntdsutil 命令行工具执行并引用已删除用户或承载已删除用户的容器的域名 (dn) 路径。 执行授权还原时,应尽量使用在域树中处于最底层的域名 (dn) 路径,以避免还原与删除操作无关的对象。这些对象可能包括创建了系统状态备份后修改的对象。 按照以下顺序对已删除的用户执行授权还原: . 对每个已删除的用户帐户、计算机帐户或安全组的域名 (dn) 路径执行授权还 原。 与对整个子树执行授权还原相比,对特定的对象执行授权还原花费的时间更长,但是破坏性较小。对保存已删除对象的最不通用的父容器执行授权还原。 Ntdsutil 使用以下语法: ntdsutil \"authoritative restore\" \"restore object