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

文章翻译 文章翻译
文章编号: 840001 - 查看本文应用于的产品
测试版信息
本文讨论 Microsoft 产品的测试版。本文中的信息按原样提供,如有更改,恕不另行通知。

Microsoft 对此测试版产品不提供正式产品支持。有关如何获取对测试版的支持的信息,请参见测试版产品文件附带的文档,或在您下载该版本的网站中查看此信息。
展开全部 | 关闭全部

本文内容

概要

您可以使用三种方法还原已删除的用户帐户、计算机帐户和安全组。这些对象统称为安全主体。在所有这三种方法中,都是先对已删除的对象执行授权还原,然后再还原已删除安全主体的组成员身份信息。还原已删除对象时,您必须还原受影响安全主体先前的 membermemberOf 属性值。这三种方法如下:
  • 方法 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 还原)意外删除的对象。有些已删除的对象还需要其他一些操作才能被还原。这些对象包括用户帐户等对象,它们包含用作其他对象属性的反向链接的属性。其中的两个属性是 managedBymemberOf

在向安全组中添加用户帐户、安全组或计算机帐户等安全主体时,将在 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 命令行工具立即禁用入站复制。为此,请按照下列步骤操作:
    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. 如果您知道脱机管理员帐户的密码,请在 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 中重置目录服务还原模式的管理员帐户密码
  6. 启动过程中按 F8 可以在 Dsrepair 模式下启动恢复域控制器。使用脱机管理员帐户登录到恢复域控制器的控制台。如果在步骤 5 中重置了密码,请使用新密码。

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

    如果您要通过使用系统状态备份来创建恢复域控制器,请立即还原在该恢复域控制器上创建的最新系统状态备份。
  7. 对已删除的用户帐户、计算机帐户或安全组执行授权还原。

    注意授权还原这一术语是指使用 Ntdsutil 命令行工具中的 authoritative restore 命令增加特定对象或特定容器及其所有从属对象的版本号的过程。一旦发生端到端复制,恢复域控制器本地 Active Directory 副本中的目标对象就会在所有共享该分区的域控制器上变得具有授权。授权还原不同于系统状态还原。系统状态还原使用创建系统状态备份时的对象版本填充已还原的域控制器的 Active Directory 本地副本。

    有关对域控制器执行授权还原的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    241594 如何在 Windows 2000 中对域控制器执行授权还原


    授权还原使用 Ntdsutil 命令行工具执行并引用已删除用户或承载已删除用户的容器的域名 (dn) 路径。

    执行授权还原时,应尽量使用在域树中处于最底层的域名 (dn) 路径,以避免还原与删除操作无关的对象。这些对象可能包括创建了系统状态备份后修改的对象。

    按照以下顺序对已删除的用户执行授权还原:
    1. 对每个已删除的用户帐户、计算机帐户或安全组的域名 (dn) 路径执行授权还原。

      与对整个子树执行授权还原相比,对特定的对象执行授权还原花费的时间更长,但是破坏性较小。对保存已删除对象的最不通用的父容器执行授权还原。

      Ntdsutil 使用以下语法:
      ntdsutil "authoritative restore" "restore object <object DN path>" q q
      例如,要对 Contoso.com 域的 Mayberry OU 中已删除的用户 JohnDoe 执行授权还原,请使用以下命令:
      ntdsutil "authoritative restore" "restore object cn=JohnDoe,ou=Mayberry,dc=contoso,dc=com" q q
      要对 Contoso.com 域的 Mayberry OU 中已删除的安全组 ContosoPrintAccess 执行授权还原,请使用以下命令:
      ntdsutil "authoritative restore" "restore object cn=ContosoPrintAccess,ou=Mayberry,dc=contoso,dc=com" q q


      重要说明:要求使用引号。

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

      ar_YYYYMMDD-HHMMSS_objects.txt
      此文件包含授权还原的对象的列表。在已还原用户属于“本地域”组成员的林中的任何其他域中,请将此文件与 ntdsutil authoritatative restore "create ldif file from" 命令结合使用。

      ar_YYYYMMDD-HHMMSS_links_usn.loc.ldf
      如果对全局编录执行授权还原,将为林中的每个域生成上述文件之一。此文件包含一个可在 Ldifde.exe 实用工具中使用的脚本。该脚本可还原已还原的对象的反向链接。在用户的主域中,该脚本可还原已还原的用户的所有组成员身份。在用户具有组成员身份的林中的所有其他域中,该脚本只能还原通用组和全局组的成员身份,而不能还原任何“本地域”组的成员身份。全局编录不跟踪这些成员身份。
    2. 只对承载已删除用户帐户或组的 OU 或公用名 (CN) 容器执行授权还原。

      ntdsutil "authoritative 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 的从属对象时,必须以显式方式授权还原已删除的从属对象的所有已删除父容器。

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

    ar_YYYYMMDD-HHMMSS_objects.txt

    此文件包含授权还原的对象的列表。在已还原的用户属于“本地域”组成员的林中的任何其他域中,请将此文件与 ntdsutil authoritatative restore "create ldif file from" 命令结合使用。

    有关更多信息,请访问下面的 Microsoft 网站:
    http://technet2.microsoft.com/WindowsServer/en/library/5ec3a3b1-c4b2-4c74-9d8a-61f7cb555f821033.mspx?mfr=true
    ar_YYYYMMDD-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>
    如果符合下列所有条件,将在还原和复制已删除的用户帐户时重建组成员身份链接。请转到步骤 14。

    注意:如果不符合以下条件中的一个或多个,请转到步骤 12。
    • 您的林正在以 Windows Server 2003 林功能级别或 Windows Server 2003 过渡版林功能级别运行。
    • 只删除了用户帐户或计算机帐户,而没有删除安全组。
    • 在林转换到 Windows Server 2003 林功能级别后,将已删除的用户添加到了林中所有域中的安全组内。
  12. 在恢复域控制器的控制台上,请使用 Ldifde.exe 实用工具和 ar_YYYYMMDD-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. 如果您知道脱机管理员帐户的密码,请在 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 中重置目录服务还原模式的管理员帐户密码
  6. 启动过程中按 F8 可以在 Dsrepair 模式下启动恢复域控制器。使用脱机管理员帐户登录到恢复域控制器的控制台。如果在步骤 5 中重置了密码,请使用新密码。

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

    如果您要通过使用系统状态备份来创建恢复域控制器,请立即还原在该恢复域控制器上创建的最新系统状态备份。
  7. 对已删除的用户帐户、计算机帐户或安全组执行授权还原。

    注意授权还原这一术语是指使用 Ntdsutil 命令行工具中的 authoritative restore 命令增加特定对象或特定容器及其所有从属对象的版本号的过程。一旦发生端到端复制,恢复域控制器本地 Active Directory 副本中的目标对象就会在所有共享该分区的域控制器上变得具有授权。授权还原不同于系统状态还原。系统状态还原使用创建系统状态备份时的对象版本填充已还原的域控制器的 Active Directory 本地副本。

    有关对域控制器执行授权还原的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    241594 如何在 Windows 2000 中对域控制器执行授权还原


    授权还原使用 Ntdsutil 命令行工具执行并引用已删除用户或承载已删除用户的容器的域名 (dn) 路径。

    执行授权还原时,应尽量使用在域树中处于最底层的域名 (dn) 路径,以避免还原与删除操作无关的对象。这些对象可能包括创建了系统状态备份后修改的对象。

    按照以下顺序对已删除的用户执行授权还原:
    1. 对每个已删除的用户帐户、计算机帐户或安全组的域名 (dn) 路径执行授权还原。

      与对整个子树执行授权还原相比,对特定的对象执行授权还原花费的时间更长,但是破坏性较小。对保存已删除对象的最不通用的父容器执行授权还原。

      Ntdsutil 使用以下语法:
      ntdsutil "authoritative restore" "restore object <object DN path>" q q
      例如,要对 Contoso.com 域的 Mayberry OU 中已删除的用户 JohnDoe 执行授权还原,请使用以下命令:
      ntdsutil "authoritative restore" "restore object cn=JohnDoe,ou=Mayberry,dc=contoso,dc=com" q q
      要对 Contoso.com 域的 Mayberry OU 中已删除的安全组 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 "authoritative 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. 如果通过系统状态还原在恢复域控制器上恢复了已删除的对象,请拔掉为林中的所有其他域控制器提供网络连接的所有网络电缆。
  9. 在正常 Active Directory 模式下重新启动恢复域控制器。
  10. 键入以下命令,以禁用对恢复域控制器的入站复制:
    repadmin /options <recovery dc name> +DISABLE_INBOUND_REPL
    重新启用到已还原系统状态的恢复域控制器的网络连接。
  11. 将已授权还原的对象从恢复域控制器出站复制到域和林中的域控制器上。

    在禁用对恢复域控制器的入站复制的同时,键入以下命令,以便将已授权还原的对象推入域中所有的跨站点复制域控制器以及林中所有的全局编录:
    repadmin /syncall /d /e /P <recovery dc> <Naming Context>
    如果符合下列所有条件,将在还原和复制已删除的用户帐户时重建组成员身份链接。请转到步骤 14。

    注意:如果不符合以下条件中的一个或多个,请转到步骤 12。
    • 您的林正在以 Windows Server 2003 林功能级别或 Windows Server 2003 过渡版林功能级别运行。
    • 只删除了用户帐户或计算机帐户,而没有删除安全组。
    • 在林转换到 Windows Server 2003 林功能级别后,将已删除的用户添加到了林中所有域中的安全组内。
  12. 确定已删除用户所属的安全组,然后将其添加到这些组中。

    注意:在向这些组中添加用户之前,必须先将您在步骤 7 中授权还原的用户以及您在步骤 11 中出站复制的用户,复制到引用的域控制器所在域的域控制器以及林中的所有全局编录域控制器上。

    如果部署了使用组提供实用工具来重新填充安全组的成员身份,请立即使用该实用工具将已删除用户还原到他们被删除之前所在的安全组中。在林的域和全局编录服务器中的所有直接和中间域控制器都已入站复制了授权还原的用户和所有已还原容器后,再执行此操作。

    如果您没有此类实用工具,在恢复域控制器上运行时,Ldifde.exe 命令行工具和 Groupadd.exe 命令行工具可以自动完成此这项任务。这些工具可以通过 Microsoft 产品支持服务获得。在此情况下,Ldifde.exe 将从管理员指定的 OU 容器开始,创建包含用户帐户及其安全组的名称的 LDAP 数据交换格式 (LDIF) 信息文件。然后,Groupadd.exe 将读取 .ldf 文件中列出的每个用户帐户的 memberOf 属性,并为林中每个域生成独立的、唯一的 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.domainname.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. 在“打开”框中键入 command,然后单击“确定”。
    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. 如果您知道脱机管理员帐户的密码,请在 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 中重置目录服务还原模式的管理员帐户密码
  6. 启动过程中按 F8 可以在 Dsrepair 模式下启动恢复域控制器。使用脱机管理员帐户登录到恢复域控制器的控制台。如果在步骤 5 中重置了密码,请使用新密码。

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

    如果您要通过使用系统状态备份来创建恢复域控制器,现在请还原在包含已删除的对象的恢复域控制器上创建的最新系统状态备份。
  7. 对已删除的用户帐户、计算机帐户或安全组执行授权还原。

    注意授权还原这一术语是指使用 Ntdsutil 命令行工具中的 authoritative restore 命令增加特定对象或特定容器及其所有从属对象的版本号的过程。一旦发生端到端复制,恢复域控制器本地 Active Directory 副本中的目标对象就会在所有共享该分区的域控制器上变得具有授权。授权还原不同于系统状态还原。系统状态还原使用创建系统状态备份时的对象版本填充已还原的域控制器的 Active Directory 本地副本。

    有关对域控制器执行授权还原的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    241594 如何在 Windows 2000 中对域控制器执行授权还原


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

    执行授权还原时,应尽量使用在域树中处于最底层的域名 (dn) 路径,以避免还原与删除操作无关的对象。这些对象可能包括创建了系统状态备份后修改的对象。

    按照以下顺序对已删除的用户执行授权还原:
    1. 授权还原每个已删除用户帐户、计算机帐户或已删除安全组的域名 (dn) 路径。

      与对整个子树执行授权还原相比,对特定的对象执行授权还原花费的时间更长,但是破坏性较小。对保存已删除对象的最不通用的父容器执行授权还原。

      Ntdsutil 使用以下语法:
      ntdsutil "authoritative restore" "restore object <object DN path>" q q
      例如,要对 Contoso.com 域的 Mayberry OU 中已删除的用户 JohnDoe 执行授权还原,请使用以下命令:
      ntdsutil "authoritative restore" "restore object cn=JohnDoe,ou=Mayberry,dc=contoso,dc=com" q q
      要对 Contoso.com 域的 Mayberry OU 中已删除的安全组 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 Authoritative 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。

    如果符合下列所有条件,将使用已删除用户帐户的还原重新建立组成员身份链接。转到步骤 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 域控制器上恢复已删除的用户

