如何在 Active Directory 中还原已删除用户帐户及其组成员身份

本文介绍如何在 Active Directory 中还原已删除的用户帐户和组成员身份。

原始 KB 数: 840001

简介

可以使用多种方法来还原已删除的用户帐户、计算机帐户和安全组。 这些对象统称为安全主体。

最常见的方法是启用基于 Windows Server 2008 R2 及更高版本的域控制器支持的 AD 回收站功能。 有关此功能的详细信息,包括如何启用和还原对象,请参阅 Active Directory 回收站分步指南

如果此方法不可用,可以使用以下三种方法。 在所有三种方法中,你都权威地还原已删除的对象,然后还原已删除的安全主体的组成员身份信息。 还原已删除的对象时,必须还原受影响安全主体中的前值 membermemberOf 属性。

注意

通过启用基于 Windows Server 2008 R2 及更高版本的域控制器支持的 AD 回收站功能,可以简化在 Active Directory 中恢复已删除的对象。 有关此功能的详细信息,包括如何启用和还原对象,请参阅 Active Directory 回收站分步指南

详细信息

方法 1 和 2 为域用户和管理员提供更好的体验。 这些方法保留对在上次系统状态备份和删除发生时间之间进行的安全组的添加。 在方法 3 中,不对安全主体进行单独调整。 而是在上次备份时将安全组成员身份回滚到其状态。

大多数大规模删除都是意外的。 Microsoft建议你执行几个步骤,以防止其他人批量删除对象。

注意

为了防止意外删除或移动对象(特别是组织单位),可以将两个拒绝访问控制条目(ACE)添加到每个对象(DENY DELETE 和 DELETE TREE)的安全描述符,一个拒绝访问控制条目(ACE)可以添加到每个对象的 PARENT 的安全描述符(DENY DELETE CHILD)。 为此,请使用 Active Directory 用户和计算机、ADSIEdit、LDP 或 DSACLS 命令行工具。 还可以更改组织单位 AD 架构中的默认权限,以便默认包含这些 ACE。

例如,若要保护从 CONTOSO.COM 名为 MyCompany 的父组织单位中意外移动或删除的组织单位,请进行以下配置:

对于 MyCompany 组织单位,将 DENY ACE for Everyone 添加到具有此对象范围的 DELETE CHILD

DSACLS "OU=MyCompany,DC=CONTOSO,DC=COM" /D "EVERYONE:DC"/

对于“用户”组织单位,将 DENY ACE for Everyone 添加到“删除”和“删除树”,并仅包含此对象范围:

DSACLS "OU=Users,OU=MyCompany,DC=CONTOSO,DC=COM" /D "EVERYONE:SDDT"

Windows Server 2008 中的Active Directory 用户和计算机管理单元包括“对象”选项卡上的“防止意外删除复选框

注意

必须启用“高级功能”复选框才能查看该选项卡。

在 Windows Server 2008 中使用 Active Directory 用户和计算机创建组织单位时,将显示“保护容器免受意外删除”复选框。 默认情况下,复选框处于选中状态,可以取消选中。

尽管可以使用这些 ACE 来配置 Active Directory 中的每个对象,但它最适合组织单位。 删除或移动所有叶对象可能会产生重大影响。 此配置可防止此类删除或移动。 若要使用此类配置真正删除或移动对象,必须先删除拒绝 ACE。

本文介绍如何在从 Active Directory 中删除用户帐户、计算机帐户及其组成员身份后还原用户帐户、计算机帐户及其组成员身份。 在此方案的变体中,用户帐户、计算机帐户或安全组可能已单独删除或某种组合。 在所有这些情况下,将应用相同的初始步骤。 你以权威的方式还原或身份验证还原,这些对象无意中删除。 某些已删除的对象需要还原更多工作。 这些对象包括包含属性的用户帐户等对象,这些属性是其他对象的属性的后退链接。 这两个属性是 managedBymemberOf

将安全主体(例如用户帐户、安全组或计算机帐户)添加到安全组时,将在 Active Directory 中做出以下更改:

  1. 安全主体的名称将添加到每个安全组的成员属性中。
  2. 对于用户、计算机或安全组所属的每个安全组,都会向安全主体 memberOf 的属性添加一个后退链接。

同样,从 Active Directory 中删除用户、计算机或组时,将执行以下操作:

  1. 已删除的安全主体将移动到已删除的对象容器中。
  2. 从已删除的安全主体中剥离了一些属性值,包括 memberOf 该属性。
  3. 已删除的安全主体将从他们所属的任何安全组中删除。 换句话说,已删除的安全主体将从每个安全组的成员属性中删除。

恢复已删除的安全主体并还原其组成员身份时,必须在 Active Directory 中存在每个安全主体才能还原其组成员身份。 该成员可以是用户、计算机或其他安全组。 若要更广泛地重述此规则,包含其值为后退链接的属性的对象必须存在于 Active Directory 中,然后才能还原或修改包含转发链接的对象。

本文重点介绍如何恢复已删除的用户帐户及其在安全组中的成员身份。 其概念同样适用于其他对象删除。 本文的概念同样适用于已删除的对象,其属性值使用前向链接和指向 Active Directory 中其他对象的后退链接。

可以使用这三种方法之一来恢复安全主体。 使用方法 1 时,将保留已添加到林中任何安全组的所有安全主体。 并且仅将从各自的域中删除的安全主体添加回其安全组。 例如,进行系统状态备份,将用户添加到安全组,然后还原系统状态备份。 使用方法 1 或 2 时,将保留添加到安全组的任何用户,这些用户包含创建系统状态备份的日期与还原备份的日期之间的已删除用户。 使用方法 3 时,在系统状态备份时,将包含已删除用户的所有安全组的安全组成员身份回滚到其状态。

方法 1 - 还原已删除的用户帐户,然后使用Ntdsutil.exe命令行工具将还原的用户添加回其组

使用Ntdsutil.exe命令行工具可以还原已删除对象的后退链接。 为每个权威还原操作生成两个文件。 一个文件包含权威还原的对象列表。 另一个文件是用于Ldifde.exe实用工具的 .ldf 文件。 此文件用于还原已权威还原的对象的反向链接。 用户对象的权威还原还会生成具有组成员身份的 LDAP 数据交换格式 (LDIF) 文件。 此方法可避免双重还原。

使用此方法时,需要执行以下高级步骤:

  1. 检查用户域中的全局目录是否尚未在删除中复制。 然后防止该全局目录复制。 如果没有潜在的全局目录,请在已删除的用户的主域中找到全局目录域控制器的最新系统状态备份。
  2. 身份验证还原所有已删除的用户帐户,然后允许对这些用户帐户进行端到端复制。
  3. 将所有还原的用户重新添加到用户帐户是其成员的所有域中的所有组,然后再将其删除。

