使用 Active Directory 管理中心进行高级 AD DS 管理(级别 200)

本文详细介绍更新后的 Active Directory 管理中心,包括其 Active Directory 回收站、细化密码策略和 Windows PowerShell 历史记录查看器,涵盖体系结构、常见任务示例和故障排除信息。 有关简介,请参阅 Active Directory 管理中心增强功能简介(级别 100)

Active Directory 管理中心体系结构

Active Directory 管理中心可执行文件和 DLL

Active Directory 管理中心的模块和基础体系结构在具备回收站、细化密码策略和历史记录查看器功能后未发生变化。

  • Microsoft.ActiveDirectory.Management.UI.dll
  • Microsoft.ActiveDirectory.Management.UI.resources.dll
  • Microsoft.ActiveDirectory.Management.dll
  • Microsoft.ActiveDirectory.Management.resources.dll
  • ActiveDirectoryPowerShellResources.dll

回收站功能的基础 Windows PowerShell 和操作层如下图所示:

显示回收站功能的基础 Windows PowerShell 和操作层的示意图。

使用 Active Directory 管理中心启用和管理 Active Directory 回收站

Capabilities

  • Windows Server 2012 或更高版本的 Active Directory 管理中心使你能够为林中的任何域分区配置和管理 Active Directory 回收站。 不再需要使用 Windows PowerShell 或 Ldp.exe 来启用 Active Directory 回收站或还原域分区中的对象。
  • Active Directory 管理中心具有高级筛选条件,这使你可以在包含许多有意删除的对象的大型环境中轻松进行定向还原。