如果您没有删除了用户帐户或安全组的域中的当前系统状态备份,并且该删除发生在包含 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,并将相关可分辨名称更改为在 lastKnownParent 属性中或者在新 OU 或由管理员指定的公用名 (CN) 中定义的值。(相关可分辨名称也称为 RDN。)
  • 获取一个支持在 Windows Server 2003 域控制器上恢复已删除对象的非 Microsoft 程序。AdRestore 就是一种实用工具。AdRestore 使用 Windows Server 2003 撤消删除基元逐个撤消对象删除操作。Aelita Software Corporation 和 Commvault Systems 提供的产品也在基于 Windows Server 2003 的域控制器上支持撤消删除功能。

    要获取 AdRestore,请访问下面的网站:
    http://www.microsoft.com/china/technet/sysinternals/Networking/AdRestore.mspx
Microsoft 提供了第三方联系信息以便于您寻求技术支持。这些联系信息如有更改,恕不另行通知。Microsoft 不保证这些第三方联系信息的准确性。

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

要在已删除对象的容器中手动恢复对象,请按照以下步骤操作:
  1. 单击“开始”,单击“运行”,然后键入 ldp.exe

    注意:如果未安装 Ldp 实用工具,请安装 Windows Server 2003 安装 CD 中的支持工具。
  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 个对象。例如,如果已删除对象的容器中存在的对象超过 1000 个,此容器中并不会显示所有这些对象。如果未显示您的目标对象,请使用 ntdsutil,然后使用 maxpagesize 设置最大数目,以得到所需的搜索结果。
  8. 双击您要恢复或重新加进的对象。
  9. 右键单击要重新加进的对象,然后单击“修改”。

    在一次轻型目录访问协议 (LDAP) 修改操作中更改 isDeleted 属性的值和 DN 路径。要配置“修改”对话框,请按照下列步骤操作:
    1. 在“编辑条目属性”框中,键入 isDeleted

      让“值”框保留为空。
    2. 单击“删除”选项按钮,然后单击“输入”,以便在“条目列表”对话框中创建两个条目中的第一个条目。

      重要说明:不要单击“运行”。
    3. 在“属性”框中,键入 distinguishedName
    4. 在“值”框中,键入重新加进对象的新 DN 路径。

      例如,要将 JohnDoe 用户帐户重新加进 Mayberry OU 中,请使用以下 DN 路径:
      cn=JohnDoe,ou=Mayberry,dc=contoso,dc=com
      注意:如果要将已删除对象重新加进其原始容器中,请在已删除对象的 CN 值后附加其 lastKnownParent 属性的值,然后将完整 DN 路径粘贴到“值”框中。
    5. 在“操作”框中,单击“替换”。
    6. 单击“输入”。
    7. 单击以选中“同步”复选框。
    8. 单击以选中“扩展”复选框。
    9. 单击“运行”。
  10. 重新加进对象后,请单击“选项”菜单上的“控件”,然后单击“签出”按钮,以便从“活动控件”列表框中删除 (1.2.840.113556.1.4.417)。
  11. 重置已删除用户的用户帐户密码、配置文件、主目录和组成员身份。

    删除对象后,将去除除 SIDObjectGUIDLastKnownParentSAMAccountName 之外的所有属性值。
  12. 在“Active Directory 用户和计算机”中启用此重新加进的帐户。

    注意:重新加进的对象的主 SID 与删除前相同,但是必须将该对象重新添加到同一安全组中,它才能具有相同的资源访问级别。第一版的 Windows Server 2003 不保留重新加进的用户帐户、计算机帐户和安全组的 sIDHistory 属性。Windows Server 2003 Service Pack 1 保留已删除对象的 sIDHistory 属性。
  13. 删除 Microsoft Exchange 属性,将用户重新连接到 Exchange 邮箱。

    注意:如果删除发生在 Windows Server 2003 域控制器上,则支持重新加进已删除的对象。如果删除发生在 Windows 2000 域控制器上,而该控制器后来又升级至 Windows Server 2003,则不支持重新加进已删除的对象。

    注意:如果删除发生在域的 Windows 2000 域控制器上,lastParentOf 属性将不会填充到 Windows Server 2003 域控制器上。