若要使用方法 1,请遵循以下过程:

  1. 检查已删除的用户的主域中是否有全局目录域控制器尚未复制删除的任何部分。

    注意

    重点介绍具有最不频繁复制计划的全局编录。

    如果存在其中一个或多个全局目录,请使用Repadmin.exe命令行工具通过以下步骤立即禁用入站复制:

    1. 选择“开始”,然后选择“运行”。

    2. “打开”框中键入 cmd,然后选择“确定”。

    3. 在命令提示符处键入以下命令,然后按 Enter:

      repadmin /options <recovery dc name> +DISABLE_INBOUND_REPL
      

      注意

      如果无法立即发出 Repadmin 命令,请从潜在全局目录中删除所有网络连接,直到可用于 Repadmin 禁用入站复制,然后立即返回网络连接。

    此域控制器将称为恢复域控制器。 如果没有此类全局目录,请转到步骤 2。

  2. 如果以下所有语句都正确,最好停止对林中的安全组进行更改:

    • 你使用方法 1 按其可分辨名称 (dn) 路径权威地还原已删除的用户或计算机帐户。
    • 删除操作已复制到林中的所有域控制器,但潜在恢复域控制器除外。
    • 你不会对还原安全组或其父容器进行身份验证。

    如果要对托管安全组或用户帐户的组织单位(OU)容器进行身份验证,请暂时停止所有这些更改。

    除了删除有关停止这些更改的域中的域用户之外,还通知相应域中的管理员和技术支持管理员。

  3. 在发生删除的域中创建新的系统状态备份。 如果需要回滚更改,可以使用此备份。

    注意

    如果系统状态备份当前到删除点,请跳过此步骤并转到步骤 4。

    如果在步骤 1 中标识了恢复域控制器,请立即备份其系统状态。

    如果在删除中复制了删除的域中的所有全局目录,请备份发生删除的域中全局目录的系统状态。

    创建备份时,可以将恢复域控制器返回回其当前状态。 如果第一次尝试未成功,请再次执行恢复计划。

  4. 如果在发生用户删除的域中找不到潜在全局目录域控制器,请查找该域中全局目录域控制器的最新系统状态备份。 此系统状态备份应包含已删除的对象。 将此域控制器用作恢复域控制器。

    只有还原用户域中的全局目录域控制器包含驻留在外部域中的安全组的全局和通用组成员身份信息。 如果在删除用户的域中没有全局目录域控制器的系统状态备份,则无法使用 memberOf 还原的用户帐户上的属性来确定全局或通用组成员身份或恢复外部域中的成员身份。 此外,最好查找非全局目录域控制器的最新系统状态备份。

  5. 如果知道脱机管理员帐户的密码,请以“不恢复”模式启动恢复域控制器。 如果不知道脱机管理员帐户的密码,请使用ntdsutil.exe重置密码,而恢复域控制器仍处于正常 Active Directory 模式。

    当域控制器处于联机 Active Directory 模式时,可以使用 setpwd 命令行工具重置域控制器上的密码。

    注意

    Microsoft不再支持 Windows 2000。

    Windows Server 2003 及更高版本的域控制器的管理员可以使用 set dsrm password Ntdsutil 命令行工具中的命令重置脱机管理员帐户的密码。

    有关如何重置目录服务还原模式管理员帐户的详细信息,请参阅 如何在 Windows Server 中重置目录服务还原模式管理员帐户密码。

  6. 在启动过程中按 F8 以在“不恢复”模式下启动恢复域控制器。 使用脱机管理员帐户登录到恢复域控制器的控制台。 如果在步骤 5 中重置密码,请使用新密码。

    如果恢复域控制器是潜在的全局目录域控制器,请不要还原系统状态。 转到步骤 7。

    如果要使用系统状态备份创建恢复域控制器,请还原当前在恢复域控制器上创建的最新版本的系统状态备份。

  7. 身份验证还原已删除的用户帐户、已删除的计算机帐户或已删除的安全组。

    注意

    术语 身份验证还原权威还原 是指使用 Ntdsutil 命令行工具中的权威还原命令来递增特定对象或特定容器及其所有从属对象的版本号的过程。 一旦发生端到端复制,恢复域控制器本地副本 Active Directory 中的目标对象就会成为共享该分区的所有域控制器的权威对象。 权威还原不同于系统状态还原。 系统状态还原使用系统状态备份时的对象版本填充已还原的域控制器的 Active Directory 本地副本。

    权威还原是使用 Ntdsutil 命令行工具执行的,并引用已删除用户或托管已删除用户的容器的域名(dn)路径。

    身份验证还原时,请使用域树中尽可能低的域名 (dn) 路径,就像这些路径一样。 目的是避免还原与删除无关的对象。 这些对象可能包括在进行系统状态备份后修改的对象。

    按以下顺序对已删除的用户进行身份验证:

    1. 身份验证还原每个已删除用户帐户、计算机帐户或安全组的域名 (dn) 路径。

      特定对象的权威还原需要更长的时间,但比整个子树的权威还原具有破坏性。 身份验证还原保存已删除对象的最低通用父容器。

      Ntdsutil 使用以下语法:

      ntdsutil "authoritative restore" "restore object <object DN path>" q q
      

      例如,若要在域的 Mayberry OU Contoso.com 中权威地还原已删除的用户 John Doe,请使用以下命令:

      ntdsutil "authoritative restore" "restore object cn=JohnDoe,ou=Mayberry,dc=contoso,dc=com" q q
      

      若要在域的 Mayberry OU 中权威地还原已删除的Contoso.com安全组 ContosoPrintAccess,请使用以下命令:

      ntdsutil "authoritative restore" "restore object cn=ContosoPrintAccess,ou=Mayberry,dc=contoso,dc=com" q q
      

      重要

      必须使用引号。

      对于还原的每个用户,至少生成两个文件。 这些文件采用以下格式:

      ar_YYYYMMDD-HHMMSS_objects.txt
      此文件包含权威还原的对象列表。 将此文件与林中用户是域本地组成员的任何其他域中的 ntdsutil 权威还原 create ldif file from 命令一起使用。

      ar_YYYYYMMDD-HHMMSS_links_usn.loc.ldf
      如果在全局编录上执行身份验证还原,则会为林中的每个域生成其中一个文件。 此文件包含可用于Ldifde.exe实用工具的脚本。 该脚本将还原已还原对象的回退链接。 在用户的主域中,脚本将还原已还原用户的所有组成员身份。 在用户具有组成员身份的林中的所有其他域中,脚本仅还原通用组成员身份和全局组成员身份。 该脚本不会还原任何域本地组成员身份。 全局目录不会跟踪这些成员身份。

    2. 身份验证仅还原托管已删除用户帐户或组的 OU 或公用名(CN)容器。

      当 ntdsutil 权威还原命令面向的 OU 包含你尝试以权威方式还原的大多数对象时,整个子树的权威还原是有效的。 理想情况下,目标 OU 包含尝试以权威性还原的所有对象。

      OU 子树上的权威还原将还原驻留在容器中的所有属性和对象。 在还原系统状态备份时所做的任何更改将在备份时回滚到其值。 使用用户帐户、计算机帐户和安全组,此回滚可能意味着丢失了最近对以下项所做的更改:

      • 密码
      • 主目录
      • 配置文件路径
      • location
      • 联系人信息
      • 组成员身份
      • 在这些对象和属性上定义的任何安全描述符。

      Ntdsutil 使用以下语法:

      ntdsutil "authoritative restore" "restore subtree <container DN path>" q q
      

      例如,若要权威地还原域的 Contoso.com Mayberry OU,请使用以下命令:

      ntdsutil "authoritative restore" "restore subtree ou=Mayberry, dc=contoso,dc=com" q q
      

      注意

      对托管已删除的用户或组的每个对等 OU 重复此步骤。

      重要

      还原 OU 的从属对象时,必须显式对已删除的从属对象的所有已删除父容器进行身份验证。

      对于还原的每个组织单位,至少生成两个文件。 这些文件采用以下格式:

      ar_YYYYMMDD-HHMMSS_objects.txt
      此文件包含权威还原的对象列表。 将此文件与林中还原用户是域本地组成员的任何其他域中的 ntdsutil 权威还原 create ldif file from 命令一起使用。

      ar_YYYYYMMDD-HHMMSS_links_usn.loc.ldf
      此文件包含可用于Ldifde.exe实用工具的脚本。 该脚本将还原已还原对象的回退链接。 在用户的主域中,脚本将还原已还原用户的所有组成员身份。

  8. 如果由于系统状态还原而恢复恢复域控制器上已删除的对象,请删除与林中所有其他域控制器建立网络连接的所有网络电缆。

  9. 在正常的 Active Directory 模式下重启恢复域控制器。

  10. 键入以下命令以禁用到恢复域控制器的入站复制:

    repadmin /options <recovery dc name> +DISABLE_INBOUND_REPL
    

    启用网络连接回到恢复域控制器,其系统状态已还原。

  11. 出站将身份验证还原的对象从恢复域控制器复制到域中和林中的域控制器。

    当恢复域控制器的入站复制保持禁用状态时,请键入以下命令,将身份验证还原的对象推送到域中的所有跨站点副本域控制器以及林中的所有全局目录:

    repadmin /syncall /d /e /P <recovery dc> <Naming Context>
    

    如果以下所有语句均为 true,则使用还原和复制已删除的用户帐户重新生成组成员身份链接。 转到步骤 14。

    注意

    如果以下一个或多个语句不正确,请转到步骤 12。

    • 林在 Windows Server 2003 及更高版本林功能级别或 Windows Server 2003 及更高或更高版本的临时林功能级别运行。
    • 仅删除用户帐户或计算机帐户,而不是安全组。
    • 在林转换为 Windows Server 2003 及更高版本林功能级别后,已删除的用户被添加到林中的所有域中的安全组。
  12. 在恢复域控制器的主机上,使用 Ldifde.exe 实用工具和 ar_YYYYYMMDD-HHMMSS_links_usn.loc.ldf 文件还原用户的组成员身份。 要执行此操作,请执行以下步骤:

    • 选择“开始”,选择运行”,在“打开”框中键入 cmd,然后选择“确定”。

    • 在命令提示符下,键入以下命令,然后按 Enter:

      ldifde -i -f ar_YYYYMMDD-HHMMSS_links_usn.loc.ldf
      
  13. 使用以下命令启用到恢复域控制器的入站复制:

    repadmin /options <recovery dc name> -DISABLE_INBOUND_REPL
    
  14. 如果已删除的用户已添加到外部域中的本地组,请执行下列操作之一:

    • 手动将已删除的用户添加回这些组。
    • 还原系统状态和身份验证还原包含已删除用户的每个本地安全组。
  15. 验证恢复域控制器域中以及其他域中的全局编录中的组成员身份。

  16. 在恢复域控制器的域中对域控制器进行新的系统状态备份。

  17. 通知林中的所有管理员、委派的管理员、林中的技术支持管理员以及域中的用户,用户还原已完成。

    技术支持管理员可能需要重置身份验证还原的用户帐户和计算机帐户的密码,这些帐户的域密码在还原系统后已更改。

    在进行系统状态备份后更改其密码的用户将发现其最近的密码不再有效。 让此类用户尝试使用其以前的密码登录(如果他们知道这些密码)。 否则,技术支持管理员必须重置密码,然后选择 用户必须在下次登录 时更改密码复选框。 最好在与用户所在的同一 Active Directory 站点中的域控制器上执行此操作。