Limitations

  • 由于 Active Directory 管理中心只能管理域分区,因此它无法从配置、域 DNS 或林 DNS 分区还原已删除的对象。 (无法从架构分区中删除对象。若要从非域分区还原对象,请使用 Restore-ADObject

  • Active Directory 管理中心无法通过单个操作还原对象子树。 例如,如果你删除带有嵌套的 OU、用户、组和计算机的 OU,则还原基本 OU 不会还原子对象。

    Note

    由于 Active Directory 管理中心批处理还原操作仅在选择的范围内对删除的对象进行“最佳效果”排序,因此父对象在还原列表中排在子对象前面。 在简单的测试案例中,可以通过单个操作还原对象子树。 但极端案例(例如,选择范围中包含缺少某些已删除的父节点的局部树)或错误案例(例如,当父对象还原失败时跳过子对象)可能不会按预期方式工作。 因此,在还原父对象后,应始终将对象子树作为单独的操作进行还原。

Active Directory 回收站需要 Windows Server 2008 R2 林功能级别,并且你必须是 Enterprise Admins 组的成员。 启用 Active Directory 回收站后,无法将其禁用。 Active Directory 回收站将增大林中每个域控制器上的 Active Directory 数据库 (NTDS.DIT) 大小。 随着时间的推移,回收站使用的磁盘空间将继续增大,因为它保留对象及其所有属性数据。

使用 Active Directory 管理中心启用 Active Directory 回收站

要启用 Active Directory 回收站,请打开 Active Directory 管理中心并在导航窗格中选择你的林名称。 在 “任务 ”窗格中,选择“ 启用回收站”。

显示如何在 Active Directory 管理中心中启用回收站的屏幕截图。

Active Directory 管理中心显示“启用回收站确认”对话框。 此对话框警告你启用回收站操作是不可逆的。 选择 “确定 ”以启用 Active Directory 回收站。 Active Directory 管理中心会显示另一个对话框,提醒你在所有域控制器复制配置更改之前,Active Directory 回收站不会完全生效。

Important

如果出现以下情况,启用 Active Directory 回收站的选项将不可用:

  • 林功能级别低于 Windows Server 2008 R2。
  • 它已启用。

等效 Active Directory Windows PowerShell cmdlet 为:

Enable-ADOptionalFeature

有关使用 Windows PowerShell 启用 Active Directory 回收站的更多信息,请参阅 Active Directory 回收站分步指南

使用 Active Directory 管理中心管理 Active Directory 回收站

本部分使用名为 corp.contoso.com 的现有域的示例。 此域将用户组织为名为 UserAccounts 的父 OU。 UserAccounts OU 包含由部门命名的三个子 OU。 这些子 OU 中的每一个都包含更多 OU、用户和组。

屏幕截图显示现有域示例。

存储和筛选

Active Directory 回收站保留林中删除的所有对象。 它根据 msDS-deletedObjectLifetime 属性保存这些对象,该属性默认设置为与 林的 tombstoneLifetime 属性匹配。 在使用 Windows Server 2003 SP1 或更高版本创建的任何林中,默认将 tombstoneLifetime 的值设置为 180 天。 在从 Windows 2000 升级或随 Windows Server 2003(无 Service Pack)一起安装的任何林中,未设置默认 tombstoneLifetime 属性,因此 Windows 使用内部默认值为 60 天。 所有内容都可配置。 你可以使用 Active Directory 管理中心还原从林的域分区中删除的任何对象。 必须继续使用 cmdlet Restore-ADObject 从其他分区(如“配置”)还原已删除的对象。 启用 Active Directory 回收站会使 “已删除的对象” 容器在 Active Directory 管理中心的每个域分区下可见。

屏幕截图突出显示“已删除的对象”容器。

“已删除的对象”容器显示该域分区中的所有可还原对象。 早于 msDS-deletedObjectLifetime 的 已删除 对象称为回收对象。 Active Directory 管理中心不显示已回收的对象,且无法使用 Active Directory 管理中心还原这些对象。

有关回收站体系结构和处理规则的更深入解释,请参阅 Active Directory 回收站:理解、实现、最佳做法和故障排除

Active Directory 管理中心人为地将从容器返回的默认对象数量限制为 20,000 个对象。 通过选择“ 管理 ”菜单,然后选择“ 管理列表选项”,可以增加高达 100,000 个对象的此限制。

显示如何通过选择“管理列表选项”菜单选项来增加从容器返回的对象数量限制的屏幕截图。

Restoration

Filtering

Active Directory 管理中心将提供强大的条件和筛选选项,你应该先熟悉它们,然后才能在实际还原中进行使用。 域会有意地在其生存期内删除许多对象。 由于已删除对象的生存期可能为 180 天,因此发生意外时无法还原所有对象。

屏幕截图显示还原期间可用的筛选选项。

使用基本和高级 筛选器 菜单仅列出相关对象,而不是编写复杂的 LDAP 筛选器并将 UTC 值转换为日期和时间。 如果你知道删除日期、对象名称或任何其他关键数据,你可以在筛选时利用这一优势。 通过选择搜索框右侧的 V 形图标切换高级筛选选项。

与任何其他搜索一样,还原操作支持所有标准筛选器条件选项。 对于内置筛选器,用于还原对象的重要选项通常如下:

  • ANR(不明确的名称解析 - 未在菜单中列出,但在“ 筛选器 ”框中键入时使用)
  • 给定日期之间的最后修改时间
  • 对象是用户/inetorgperson/计算机/组/组织单位
  • Name
  • 删除时
  • 最后一个已知的父对象
  • 类型
  • Description
  • City
  • Country/region
  • Department
  • 员工 ID
  • 名字
  • 职务
  • 姓氏
  • SAM accountname
  • State/Province
  • 电话号码
  • UPN
  • ZIP/邮政编码

你可以添加多个条件。 例如,你可以查找 2012 年 9 月 24 日从伊利诺伊州芝加哥删除的、职位为经理的所有用户对象。

你还可以在评估要恢复哪些对象时添加、修改或重新排序列标题,以提供更多详细信息。

显示在评估要恢复的对象时可在何处添加、修改或重新排序列标题以提供更多详细信息的屏幕截图。

有关 ANR 的详细信息,请参阅 ANR 属性

单个对象

还原已删除对象一直都是单个操作。 Active Directory 管理中心使该操作更容易。 要还原已删除对象(例如单个用户),请执行以下操作:

  1. 在 Active Directory 管理中心的导航窗格中选择域名。
  2. 双击管理列表中的 “已删除对象 ”。
  3. 右键单击该对象,然后选择“还原”,或从“任务”窗格中选择“还原”。

该对象将还原到其原始位置。

屏幕截图突出显示用于将对象还原到其原始位置的菜单。

选择 “还原到 ”以更改还原位置。 如果已删除对象的父容器也被删除但你不想还原父容器,此选项会很有用。

屏幕截图显示可在何处还原对象而无需还原父对象。

多个对等对象

你可以还原多个对等级别对象,例如 OU 中的所有用户。 按住 Ctrl 键并选择一个或多个要还原的已删除对象。 从“任务”窗格中选择“ 还原 ”。 也可以通过按住 Ctrl 和 A 键选择所有显示的对象,或使用 Shift 键并单击选择一系列对象。

屏幕截图显示还原多个对等级别项目。

多个父对象和子对象

了解多个父子还原的还原过程很重要,因为 Active Directory 管理中心无法通过单个操作还原已删除对象的嵌套树。

  1. 还原树中最顶层的已删除对象。
  2. 还原该父对象的直属子对象。
  3. 还原这些父对象的直属子对象。
  4. 根据需要重复操作,直至还原所有对象。

在还原父对象之前,无法还原其子对象。 尝试此还原将返回以下错误:

The operation could not be performed because the object's parent is either uninstantiated or deleted.

最后一个已知的父对象属性显示每个对象的父关系。 当你在还原父对象后刷新 Active Directory 管理中心时,最后一个已知的父对象属性将从已删除位置更改为已还原位置。 因此,当父对象的位置不再显示已删除对象容器的可分辨名称时,你可以还原该子对象。

请考虑管理员意外删除包含子 OU 和用户的销售 OU 的情况。

首先,观察所有已删除用户的“最后一个已知的父对象”属性值以及它读取 OU=Sales\0ADEL:<guid+deleted object's container distinguished name> 的方式:

屏幕截图突出显示“最后一个已知的父对象”属性的值。

筛选模糊名称“销售”,以返回你随后将还原的已删除 OU:

屏幕截图显示“还原”菜单选项。

刷新 Active Directory 管理中心,可以看到已删除用户对象的“最后一个已知的父对象”属性更改为已还原销售 OU 的可分辨名称:

屏幕截图突出显示已删除用户对象的“最后一个已知的父对象”属性更改为已还原销售 OU 的可分辨名称。

筛选所有“销售”用户。 按住 CTRL + A 以选择所有已删除的“销售”用户。 选择 “还原 ”,将对象从 “已删除的对象 ”容器移动到 Sales OU,其组成员身份和属性保持不变。

屏幕截图显示所选对象以及从“已删除对象”容器移动到“销售 OU”的进度。

如果 Sales OU 包含自己的子 OU,则应先还原子 OU,然后再还原其子 OU,依此等。

要通过指定已删除的父容器来还原所有嵌套的已删除对象,请参阅 附录 B:还原多个已删除的 Active Directory 对象(示例脚本)

用于还原已删除对象的 Active Directory Windows PowerShell cmdlet 为:

Restore-ADObject

Restore-ADObject cmdlet 功能未在 Windows Server 2008 R2 和 Windows Server 2012 之间发生更改。

服务器端筛选

在中型和大型企业中,随着时间的推移,“已删除的对象”容器可能会累积超过 20,000 个(甚至 100,000 个)对象,并且难以显示所有对象。 由于 Active Directory 管理中心中的筛选机制依赖于客户端筛选,因此无法显示这些额外的对象。 要解决此限制,请按照以下步骤执行服务器端搜索:

  1. 右键单击 “已删除的对象 ”容器,然后选择 此节点下的“搜索”。
  2. 选择 V 形以公开 “+添加 条件”菜单,选择 “+添加 ”并在 给定日期之间添加上次修改时间。 上次修改时间( whenChanged 属性)是删除时间的接近近似值。 在大多数环境中,它们是相同的。 此查询执行服务器端搜索。
  3. 通过在结果中使用进一步的显示筛选、排序等方式找到要还原的已删除对象,然后正常还原它们。

使用 Active Directory 管理中心配置和管理细化密码策略

配置细化密码策略

Active Directory 管理中心使你能够创建和管理细化密码策略 (FGPP) 对象。 Windows Server 2008 引入了 FGPP 功能,但 Windows Server 2012 首次为其提供了图形管理界面。 你在域级别应用细化密码策略,它能够覆盖 Windows Server 2003 所需的单一域密码。 如果创建具有不同设置的不同 FGPP,域中的各个用户或组将获得不同的密码策略。

有关细化密码策略的信息,请参阅 AD DS 细化密码和帐户锁定策略分步指南 (Windows Server 2008 R2)

导航 窗格中,依次选择 “树视图”、“域”、“ 系统”和“ 密码设置容器”。 在“任务”窗格中,选择“新建”,然后选择“密码设置”。

屏幕截图显示可在何处添加新密码设置。

管理细化密码策略

创建新的 FGPP 或编辑现有 FGPP 会打开 密码设置 编辑器。 你可从此处配置所有所需的密码策略,就像在 Windows Server 2008 或 Windows Server 2008 R2 中执行该操作一样,区别仅在于现在使用专用于该目的的编辑器。

显示用于创建或编辑细化密码策略的“密码设置”编辑器的屏幕截图。

填写所有必需的(红色星号)字段和任何可选字段,然后选择“ 添加” 以设置接收此策略的用户或组。 对于这些指定的安全主体,FGPP 将替代默认域策略设置。 在上一个屏幕截图中,限制性策略仅应用于内置管理员帐户,以防止被入侵。 该策略太复杂,标准用户很难符合此策略,但它非常适合仅由 IT 专业人员使用的高风险帐户。

你还可设置优先级以及该策略将应用到给定域中的哪些用户和组。

屏幕截图显示可以在何处设置优先级以及该策略将应用到给定域中的哪些用户和组。

用于细化密码策略的 Active Directory Windows PowerShell cmdlet 如下:

Add-ADFineGrainedPasswordPolicySubject
Get-ADFineGrainedPasswordPolicy
Get-ADFineGrainedPasswordPolicySubject
New-ADFineGrainedPasswordPolicy
Remove-ADFineGrainedPasswordPolicy
Remove-ADFineGrainedPasswordPolicySubject
Set-ADFineGrainedPasswordPolicy

细化密码策略 cmdlet 功能在 Windows Server 2008 R2 和 Windows Server 2012 之间未发生变化。 下图说明了 cmdlet 的相关参数:

示意图显示 cmdlet 的关联参数。

Active Directory 管理中心还允许你为特定用户查找生成的已应用 FGPP 组。 右键单击任何用户并选择“查看生成的密码设置”,打开通过隐式或显式分配应用于该用户的“密码设置”页:

屏幕截图突出显示“查看生成的密码设置”菜单选项。

检查任何用户或组 的属性 会显示 直接关联的密码设置,这些设置是显式分配的 FGP:

屏幕截图突出显示“直接关联密码设置”部分。

隐式 FGPP 分配不在此处显示。 为此,你需要使用“查看生成的密码设置”选项。

使用 Active Directory 管理中心 Windows PowerShell 历史记录查看器

Windows PowerShell 是 Windows 管理的未来。 在任务自动化框架之上构建图形工具,使最复杂的分布式系统的管理保持一致和高效。 你需要了解 Windows PowerShell 的工作原理,才能发挥你的全部潜能并最大程度利用你在计算方面的投入。

Active Directory 管理中心现在提供了它运行的所有 Windows PowerShell cmdlet 及其参数和值的完整历史记录。 你可以在其他位置复制 cmdlet 历史记录,以供研究或者修改并重复使用。 你可以创建任务备注,以帮助隔离 Active Directory 管理中心命令的 Windows PowerShell 结果。 还可以筛选该历史记录,以查找兴趣点。

Active Directory 管理中心 Windows PowerShell 历史记录查看器的用途是让你通过实践经验学习。

屏幕截图显示 Active Directory 管理中心 Windows PowerShell 历史记录查看器。

选择箭头以显示 Windows PowerShell 历史记录查看器。

显示如何显示“Windows PowerShell 历史记录查看器”的屏幕截图。

然后,创建用户或修改组成员身份。 历史记录查看器持续通过一个折叠视图进行更新,该视图显示 Active Directory 管理中心使用指定参数运行的每个 cmdlet。

展开感兴趣的任何行项,以查看向 cmdlet 的参数提供的所有值:

屏幕截图显示如何展开行项以查看提供给 cmdlet 参数的所有值。

使用 Active Directory 管理中心创建、修改或删除对象之前,请选择 “开始任务 ”以创建手动表示法。 键入之前正在执行的操作。 完成更改后,选择“ 结束任务”。 任务备注将执行的所有操作汇集到折叠备注中,可使用它来更好地了解情况。

例如,要查看用于更改用户密码并将用户从组中删除的 Windows PowerShell 命令:

屏幕截图突出显示如何查看用于更改用户密码和从组中删除用户的 Windows PowerShell 命令。

选中“ 全部显示 ”框还会显示仅检索数据的 Get-* 谓词 Windows PowerShell cmdlet。

显示高级 AD DS 管理的屏幕截图。

历史记录查看器显示 Active Directory 管理中心运行的文本命令。 可能会注意到,某些 cmdlet 似乎不必要地运行。 例如,你可以使用以下对象创建新用户:

New-ADUser

Active Directory 管理中心的设计要求最少的代码使用量和模块化。 因此,它将最小程度地执行每个函数,然后使用 cmdlet 将它们链接在一起,而不是使用用于创建新用户的函数集和用于修改现有用户的其他集。 当你学习 Active Directory Windows PowerShell 时,请记住这一点。 你还可以将其用作学习技术,你将在其中发现使用 Windows PowerShell 完成单个任务是如此简单。

在 Active Directory 管理中心中管理不同的域

打开 Active Directory 管理中心时,你当前在此计算机上登录的域(本地域)会显示在 Active Directory 管理中心的导航窗格(左窗格)中。 根据当前登录凭据集的权限,你可以查看或管理此本地域中的 Active Directory 对象。

还可以使用同一组登录凭据和 Active Directory 管理中心的同一个实例来查看或管理同一林中任何其他域中的 Active Directory 对象,或者与本地域建立信任的另一个林中的域中的相应对象。 同时支持单向信任和双向信任。 不需要任何最低组成员身份即可完成此过程。

Note

如果域 A 和域 B 之间存在单向信任(通过该信任,域 A 中的用户可以访问域 B 中的资源,但域 B 中的用户不能访问域 A 中的资源),如果你在域 A 是本地域的计算机上运行 Active Directory 管理中心,则可以使用当前登录凭据集连接到域 B,且在同一 Active Directory 管理中心实例中。

但如果你在域 B 是本地域的计算机上运行 Active Directory 管理中心,则无法在同一 Active Directory 管理中心实例中使用相同的凭据集连接到域 A。

Windows Server 2012:要使用当前登录凭据集在选定的 Active Directory 管理中心实例中管理外部域

  1. 若要打开 Active Directory 管理中心,请在 服务器管理器中选择 “工具”,然后选择 “Active Directory 管理中心”。

  2. 若要打开“添加导航节点”,请选择“ 管理”,然后选择“ 添加导航节点”。

  3. 添加导航节点中,选择连接到其他域

  4. “连接到”中,键入要管理的外国域的名称(例如), contoso.com然后选择“ 确定”。

  5. 在成功连接到外部域后,浏览添加导航节点窗口中的列,选择要添加到“Active Directory 管理中心”导航窗格中的一个或多个容器,然后选择确定

Windows Server 2008 R2:要使用当前登录凭据集在选定的 Active Directory 管理中心实例中管理外部域

  1. 若要打开 Active Directory 管理中心,请选择“ 开始”,选择 “管理工具”,然后选择 “Active Directory 管理中心”。

    Tip

    打开 Active Directory 管理中心的另一种方法是选择“ 开始”、“ 运行”,然后键入 dsac.exe

  2. 然后打开“添加导航节点”,在 Active Directory 管理中心窗口顶部附近,选择“添加导航节点”

    Tip

    打开“添加导航节点”的另一种方法是右键单击 Active Directory 管理中心导航窗格中的空白区域,然后选择“添加导航节点”

  3. 添加导航节点中,选择连接到其他域

  4. “连接到”中,键入要管理的外国域的名称(例如), contoso.com然后选择“ 确定”。

  5. 在成功连接到外部域后,浏览添加导航节点窗口中的列,选择要添加到“Active Directory 管理中心”导航窗格中的一个或多个容器,然后选择确定

使用与当前登录凭据集不同的登录凭据管理域

若要在命令提示符下打开 Active Directory 管理中心,请键入以下命令,然后选择 Enter

runas /user:<domain\user> dsac

<domain\user> 是你想要用来打开 Active Directory 管理中心的凭据集,dsac 是 Active Directory 管理中心可执行文件名称。

在打开 Active Directory 管理中心之后,即可浏览导航窗格以查看或管理你的 Active Directory 域。

故障排除 AD DS 管理

故障排除选项

日志记录选项

Active Directory 管理中心现在包含作为跟踪 config 文件的一部分的内置日志记录。 在 dsac.exe 所在的相同文件夹中创建/修改以下文件:

dsac.exe.config

创建以下内容:

<appSettings>
  <add key="DsacLogLevel" value="Verbose" />
</appSettings>
<system.diagnostics>
 <trace autoflush="false" indentsize="4">
  <listeners>
   <add name="myListener"
    type="System.Diagnostics.TextWriterTraceListener"
    initializeData="dsac.trace.log" />
   <remove name="Default" />
  </listeners>
 </trace>
</system.diagnostics>

DsacLogLevel 的详细级别为 NoneErrorWarningInfoVerbose。 输出文件名可进行配置,并将写入 dsac.exe 所在的相同文件夹。 输出可以告诉你有关 Active Directory 管理中心的运行方式、它联系的域控制器、运行的 Windows PowerShell 命令、响应内容以及更多详细信息的更多信息。

例如,使用 信息 级别时,该级别返回除跟踪级别详细性之外的所有结果:

  • DSAC.exe 开始。

  • 日志记录开始。

  • 请求域控制器返回初始域信息。

    [12:42:49][TID 3][Info] Command Id, Action, Command, Time, Elapsed Time ms (output), Number objects (output)
    [12:42:49][TID 3][Info] 1, Invoke, Get-ADDomainController, 2012-04-16T12:42:49
    [12:42:49][TID 3][Info] Get-ADDomainController-Discover:$null-DomainName:"CORP"-ForceDiscover:$null-Service:ADWS-Writable:$null
    
  • 域控制器 DC1 已从域 Corp 返回。

  • PS Active Directory 虚拟驱动器已加载。

    [12:42:49][TID 3][Info] 1, Output, Get-ADDomainController, 2012-04-16T12:42:49, 1
    [12:42:49][TID 3][Info] Found the domain controller 'DC1' in the domain 'CORP'.
    [12:42:49][TID 3][Info] 2, Invoke, New-PSDrive, 2012-04-16T12:42:49
    [12:42:49][TID 3][Info] New-PSDrive-Name:"ADDrive0"-PSProvider:"ActiveDirectory"-Root:""-Server:"dc1.corp.contoso.com"
    [12:42:49][TID 3][Info] 2, Output, New-PSDrive, 2012-04-16T12:42:49, 1
    [12:42:49][TID 3][Info] 3, Invoke, Get-ADRootDSE, 2012-04-16T12:42:49
    
  • 获取域根 DSE 信息。

    [12:42:49][TID 3][Info] Get-ADRootDSE -Server:"dc1.corp.contoso.com"
    [12:42:49][TID 3][Info] 3, Output, Get-ADRootDSE, 2012-04-16T12:42:49, 1
    [12:42:49][TID 3][Info] 4, Invoke, Get-ADOptionalFeature, 2012-04-16T12:42:49
    
  • 获取域 Active Directory 回收站信息。

    [12:42:49][TID 3][Info] Get-ADOptionalFeature -LDAPFilter:"(msDS-OptionalFeatureFlags=1)" -Server:"dc1.corp.contoso.com"
    [12:42:49][TID 3][Info] 4, Output, Get-ADOptionalFeature, 2012-04-16T12:42:49, 1
    [12:42:49][TID 3][Info] 5, Invoke, Get-ADRootDSE, 2012-04-16T12:42:49
    [12:42:49][TID 3][Info] Get-ADRootDSE -Server:"dc1.corp.contoso.com"
    [12:42:49][TID 3][Info] 5, Output, Get-ADRootDSE, 2012-04-16T12:42:49, 1
    [12:42:49][TID 3][Info] 6, Invoke, Get-ADRootDSE, 2012-04-16T12:42:49
    [12:42:49][TID 3][Info] Get-ADRootDSE -Server:"dc1.corp.contoso.com"
    [12:42:49][TID 3][Info] 6, Output, Get-ADRootDSE, 2012-04-16T12:42:49, 1
    [12:42:49][TID 3][Info] 7, Invoke, Get-ADOptionalFeature, 2012-04-16T12:42:49
    [12:42:49][TID 3][Info] Get-ADOptionalFeature -LDAPFilter:"(msDS-OptionalFeatureFlags=1)" -Server:"dc1.corp.contoso.com"
    [12:42:50][TID 3][Info] 7, Output, Get-ADOptionalFeature, 2012-04-16T12:42:50, 1
    [12:42:50][TID 3][Info] 8, Invoke, Get-ADForest, 2012-04-16T12:42:50
    
  • 获取 Active Directory 林。

    [12:42:50][TID 3][Info] Get-ADForest -Identity:"corp.contoso.com" -Server:"dc1.corp.contoso.com"
    [12:42:50][TID 3][Info] 8, Output, Get-ADForest, 2012-04-16T12:42:50, 1
    [12:42:50][TID 3][Info] 9, Invoke, Get-ADObject, 2012-04-16T12:42:50
    
  • 获取支持的加密类型、FGPP 和某些用户信息的架构信息。

    [12:42:50][TID 3][Info] Get-ADObject
    -LDAPFilter:"(|(ldapdisplayname=msDS-PhoneticDisplayName)(ldapdisplayname=msDS-PhoneticCompanyName)(ldapdisplayname=msDS-PhoneticDepartment)(ldapdisplayname=msDS-PhoneticFirstName)(ldapdisplayname=msDS-PhoneticLastName)(ldapdisplayname=msDS-SupportedEncryptionTypes)(ldapdisplayname=msDS-PasswordSettingsPrecedence))"
    -Properties:lDAPDisplayName
    -ResultPageSize:"100"
    -ResultSetSize:$null
    -SearchBase:"CN=Schema,CN=Configuration,DC=corp,DC=contoso,DC=com"
    -SearchScope:"OneLevel"
    -Server:"dc1.corp.contoso.com"
    [12:42:50][TID 3][Info] 9, Output, Get-ADObject, 2012-04-16T12:42:50, 7
    [12:42:50][TID 3][Info] 10, Invoke, Get-ADObject, 2012-04-16T12:42:50
    
  • 获取要向单击了域标头的管理员显示的域对象的所有相关信息。

    [12:42:50][TID 3][Info] Get-ADObject
    -IncludeDeletedObjects:$false
    -LDAPFilter:"(objectClass=*)"
    -Properties:allowedChildClassesEffective,allowedChildClasses,lastKnownParent,sAMAccountType,systemFlags,userAccountControl,displayName,description,whenChanged,location,managedBy,memberOf,primaryGroupID,objectSid,msDS-User-Account-Control-Computed,sAMAccountName,lastLogonTimestamp,lastLogoff,mail,accountExpires,msDS-PhoneticCompanyName,msDS-PhoneticDepartment,msDS-PhoneticDisplayName,msDS-PhoneticFirstName,msDS-PhoneticLastName,pwdLastSet,operatingSystem,operatingSystemServicePack,operatingSystemVersion,telephoneNumber,physicalDeliveryOfficeName,department,company,manager,dNSHostName,groupType,c,l,employeeID,givenName,sn,title,st,postalCode,managedBy,userPrincipalName,isDeleted,msDS-PasswordSettingsPrecedence
    -ResultPageSize:"100"
    -ResultSetSize:"20201"
    -SearchBase:"DC=corp,DC=contoso,DC=com"
    -SearchScope:"Base"
    -Server:"dc1.corp.contoso.com"
    

设置 详细 级别还显示了每个函数的 .NET 堆栈,但这些堆栈不包含足够的数据,除非在 dsac.exe 发生访问冲突或崩溃后进行故障排除时,否则这些数据将非常有用。 此问题的两个可能原因如下:

  • 任何可访问的域控制器上都没有运行 Active Directory Web 服务。
  • 从运行 Active Directory 管理中心的计算机到 Active Directory Web 服务的网络通信被阻止。

Important

还有一个名为 Active Directory 管理网关的带外版本服务,它在 Windows Server 2008 SP2 和 Windows Server 2003 SP2 上运行。

在没有可用 Active Directory Web 服务实例时显示的错误如下:

Error Operation
“无法连接到任何域。 请在连接可用时刷新或重试” 在 Active Directory 管理中心应用程序启动时显示
“在运行 Active Directory Web 服务 (ADWS) 的 <NetBIOS domain name> 域中找不到可用的服务器” 当你尝试在 Active Directory 管理中心应用程序中选择域节点时显示

要解决此问题,请执行以下步骤:

  1. 验证域中至少一个域控制器(最好是林中所有域控制器)上已启动 Active Directory Web 服务。 确保将其设置为在所有域控制器上自动启动。

  2. 在运行 Active Directory 管理中心的计算机上,通过运行以下 NLTest.exe 命令验证你能否找到运行 Active Directory Web 服务的服务器:

    nltest /dsgetdc:<domain NetBIOS name> /ws /force
    nltest /dsgetdc:<domain fully qualified DNS name> /ws /force
    

    如果尽管 Active Directory Web 服务正在运行但这些测试失败,则问题出在名称解析或 LDAP,而非 Active Directory Web 服务或 Active Directory 管理中心。 不过,如果任何域控制器上都没有运行 Active Directory Web 服务,此测试将失败并显示错误“1355 0x54B ERROR_NO_SUCH_DOMAIN”,因此在得出任何结论之前请仔细检查。

  3. 在 Nltest 返回的域控制器上,使用以下命令转储侦听端口列表:

    Netstat -anob > ports.txt
    

    检查 ports.txt 文件并验证 Active Directory Web 服务是否在端口 9389 上侦听。 例如:

    TCP    0.0.0.0:9389    0.0.0.0:0    LISTENING    1828
    [Microsoft.ActiveDirectory.WebServices.exe]
    
    TCP    [::]:9389       [::]:0       LISTENING    1828
    [Microsoft.ActiveDirectory.WebServices.exe]
    

    如果服务正在侦听,请验证 Windows 防火墙规则并确保它们允许 9389 TCP 入站。 默认情况下,域控制器启用防火墙规则“Active Directory Web Services (TCP-in)”。如果服务未侦听,请再次验证它是否在此服务器上运行并重启它。 验证端口 9389 上不存在正在侦听的任何其他过程。

  4. 在运行 Active Directory 管理中心的计算机和 Nltest 返回的域控制器上安装 NetMon 或其他网络捕获工具。 从两台计算机中收集同时进行的网络捕获 - 你在这些计算机中启动 Active Directory 管理中心并可以在停止捕获之前看到错误。 验证客户端能够在端口 TCP 9389 上与域控制器进行发送和接收操作。 如果数据包已发送但从未到达,或者已到达且域控制器已回复但从未到达客户端,则网络中计算机之间的防火墙可能正在丢弃该端口上的数据包。 此防火墙可以是软件或硬件,并且可以是非 Microsoft 端点保护(防病毒)软件的一部分。