如何确定删除发生的时间和位置

如果用户是由于批量删除而被删除的,您可能想了解删除发生的位置。为此,请按照下列步骤操作:
  1. 如果正确配置了审核来跟踪组织单位 (OU) 容器或从属对象的删除,请使用用于搜索发生删除的域中的域控制器的安全事件日志的实用工具。EventCombMT 就是一种这样的实用工具,它用于搜索域控制器的作用域集合上的事件日志。EventCombMT 包含在 Windows Server 2003 Resource Kit Tools 工具集中。

    有关如何获取 Windows Server 2003 资源工具包工具这一工具集的更多信息,请访问下面的 Microsoft 网页:
    http://technet.microsoft.com/zh-cn/windowsserver/bb693323(en-us).aspx
  2. 请按照“如何在已删除对象的容器中手动撤消删除对象”部分中的步骤 1 到步骤 7 查找已删除的安全主体。如果删除了树,请按照以下步骤查找已删除对象的父容器。
  3. objectGUID 属性的值复制到 Windows 剪贴板上。

    在步骤 4 中输入 Repadmin 命令时,可以粘贴此值。
  4. 键入下面的命令:
    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。
  5. 在 Repadmin 命令输出中,查找 isDeleted 属性的原始日期、时间和域控制器。例如,isDeleted 属性的信息将显示在以下样本输出的第五行中:
    Loc.USN  Originating DC                  Org.USN  Org.Time/Date       Ver  Attribute
    -----------------------------------------------------------------------------------------------
    134759  Default-First-Site-Name\NA-DC1   134759  2004-03-15 17:41:20   1  objectClass
    134760  Default-First-Site-Name\NA-DC1   134760  2004-03-15 17:41:22   2  ou
    134759  Default-First-Site-Name\NA-DC1   134759  2004-03-15 17:41:20   1  instanceType
    134759  Default-First-Site-Name\NA-DC1   134759  2004-03-15 17:41:20   1  whenCreated
    134760  Default-First-Site-Name\NA-DC1   134760  2004-03-15 17:41:22   1  isDeleted
    134759  Default-First-Site-Name\NA-DC1   134759  2004-03-15 17:41:20   1  nTSecurityDescriptor
    134760  Default-First-Site-Name\NA-DC1   134760  2004-03-15 17:41:22   2  name
    134760  Default-First-Site-Name\NA-DC1   134760  2004-03-15 17:41:22   1  lastKnownParent
    134760  Default-First-Site-Name\NA-DC1   134760  2004-03-15 17:41:22   2  objectCategory
  6. 如果输出的第二列中原始域控制器的名称显示为包含 32 个字符的字母数字 GUID,请使用 Ping 命令将该 GUID 解析为发生删除的域控制器的 IP 地址和名称。Ping 命令使用下面的语法:
    ping –a <originating DC GUID>._msdomain controllers.<<林根域的完全限定路径>>
    注意:“-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
  7. 查看发生删除的域控制器的安全日志或步骤 5 中 Repadmin 命令的输出中显示的时间。

    考虑用于到达该点的计算机之间的时差和时区更改。如果为 OU 容器或已删除对象启用了删除审核,请注意相关的审核事件。如果未启用审核,请注意有权删除 OU 容器或其中的从属对象且在执行删除之前已在原始域控制器中通过身份验证的用户。