方法 2 - 还原已删除的用户帐户,然后将还原的用户添加回其组

使用此方法时,需要执行以下高级步骤:

  1. 检查用户域中的全局目录是否尚未在删除中复制。 然后防止该全局目录复制。 如果没有潜在的全局目录,请在已删除的用户的主域中找到全局目录域控制器的最新系统状态备份。
  2. 身份验证还原所有已删除的用户帐户,然后允许对这些用户帐户进行端到端复制。
  3. 将所有还原的用户重新添加到用户帐户是其成员的所有域中的所有组,然后再将其删除。

若要使用方法 2,请遵循以下过程:

  1. 检查已删除的用户的主域中是否有全局目录域控制器尚未复制删除的任何部分。

    注意

    重点介绍具有最不频繁复制计划的全局编录。

    如果存在其中一个或多个全局目录,请使用Repadmin.exe命令行工具立即禁用入站复制。 要执行此操作,请执行以下步骤:

    1. 选择“开始”,然后选择“运行”。
    2. “打开”框中键入 cmd,然后选择“确定”。
    3. 在命令提示符处键入以下命令,然后按 Enter:
    repadmin /options <recovery dc name> +DISABLE_INBOUND_REPL
    

    注意

    如果无法立即发出 Repadmin 命令,请从潜在全局目录中删除所有网络连接,直到可以使用 Repadmin 禁用入站复制,然后立即返回网络连接。

    此域控制器将称为恢复域控制器。 如果没有此类全局目录,请转到步骤 2。

  2. 确定在完成所有恢复步骤之前,是否必须暂时停止对用户帐户、计算机帐户和安全组的添加、删除和更改。

    若要保持最灵活的恢复路径,请暂时停止对以下项进行更改。 更改包括域用户、技术支持管理员和发生删除的域中的管理员的密码重置,以及已删除用户组中的组成员身份更改。 请考虑停止对以下项的添加、删除和修改:

    1. 用户帐户和用户帐户的属性
    2. 计算机帐户上的计算机帐户和属性
    3. 服务帐户
    4. 安全组

    如果以下所有语句都正确,最好停止对林中的安全组进行更改:

    • 你使用方法 2 按其域名 (dn) 路径权威地还原已删除的用户或计算机帐户。
    • 删除操作已复制到林中的所有域控制器,但潜在恢复域控制器除外。
    • 你不会对还原安全组或其父容器进行身份验证。

    如果要对托管安全组或用户帐户的组织单位(OU)容器进行身份验证,请暂时停止所有这些更改。

    除了删除有关停止这些更改的域中的域用户之外,还通知相应域中的管理员和技术支持管理员。

  3. 在发生删除的域中创建新的系统状态备份。 如果需要回滚更改,可以使用此备份。

    注意

    如果系统状态备份当前到删除点,请跳过此步骤并转到步骤 4。

    如果在步骤 1 中标识了恢复域控制器,请立即备份其系统状态。

    如果在删除中复制了删除的域中的所有全局目录,请备份发生删除的域中全局目录的系统状态。

    创建备份时,可以将恢复域控制器返回回其当前状态。 如果第一次尝试未成功,请再次执行恢复计划。

  4. 如果在发生用户删除的域中找不到潜在全局目录域控制器,请查找该域中全局目录域控制器的最新系统状态备份。 此系统状态备份应包含已删除的对象。 将此域控制器用作恢复域控制器。

    只有还原用户域中的全局目录域控制器包含驻留在外部域中的安全组的全局和通用组成员身份信息。 如果在删除用户的域中没有全局目录域控制器的系统状态备份,则无法使用 memberOf 还原的用户帐户上的属性来确定全局或通用组成员身份或恢复外部域中的成员身份。 此外,最好查找非全局目录域控制器的最新系统状态备份。

  5. 如果知道脱机管理员帐户的密码,请以“不恢复”模式启动恢复域控制器。 如果不知道脱机管理员帐户的密码,则在恢复域控制器仍处于正常 Active Directory 模式时重置密码。

    可以使用 setpwd 命令行工具在运行 Windows 2000 Service Pack 2(SP2)及更高版本的域控制器上重置密码,同时它们处于联机 Active Directory 模式。

    注意

    Microsoft不再支持 Windows 2000。

    Windows Server 2003 及更高版本的域控制器的管理员可以使用 set dsrm password Ntdsutil 命令行工具中的命令重置脱机管理员帐户的密码。

    有关如何重置目录服务还原模式管理员帐户的详细信息,请参阅 如何在 Windows Server 中重置目录服务还原模式管理员帐户密码。

  6. 在启动过程中按 F8 以在“不恢复”模式下启动恢复域控制器。 使用脱机管理员帐户登录到恢复域控制器的控制台。 如果在步骤 5 中重置密码,请使用新密码。

    如果恢复域控制器是潜在的全局目录域控制器,请不要还原系统状态。 转到步骤 7。

    如果要使用系统状态备份创建恢复域控制器,请还原当前在恢复域控制器上创建的最新版本的系统状态备份。

  7. 身份验证还原已删除的用户帐户、已删除的计算机帐户或已删除的安全组。

    注意

    术语 身份验证还原权威还原 是指使用 Ntdsutil 命令行工具中的权威还原命令来递增特定对象或特定容器及其所有从属对象的版本号的过程。 一旦发生端到端复制,恢复域控制器本地副本 Active Directory 中的目标对象就会成为共享该分区的所有域控制器的权威对象。 权威还原不同于系统状态还原。 系统状态还原使用系统状态备份时的对象版本填充已还原的域控制器的 Active Directory 本地副本。

    权威还原是使用 Ntdsutil 命令行工具执行的,并引用已删除用户或托管已删除用户的容器的域名(dn)路径。

    身份验证还原时,请使用域树中尽可能低的域名 (dn) 路径,就像这些路径一样。 目的是避免还原与删除无关的对象。 这些对象可能包括在进行系统状态备份后修改的对象。

    按以下顺序对已删除的用户进行身份验证:

    1. 身份验证还原每个已删除用户帐户、计算机帐户或安全组的域名 (dn) 路径。

      特定对象的权威还原需要更长的时间,但比整个子树的权威还原具有破坏性。 身份验证还原保存已删除对象的最低通用父容器。

      Ntdsutil 使用以下语法:

      ntdsutil "authoritative restore" "restore object <object DN path>" q q
      

      例如,若要在域的 Mayberry OU Contoso.com 中权威地还原已删除的用户 John Doe,请使用以下命令:

      ntdsutil "authoritative restore" "restore object cn=JohnDoe,ou=Mayberry,dc=contoso,dc=com" q q
      

      若要在域的 Mayberry OU 中权威地还原已删除的Contoso.com安全组 ContosoPrintAccess,请使用以下命令:

      ntdsutil "authoritative restore" "restore object cn=ContosoPrintAccess,ou=Mayberry,dc=contoso,dc=com" q q
      

      重要

      必须使用引号。

      注意

      此语法仅适用于 Windows Server 2003 及更高版本。 Windows 2000 中的唯一语法是使用以下语法:

      ntdsutil "authoritative restore" "restore subtree object DN path"
      

      注意

      如果可分辨名称路径(DN)包含扩展字符或空格,则 Ntdsutil 权威还原操作不会成功。 为了使脚本还原成功, restore object <DN path> 必须将命令作为一个完整的字符串传递。

      若要解决此问题,请使用反斜杠-双引号转义序列包装包含扩展字符和空格的 DN。 下面是一个示例:

      ntdsutil "authoritative restore" "restore object \"CN=John Doe,OU=Mayberry NC,DC=contoso,DC=com\"" q q
      

      注意

      如果正在还原的对象 DN 包含逗号,则必须进一步修改该命令。 请参阅以下示例:

      ntdsutil "authoritative restore" "restore object \"CN=Doe\, John,OU=Mayberry NC,DC=contoso,DC=com\"" q q
      

      注意

      如果从磁带还原对象,标记为权威且还原未按预期工作,则使用同一磁带再次还原 NTDS 数据库,则要以权威方式还原的 USN 版本的对象必须高于默认值 100000,否则第二次还原后不会复制对象。 需要以下语法才能编写大于 100000 的版本号的脚本(默认值):

      ntdsutil "authoritative restore" "restore object \"CN=Doe\, John,OU=Mayberry NC,DC=contoso,DC=com\" verinc 150000\"" q q
      

      注意

      如果脚本提示确认正在还原的每个对象,则可以关闭提示。 关闭提示的语法为:

      ntdsutil "popups off" "authoritative restore" "restore object \"CN=John Doe,OU=Mayberry NC,DC=contoso,DC=com\" verinc 150000\"" q q
      
    2. 身份验证仅还原托管已删除用户帐户或组的 OU 或公用名(CN)容器。

      当 ntdsutil 权威还原命令面向的 OU 包含你尝试以权威方式还原的大多数对象时,整个子树的权威还原是有效的。 理想情况下,目标 OU 包含尝试以权威性还原的所有对象。

      OU 子树上的权威还原将还原驻留在容器中的所有属性和对象。 在还原系统状态备份时所做的任何更改将在备份时回滚到其值。 使用用户帐户、计算机帐户和安全组,此回滚可能意味着丢失最近对密码、主目录、配置文件路径、位置和联系人信息、组成员身份以及在这些对象和属性上定义的任何安全描述符的更改。

      Ntdsutil 使用以下语法:

      ntdsutil "authoritative restore" "restore subtree <container DN path>" q q
      

      例如,若要权威地还原域的 Contoso.com Mayberry OU,请使用以下命令:

      ntdsutil "authoritative restore" "restore subtree ou=Mayberry, dc=contoso,dc=com" q q
      

      注意

      对托管已删除的用户或组的每个对等 OU 重复此步骤。

      重要

      还原 OU 的从属对象时,必须显式对已删除的从属对象的所有已删除父容器进行身份验证。

  8. 如果由于系统状态还原而恢复恢复域控制器上已删除的对象,请删除与林中所有其他域控制器建立网络连接的所有网络电缆。

  9. 在正常的 Active Directory 模式下重启恢复域控制器。

  10. 键入以下命令以禁用到恢复域控制器的入站复制:

    repadmin /options <recovery dc name> +DISABLE_INBOUND_REPL
    

    启用网络连接回到恢复域控制器,其系统状态已还原。

  11. 出站将身份验证还原的对象从恢复域控制器复制到域中和林中的域控制器。

    当恢复域控制器的入站复制保持禁用状态时,请键入以下命令,将身份验证还原的对象推送到域中的所有跨站点副本域控制器以及林中的所有全局目录:

    repadmin /syncall /d /e /P <recovery dc> <Naming Context>
    

    如果以下所有语句均为 true,则使用还原和复制已删除的用户帐户重新生成组成员身份链接。 转到步骤 14。

    注意

    如果以下一个或多个语句不正确,请转到步骤 12。

    • 林在 Windows Server 2003 及更高版本的林功能级别或 Windows Server 2003 及更高版本的临时林功能级别运行。
    • 仅删除用户帐户或计算机帐户,而不是安全组。
    • 林转换为 Windows Server 2003 及更高版本的林功能级别后,已删除的用户被添加到林中的所有域中的安全组。
  12. 确定已删除的用户所属的安全组,然后将其添加到这些组。

    注意

    在将用户添加到组之前,在步骤 7 中进行身份验证的用户和在步骤 11 中出站复制的用户必须已复制到引用域控制器域中的域控制器以及林中的所有全局目录域控制器。

    如果已部署组预配实用工具以重新填充安全组的成员身份,请使用该实用工具将已删除的用户还原到他们作为其成员的安全组,然后再将其删除。 在林的域和全局编录服务器中的所有直接和可传递域控制器都已入站复制身份验证还原的用户和任何还原的容器之后执行此操作。

    如果没有实用工具, Ldifde.exeGroupadd.exe 命令行工具可以在恢复域控制器上运行时自动执行此任务。 这些工具可从Microsoft产品支持服务获取。 在此方案中,Ldifde.exe创建一个 LDAP 数据交换格式 (LDIF) 信息文件,其中包含用户帐户及其安全组的名称。 它从管理员指定的 OU 容器开始。 然后,Groupadd.exe读取 memberOf .ldf 文件中列出的每个用户帐户的属性。 然后,它会为林中的每个域生成单独的唯一 LDIF 信息。 此 LDIF 信息包含与已删除用户关联的安全组的名称。 使用 LDIF 信息将信息添加回用户,以便可以还原其组成员身份。 针对恢复的此阶段,请按照以下步骤操作:

    1. 使用属于域管理员安全组成员的用户帐户登录到恢复域控制器的控制台。

    2. 使用 Ldifde 命令转储以前删除的用户帐户及其 memberOf 属性的名称,从发生删除的最顶层 OU 容器开始。 Ldifde 命令使用以下语法:

      ldifde -d <dn path of container that hosts deleted users> -r "(objectClass=user)" -l memberof -p subtree -f user_membership_after_restore.ldf
      

      如果已删除的计算机帐户已添加到安全组,请使用以下语法:

      ldifde -d <dn path of container that hosts deleted users> -r "(objectClass=computer)" -l memberof -p subtree -f computer_membership_after_restore.ldf
      
    3. Groupadd运行该命令以生成包含域名称的更多 .ldf 文件,以及已删除用户所属的全局和通用安全组的名称。 该 Groupadd 命令使用以下语法:

      Groupadd / after_restore users_membership_after_restore.ldf
      

      如果已删除的计算机帐户已添加到安全组,请重复此命令。

    4. 将步骤 12c 中创建的每个 Groupadd_fully.qualified.domain.name.ldf 文件导入到与每个域的 .ldf 文件相对应的单个全局目录域控制器。 使用以下 Ldifde 语法:

      Ldifde -i -k -f Groupadd_<fully.qualified.domain.name>.ldf
      

      为用户从除恢复域控制器以外的任何域控制器中删除的域运行 .ldf 文件。

    5. 在用于为特定域导入Groupadd_<fully.qualified.domain.name.ldf> 文件的每个域控制器的控制台上,将组成员身份添加到域中的其他域控制器以及林中的全局目录域控制器。 若要执行此操作,请使用以下命令:

      repadmin /syncall /d /e /P <recovery dc> <Naming Context>
      
  13. 若要禁用出站复制,请键入以下文本,然后按 Enter:

    repadmin /options +DISABLE_OUTBOUND_REPL
    

    注意

    若要重新启用出站复制,请键入以下文本,然后按 Enter:

    repadmin /options -DISABLE_OUTBOUND_REPL
    
  14. 如果已删除的用户已添加到外部域中的本地组,请执行下列操作之一:

    • 手动将已删除的用户添加回这些组。
    • 还原系统状态和身份验证还原包含已删除用户的每个本地安全组。
  15. 验证恢复域控制器域中以及其他域中的全局编录中的组成员身份。

  16. 在恢复域控制器的域中对域控制器进行新的系统状态备份。

  17. 通知林中的所有管理员、委派的管理员、林中的技术支持管理员以及域中的用户,用户还原已完成。

    技术支持管理员可能需要重置身份验证还原的用户帐户和计算机帐户的密码,这些帐户的域密码在还原系统后已更改。

    在进行系统状态备份后更改其密码的用户将发现其最近的密码不再有效。 让此类用户尝试使用其以前的密码登录(如果他们知道这些密码)。 否则,技术支持管理员必须重置密码,然后选择 用户必须在下次登录 时更改密码复选框。 最好在与用户所在的同一 Active Directory 站点中的域控制器上执行此操作。