将来如何尽可能减小批量删除的影响

要尽可能降低批量删除用户、计算机和安全组所造成的影响,关键是要做到以下几点:确保您拥有最新的系统状态备份;严格控制对特权用户帐户的访问以及这些帐户可以执行的操作;最后是要练习如何从批量删除中进行恢复。

系统状态每天都会发生更改。这些更改可能包括用户帐户和计算机帐户上的密码重置、组成员身份更改以及用户帐户、计算机帐户和安全组上的其他属性更改。如果发生硬件故障、软件故障或站点遇到其他灾难,则需要在林中的每个 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) 应用到委托管理这一类对象中,并在需要时根据对象类别还原对象。Best Practice Active Directory Design for Managing Windows Networks(用于管理 Windows 网络的最佳 Active Directory 设计)白皮书的“Creating an Organizational Unit Design”(创建组织单位设计)部分中讨论了最佳 OU 结构。要获取此白皮书,请访问下面的 Microsoft 网站:
    http://technet.microsoft.com/zh-cn/library/bb727085(en-us).aspx
  7. 在镜像生产域的实验室环境中检验批量删除。选择有效的恢复方法,然后根据您的组织自定义该方法。您可能需要确定以下信息:
    • 每个定期备份的域中的域控制器的名称
    • 存储备份映像的位置

      最好是这些映像存储在其他硬盘中,该硬盘对于林中每个域中的全局编录来说是本地硬盘。
    • 技术支持管理要联系的成员
    • 联系的最佳方式
  8. Microsoft 发现的大多数对用户帐户、计算机帐户和安全组的批量删除都是意外发生的。与您的 IT 员工讨论这种情况并制定一个内部操作计划。最初的重点是早期检测以及尽快恢复域用户和业务的功能。

可帮助您从批量删除中恢复的工具和脚本

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

Groupadd.exe 自动发现已删除用户所属的域和安全组并将它们添回这些组中。方法 1 的步骤 11 中详细说明了此过程。

Groupadd.exe 在以下域控制器上运行:
  • Windows Server 2003 域控制器
  • 安装了 .NET Framework 1.1 的 Windows 2000 域控制器
Groupadd.exe 使用以下语法:
groupadd /after_restore ldf_file [/before_restore ldf_file]
此处,ldf_file 表示要与原来的参数一起使用的 .ldf 文件的名称,after_restore 表示用户文件数据源,before_restore 表示产品环境中的用户数据。(用户文件数据源是正确的用户数据。)

要获得 Groupadd.exe,请与“Microsoft 产品支持服务”联系。

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

参考

有关如何还原包含扩展字符的对象的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
886689 在 Windows Server 2003 和 Windows 2000 中,如果可分辨名称路径包含扩展字符,Ntdsutil 授权还原操作将失败
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 有关用于描述 Microsoft 软件更新标准术语的介绍
910823 尝试在运行 Windows Server 2003 Service Pack 1 的计算机上导入 .ldf 文件时收到错误消息:“Add error on line LineNumber: No such object”(在 LineNumber 行添加出错: 无此对象)
937855 通过在基于 Windows Server 2003 的域控制器上执行授权还原来还原已删除的对象后,某些对象的链接属性未复制到其他域控制器中

属性

文章编号: 840001 - 最后修改: 2008年1月28日 - 修订: 10.4
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003, 64-Bit Datacenter Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Web Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Internet Explorer 6.0?当用于
    • Microsoft Windows XP Professional x64 Edition
关键字:?
kbhowto kbactivedirectory kbwinservds KB840001
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com