方法 3 - 授权还原已删除的用户和已删除的用户安全组两次

使用此方法时,需要执行以下高级步骤:

  1. 检查用户域中的全局目录是否尚未在删除中复制。 然后阻止该域控制器入站复制删除。 如果没有潜在的全局目录,请在已删除的用户的主域中找到全局目录域控制器的最新系统状态备份。
  2. 权威地还原已删除的用户域中所有已删除的用户帐户和所有安全组。
  3. 等待还原的用户和安全组的端到端复制到已删除用户域中的所有域控制器,以及林的全局目录域控制器。
  4. 重复步骤 2 和步骤 3 以权威地还原已删除的用户和安全组。 (仅还原系统状态一次。
  5. 如果已删除的用户是其他域中的安全组的成员,则权威地还原已删除用户是这些域中的成员的所有安全组。 或者,如果系统状态备份是最新的,则权威地还原这些域中的所有安全组。 若要满足在安全组修复组成员身份链接之前必须还原已删除的组成员的要求,可以在此方法中还原两次对象类型。 第一次还原将使所有用户帐户和组帐户都到位。 第二个还原还原已删除的组并修复组成员身份信息,包括嵌套组的成员身份信息。

若要使用方法 3,请遵循以下过程:

  1. 检查已删除的用户主域中是否存在全局目录域控制器,并且尚未在删除的任何部分进行复制。

    注意

    专注于域中具有最不频繁复制计划的全局编录。 如果这些域控制器存在,请使用Repadmin.exe命令行工具立即禁用入站复制。 要执行此操作,请执行以下步骤:

    1. 选择“开始”,然后选择“运行”。
    2. “打开”框中键入 cmd,然后选择“确定”。
    3. 在命令提示符处键入 repadmin /options <recovery dc name> +DISABLE_INBOUND_REPL ,然后按 Enter。

    注意

    如果无法立即发出 Repadmin 命令,请从域控制器中删除所有网络连接,直到可以使用 Repadmin 禁用入站复制,然后立即返回网络连接。

    此域控制器将称为恢复域控制器。

  2. 在完成所有恢复步骤之前,请避免对以下项进行添加、删除和更改。 更改包括域用户、技术支持管理员和发生删除的域中的管理员的密码重置,以及已删除用户组中的组成员身份更改。

    1. 用户帐户和用户帐户的属性

    2. 计算机帐户上的计算机帐户和属性

    3. 服务帐户

    4. 安全组

      注意

      特别避免更改林中发生删除的用户、计算机、组和服务帐户的组成员身份。

    5. 通知所有林管理员、委派管理员和临时停赛林中的技术支持管理员。 此方法 2 中需要此中断,因为你正在权威地还原所有已删除用户的安全组。 因此,系统状态备份日期后对组所做的任何更改都将丢失。

  3. 在发生删除的域中创建新的系统状态备份。 如果需要回滚更改,可以使用此备份。

    注意

    如果系统状态备份的当前时间达到删除发生的时间,请跳过此步骤并转到步骤 4。

    如果在步骤 1 中标识了恢复域控制器,请立即备份其系统状态。

    如果所有位于发生删除操作的域中的全局目录都复制了删除,则备份发生删除的域中全局目录的系统状态。

    创建备份时,可以将恢复域控制器返回回其当前状态。 如果第一次尝试未成功,请再次执行恢复计划。

  4. 如果在发生用户删除的域中找不到潜在全局目录域控制器,请查找该域中全局目录域控制器的最新系统状态备份。 此系统状态备份应包含已删除的对象。 将此域控制器用作恢复域控制器。

    只有用户域中全局目录域控制器的数据库包含林中外部域的组成员身份信息。 如果在删除用户的域中没有全局目录域控制器的系统状态备份,则无法使用 memberOf 还原的用户帐户上的属性来确定全局或通用组成员身份,也不能恢复外部域中的成员身份。 转到下一步。 如果外部域中存在组成员身份的外部记录,请在还原用户帐户后将还原的用户添加到这些域中的安全组。

  5. 如果知道脱机管理员帐户的密码,请以“不恢复”模式启动恢复域控制器。 如果不知道脱机管理员帐户的密码,则在恢复域控制器仍处于正常 Active Directory 模式时重置密码。

    可以使用 setpwd 命令行工具在运行 Windows 2000 SP2 及更高版本的域控制器上重置密码,同时它们处于联机 Active Directory 模式。

    注意

    Microsoft不再支持 Windows 2000。

    Windows Server 2003 及更高版本的域控制器的管理员可以使用 set dsrm password Ntdsutil 命令行工具中的命令重置脱机管理员帐户的密码。

    有关如何重置目录服务还原模式管理员帐户的详细信息,请参阅 如何在 Windows Server 中重置目录服务还原模式管理员帐户密码。

  6. 在启动过程中按 F8 以在“不恢复”模式下启动恢复域控制器。 使用脱机管理员帐户登录到恢复域控制器的控制台。 如果在步骤 5 中重置密码,请使用新密码。

    如果恢复域控制器是潜在的全局目录域控制器,请不要还原系统状态。 直接转到步骤 7。

    如果要使用系统状态备份创建恢复域控制器,请还原在恢复域控制器上创建的最新系统状态备份,该域控制器现在包含已删除的对象。

  7. 身份验证还原已删除的用户帐户、已删除的计算机帐户或已删除的安全组。

    注意

    术语 身份验证还原权威还原 是指使用 Ntdsutil 命令行工具中的权威还原命令来递增特定对象或特定容器及其所有从属对象的版本号的过程。 一旦发生端到端复制,恢复域控制器本地副本 Active Directory 中的目标对象就会成为共享该分区的所有域控制器的权威对象。 权威还原不同于系统状态还原。 系统状态还原使用系统状态备份时的对象版本填充已还原的域控制器的 Active Directory 本地副本。

    通过引用已删除用户的域名(dn)路径或托管已删除用户的容器,使用 Ntdsutil 命令行工具执行权威还原。

    身份验证还原时,请使用域树中尽可能低的域名路径,就像这些路径一样。 目的是避免还原与删除无关的对象。 这些对象可能包括在进行系统状态备份后修改的对象。

    按以下顺序对已删除的用户进行身份验证:

    1. 身份验证将还原每个已删除用户帐户、计算机帐户或删除的安全组的域名 (dn) 路径。

      特定对象的权威还原需要更长的时间,但比整个子树的权威还原具有破坏性。 身份验证还原保存已删除对象的最低通用父容器。

      Ntdsutil 使用以下语法:

      ntdsutil "authoritative restore" "restore object <object DN path>" q q
      

      例如,若要在域的 Mayberry OU Contoso.com 中权威地还原已删除的用户 John Doe,请使用以下命令:

      ntdsutil "authoritative restore" "restore object cn=JohnDoe,ou=Mayberry,dc=contoso,dc=com" q q
      

      若要在域的 Mayberry OU 中权威地还原已删除的Contoso.com安全组 ContosoPrintAccess,请使用以下命令:

      ntdsutil "authoritative restore" "restore object cn=ContosoPrintAccess,ou=Mayberry,dc=contoso,dc=com" q q
      

      重要

      必须使用引号。

      使用此 Ntdsutil 格式,还可以自动还原批处理文件或脚本中的许多对象的权威还原。

      注意

      此语法仅适用于 Windows Server 2003 及更高版本。 Windows 2000 中唯一的语法是使用: ntdsutil "authoritative restore" "restore subtree object DN path"

    2. 身份验证仅还原托管已删除用户帐户或组的 OU 或公用名(CN)容器。

      当 Ntdsutil Authority restore 命令面向的 OU 包含你尝试权威还原的大多数对象时,整个子树的权威还原是有效的。 理想情况下,目标 OU 包含尝试以权威性还原的所有对象。

      OU 子树上的权威还原将还原驻留在容器中的所有属性和对象。 在还原系统状态备份时所做的任何更改将在备份时回滚到其值。 使用用户帐户、计算机帐户和安全组,此回滚可能意味着丢失最近对密码、主目录、配置文件路径、位置和联系人信息、组成员身份以及在这些对象和属性上定义的任何安全描述符的更改。

      Ntdsutil 使用以下语法:

      ntdsutil "authoritative restore" "restore subtree <container DN path>" q q
      

      例如,若要权威地还原域的 Contoso.com Mayberry OU,请使用以下命令:

      ntdsutil "authoritative restore" "restore subtree ou=Mayberry,dc=contoso,dc=com" q q
      

      注意

      对托管已删除的用户或组的每个对等 OU 重复此步骤。

      重要

      还原 OU 的从属对象时,必须显式对已删除的从属对象的所有父容器进行身份验证。

  8. 在正常的 Active Directory 模式下重启恢复域控制器。

  9. 出站将授权还原的对象从恢复域控制器复制到域中和林中的域控制器。

    当对恢复域控制器的入站复制保持禁用状态时,请键入以下命令,将权威还原的对象推送到域中的所有跨站点副本域控制器以及林中的全局目录:

    repadmin /syncall /d /e /P <recovery dc> <Naming Context>
    

    在林的域和全局目录服务器中的所有直接和可传递域控制器在权威还原的用户和任何已还原的容器中复制后,请转到步骤 11。

    如果以下所有语句均为 true,则使用还原已删除的用户帐户重新生成组成员身份链接。 转到步骤 13。

    • 林在 Windows Server 2003 及更高版本的林功能级别或 Windows Server 2003 及更高版本的临时林功能级别运行。
    • 仅删除安全组。
    • 所有已删除的用户都已添加到林中的所有域中的所有安全组。

    请考虑使用 Repadmin 命令来加速从还原的域控制器的用户的出站复制。

    如果组也被删除,或者无法保证在过渡到 Windows Server 2003 及更高版本的临时或林功能级别后,所有已删除的用户都已添加到所有安全组,请转到步骤 12。

  10. 重复步骤 7、8 和 9 而不还原系统状态,然后转到步骤 11。

  11. 如果已删除的用户已添加到外部域中的本地组,请执行下列操作之一:

    • 手动将已删除的用户添加回这些组。
    • 还原系统状态和身份验证还原包含已删除用户的每个本地安全组。
  12. 验证恢复域控制器域中以及其他域中的全局编录中的组成员身份。

  13. 使用以下命令启用到恢复域控制器的入站复制:

    repadmin /options recovery dc name -DISABLE_INBOUND_REPL
    
  14. 在恢复域控制器的域和林中的其他域中全局编录中,对域控制器进行新的系统状态备份。

  15. 通知所有林管理员、委派管理员、林中的技术支持管理员以及域中用户还原已完成的用户。

    技术支持管理员可能需要重置身份验证还原的用户帐户和计算机帐户的密码,这些帐户的域密码在还原系统后已更改。

    在进行系统状态备份后更改其密码的用户将发现其最近的密码不再有效。 让此类用户尝试使用其以前的密码登录(如果他们知道这些密码)。 否则,技术支持管理员必须使用用户重置密码, 然后才能选中“下次登录 ”复选框更改密码。 最好在与用户所在的同一 Active Directory 站点中的域控制器上执行此操作。

如果没有有效的系统状态备份,如何在域控制器上恢复已删除的用户

如果在删除用户帐户或安全组的域中缺少当前系统状态备份,并且删除发生在包含 Windows Server 2003 及更高版本的域控制器的域中,请按照以下步骤手动重新更新已删除的对象容器中的对象:

  1. 按照以下部分中的步骤重新调整已删除的用户、计算机、组或所有这些用户:
    如何在已删除的对象容器中手动取消删除对象
  2. 使用Active Directory 用户和计算机将帐户从禁用更改为启用。 (帐户显示在原始 OU 中。
  3. 使用 Windows Server 2003 及更高版本中的批量重置功能对 Active Directory 用户和计算机密码执行批量重置,必须在下次登录策略设置、主目录、配置文件路径和已删除帐户的组成员身份上根据需要更改。 还可以使用这些功能的编程等效项。
  4. 如果使用了 Microsoft Exchange 2000 或更高版本,请修复已删除用户的 Exchange 邮箱。
  5. 如果使用 Exchange 2000 或更高版本,请重新关联已删除的用户与 Exchange 邮箱。
  6. 验证恢复的用户是否可以登录并访问本地目录、共享目录和文件。

可以使用以下方法自动执行其中部分或全部恢复步骤:

  • 编写一个脚本,用于自动执行步骤 1 中列出的手动恢复步骤。 编写此类脚本时,请考虑按日期、时间和上一个已知父容器的范围确定已删除的对象,然后自动重新调整已删除的对象。 若要自动执行重新调整,请将 isDeleted 属性从 TRUE 更改为 FALSE,并将相对可分辨名称更改为在属性中或管理员指定的新 OU 或公用名 (CN) 容器中 lastKnownParent 定义的值。 (相对可分辨名称也称为 RDN。
  • 获取支持在 Windows Server 2003 及更高版本域控制器上重新调整已删除对象的非Microsoft程序。 其中一个实用工具是 AdRestore。 AdRestore 使用 Windows Server 2003 及更高版本的取消删除基元单独取消删除对象。 Aelita Software Corporation 和 Commvault Systems 还提供支持 Windows Server 2003 和更高版本域控制器上未删除功能的产品。

若要获取 AdRestore,请参阅 AdRestore v1.1

Microsoft 会提供第三方联系信息来帮助你查找技术支持。 此联系信息可能会更改,恕不另行通知。 Microsoft不能保证此第三方联系信息的准确性。

如何手动取消删除已删除对象的容器中的对象

若要手动取消删除已删除对象的容器中的对象,请执行以下步骤:

  1. 选择“开始”,选择“运行,然后键入ldp.exe

    ldp.exe可用:

    • 在安装了域控制器角色的计算机上。
    • 在安装了远程服务器管理工具(RSAT)的计算机上。
  2. 使用 Ldp 中的“连接”菜单执行连接操作,并将操作绑定到 Windows Server 2003 及更高版本的域控制器。

    在绑定操作期间指定域管理员凭据。

  3. 在“选项”菜单中,选择“控件”。

  4. “加载预定义 ”列表中,选择“ 返回已删除的对象”。

    注意

    1.2.840.113556.1.4.417 控件移动到 “活动控件 ”窗口。

  5. 在“控制类型”下,选择“服务器”,然后选择“确定”。

  6. “视图”菜单上,选择“树,在发生删除的域中键入已删除对象容器的可分辨名称路径,然后选择“确定”。

    注意

    可分辨名称路径也称为 DN 路径。 例如,如果删除发生在 contoso.com 域中,DN 路径将是以下路径:
    cn=deleted Objects,dc=contoso,dc=com

  7. 在窗口的左窗格中,双击 “已删除的对象容器”。

    注意

    作为 Idap 查询的搜索结果,默认情况下仅返回 1000 个对象。 Fot 示例,如果“已删除的对象”容器中存在超过 1000 个对象,则并非所有对象都出现在此容器中。 如果未显示目标对象,请使用 ntdsutil,然后使用 maxpagesize 设置最大数量以获取搜索结果。

  8. 双击要取消删除或重新删除的对象。

  9. 右键单击要重新调整的对象,然后选择“ 修改”。

    更改单个轻型目录访问协议 (LDAP) 修改操作中的属性和 DN 路径的值 isDeleted 。 若要配置 “修改 ”对话框,请执行以下步骤:

    1. “编辑条目属性 ”框中,键入 isDeleted。 将 “值 ”框留空。

    2. 选择“删除”选项按钮,然后选择 Enter 以在“条目列表”对话框中输入两个条目中的第一个。

      重要

      请勿选择“ 运行”。

    3. “属性 ”框中,键入 distinguishedName

    4. “值 ”框中,键入重新调整对象的新 DN 路径。

      例如,若要将 JohnDoe 用户帐户重新连接到 Mayberry OU,请使用以下 DN 路径:cn= JohnDoe,ou= Mayberry,dc= contoso,dc= com

      注意

      如果要将已删除的对象重新连接到其原始容器,请将已删除对象的 lastKnownParent 属性的值追加到其 CN 值,然后将完整的 DN 路径粘贴到 “值 ”框中。

    5. “操作 ”框中,选择“ REPLACE”。

    6. 选择 Enter

    7. 选中“同步”复选框。

    8. 选中“扩展”复选框。

    9. 选择“运行”

  10. 重新调整对象后,在“选项”菜单上选择“控件”,从“活动控件”框列表中选择“签出”按钮以删除(1.2.840.113556.1.4.417)。

  11. 重置已删除用户的用户帐户密码、配置文件、主目录和组成员身份。

    删除对象后,除 ObjectGUIDLastKnownParent/> 之外SID的所有属性值以及SAMAccountName被剥离。

  12. 在Active Directory 用户和计算机中启用重新配置帐户。

    注意

    重新更新的对象具有与删除前相同的主 SID,但必须将该对象再次添加到同一安全组,才能对资源具有相同级别的访问。 Windows Server 2003 及更高版本的第一个版本不会在重新修复的用户帐户、计算机帐户和安全组上保留 sIDHistory 该属性。 Service Pack 1 的 Windows Server 2003 及更高版本会保留 sIDHistory 已删除对象的属性。

  13. 删除 Microsoft Exchange 属性,并将用户重新连接到 Exchange 邮箱。

    注意

    当删除发生在 Windows Server 2003 及更高版本的域控制器上时,支持重新调整已删除的对象。 删除操作在随后升级到 Windows Server 2003 及更高版本的 Windows 2000 域控制器上时,不支持重新调整已删除的对象。

    注意

    如果删除发生在域中的 Windows 2000 域控制器上,则 lastParentOf 不会在 Windows Server 2003 及更高版本的域控制器上填充该属性。

如何确定何时和何处发生删除

由于批量删除而删除用户时,可能需要了解删除的发起位置。 为此,请按照以下步骤操作:

  1. 若要查找已删除的安全主体,请按照“如何手动取消删除已删除对象的容器”部分中的步骤 1 到 7 进行操作。 如果删除了树,请按照以下步骤查找已删除对象的父容器。

  2. 将特性的值 objectGUID 复制到 Windows 剪贴板。 在步骤 4 中输入 Repadmin 命令时,可以粘贴此值。

  3. 在命令行中运行以下命令:

    repadmin /showmeta GUID=<objectGUID> <FQDN>
    

    例如,如果 objectGUID 已删除的对象或容器为 791273b2-eba7-4285-a117-aa804ea76e95,并且完全限定的域名为 FQDN dc.contoso.com,请运行以下命令:

    repadmin /showmeta GUID=791273b2-eba7-4285-a117-aa804ea76e95 dc.contoso.com
    

    此命令的语法必须包括已删除的对象或容器的 GUID,以及要从中获取的服务器的 FQDN。

  4. Repadmin 命令输出中,找到属性的起始日期、时间和域控制器 isDeleted 。 例如,该 isDeleted 属性的信息显示在以下示例输出的第五行中:

    Loc.USN 发起 DC Org.USN Org.Time/Date Ver 属性
    134759 Default-First-Site-Name\NA-DC1 134759 DateTime 1 objectClass
    134760 Default-First-Site-Name\NA-DC1 134760 DateTime 2 ou
    134759 Default-First-Site-Name\NA-DC1 134759 DateTime 1 instanceType
    134759 Default-First-Site-Name\NA-DC1 134759 DateTime 1 whenCreated
    134760 Default-First-Site-Name\NA-DC1 134760 DateTime 1 isDeleted
    134759 Default-First-Site-Name\NA-DC1 134759 DateTime 1 nTSecurityDescriptor
    134760 Default-First-Site-Name\NA-DC1 134760 DateTime 2 name
    134760 Default-First-Site-Name\NA-DC1 134760 DateTime 1 lastKnownParent
    134760 Default-First-Site-Name\NA-DC1 134760 DateTime 2 objectCategory
  5. 如果原始域控制器的名称显示为 32 个字符的 alpha 数字 GUID,请使用 Ping 命令将 GUID 解析为 IP 地址和发起删除的域控制器的名称。 Ping 命令使用以下语法:

    ping -a <originating DC GUID>._msdomain controllers.<fully qualified path for forest root domain>
    

    注意

    -a 选项区分大小写。 无论原始域控制器所在的域如何,都使用林根域的完全限定域名。

    例如,如果原始域控制器驻留在林中的任何 Contoso.com 域中,并且 GUID 为 644eb7e7-1566-4f29-a778-4b487637564b,请运行以下命令:

    ping -a 644eb7e7-1566-4f29-a778-4b487637564b._msdomain controllers.contoso.com
    

    此命令返回的输出类似于以下输出:

    Pinging na-dc1.contoso.com [65.53.65.101] with 32 bytes of data:
    
    Reply from 65.53.65.101: bytes=32 time<1ms TTL=128
    Reply from 65.53.65.101: bytes=32 time<1ms TTL=128
    Reply from 65.53.65.101: bytes=32 time<1ms TTL=128
    Reply from 65.53.65.101: bytes=32 time<1ms TTL=128
    

如何最大程度地减少将来批量删除的影响

最大程度地减少批量删除用户、计算机和安全组的影响的密钥包括:

  • 请确保具有最新的系统状态备份。
  • 严格控制对特权用户帐户的访问。
  • 严格控制这些帐户可以执行的操作。
  • 练习从批量删除中恢复。

系统状态更改每天都发生。 这些更改可能包括:

  • 用户帐户和计算机帐户的密码重置
  • 组成员资格更改
  • 用户帐户、计算机帐户和安全组的其他属性更改。

如果硬件或软件发生故障,或者站点遇到另一个灾难,则需要还原在林中每个 Active Directory 域和站点的每个重大更改集之后进行的备份。 如果不维护当前备份,可能会丢失数据,或者可能需要回滚还原的对象。

Microsoft建议执行以下步骤来防止批量删除:

  1. 不要共享内置管理员帐户的密码,也不允许共享常见的管理用户帐户。 如果已知内置管理员帐户的密码,请更改密码,并定义一个内部过程,以阻止其使用。 共享用户帐户的审核事件使得无法确定在 Active Directory 中进行更改的用户的身份。 因此,不建议使用共享用户帐户。

  2. 很少会有意删除用户帐户、计算机帐户和安全组。 删除树尤其如此。 取消关联服务和委派管理员删除这些对象的能力,以便创建和管理用户帐户、计算机帐户、安全组、OU 容器及其属性。 仅向最特权的用户帐户或安全组授予执行树删除的权限。 这些特权用户帐户可能包括企业管理员。

  3. 仅向委派的管理员授予对这些管理员管理的对象类的访问权限。 例如,技术支持管理员的主要作业是修改用户帐户的属性。 他无权创建和删除计算机帐户、安全组或 OU 容器。 此限制也适用于删除其他特定对象类的管理员的权限。

  4. 试验审核设置以跟踪实验室域中的删除操作。 熟悉结果后,请将最佳解决方案应用到生产域。

  5. 托管数万个对象的容器的批发访问控制和审核更改可以使 Active Directory 数据库显著增长,尤其是在 Windows 2000 域中。 使用镜像生产域的测试域来评估释放磁盘空间的潜在更改。 检查托管 Ntds.dit 文件的硬盘驱动器卷以及生产域中域控制器的日志文件,以获取可用磁盘空间。 避免在域控制器头上设置访问控制和审核更改。 进行这些更改将不必要地应用于分区中所有容器中所有类的所有对象。 例如,避免在域分区的 CN=SYSTEM 文件夹中更改域名系统(DNS)和分布式链接跟踪(DLT)记录注册。

  6. 使用最佳做法 OU 结构在自己的组织单位中分隔用户帐户、计算机帐户、安全组和服务帐户。 使用此结构时,可以将自由访问控制列表(DACL)应用于单个类的对象以进行委派管理。 如果对象类必须还原,则可以根据对象类还原对象。 最佳做法 OU 结构在以下文章的“ 创建组织单位设计 ”部分中进行了讨论:
    用于管理 Windows 网络的最佳做法 Active Directory 设计

  7. 在镜像生产域的实验室环境中测试批量删除。 选择对你有意义的恢复方法,然后将其自定义给组织。 你可能想要标识:

    • 定期备份的每个域中的域控制器的名称
    • 存储备份映像的位置
      理想情况下,这些映像存储在林中每个域中全局目录本地的额外硬盘上。
    • 要联系的技术支持组织的成员
    • 使该联系人成为最佳方法
  8. 大多数用户帐户、计算机帐户和Microsoft看到的安全组的批量删除都是意外的。 与 IT 人员讨论此方案,并制定内部行动计划。 专注于早期检测。 并尽快将功能返回到域用户和企业。 还可以采取措施,通过编辑组织单位的访问控制列表(ACL)来防止意外批量删除。

    有关如何使用 Windows 界面工具防止意外批量删除的详细信息,请参阅 防范 Active Directory 中的意外批量删除。

有助于从批量删除中恢复的工具和脚本

Groupadd.exe命令行实用工具读取 memberOf OU 中用户集合的属性,并生成一个 .ldf 文件,该文件将每个还原的用户帐户添加到林中每个域中的安全组。

Groupadd.exe会自动发现已删除用户的域和安全组的成员,并将其添加回这些组。 方法 11 的步骤 11 中更详细地解释了此过程。

Groupadd.exe在 Windows Server 2003 及更高版本的域控制器上运行。

Groupadd.exe使用以下语法:

groupadd / after_restore ldf_file [/ before_restore ldf_file ]

此处, ldf_file 表示要与上一个参数一起使用的 .ldf 文件的名称, after_restore 表示用户文件数据源,并 before_restore 表示生产环境中的用户数据。 (用户文件数据源是良好的用户数据。

若要获取Groupadd.exe,请联系Microsoft产品支持服务。

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。

参考

有关如何使用 Windows Server 2008 R2 中包含的 AD 回收站功能的详细信息,请参阅 Active Directory 回收站分步指南