如何使用 Active Directory 的联机 dbdump 功能

本文介绍如何使用 Active Directory 的联机 dbdump 功能。

原始 KB 数: 315098

总结

可以使用 Ldp.exe中的联机 dbdump 功能查看域控制器运行时存储在数据库中的值。 可以通过修改 rootDSA 上的 dumpDatabase 属性来触发联机 dbdump 功能。

为此特性指定的值是要转储的默认属性以外的属性。 指定的值是此属性的名称。 dumpDatabase 功能首先检查是否有足够的权限来转储数据库。 然后将数据库转储到Ntds.dmp文件中。 Ntds.dmp文件位于数据库文件 (.dit) 所在的同一文件夹中。 默认属性为:

  • DNT
  • PDNT
  • OBJ
  • RDNTyp
  • CNT
  • ABCNT
  • DelTime
  • NCDNT
  • ABVis

使用示例:调查发生冲突 CNF 或删除 DEL 属性的 SPN 问题

若要创建Ntds.dmp文件,请执行以下步骤:

  1. 在记录 NTDS 事件 1645 的域控制器上启动Ldp.exe。

  2. 在本地连接,然后作为企业管理员进行绑定。

  3. 单击“浏览”菜单上的修改”。

  4. 编辑 属性:dumpdatabase。

  5. 编辑 :名称 ncname objectclass objectguid instancetype。 必须在属性之间留出一个空格。

  6. 单击 “输入”。 “ 条目列表 ”框包含以下条目:
    [Add]dumpdatabase: name ncname objectclass objectguid instancetype

  7. 单击“扩展”和“运行”选项。

  8. 创建 %systemroot%\NTDS\Ntds.dmp 文件,或者在Ldp.exe收到一条错误消息,指出必须调查。

还可以使用 LDIFDE 导入文件dump-db.txt来触发此触发器,如下所示:

Dn:
Changetype:modify
添加:dumpdatabase
Dumpdatabase:name ncname objectclass objectguid instancetype
-

若要使用 LDIFDE 导入文件,请使用类似于 ldifde /s \<targetserver> /i /f dump-db.txt..

使用输出

Ntds.dmp文件是文本文件。 查找在事件 1645 中报告的冲突或删除的 GUID,以查看内部引用不匹配。

示例转储文件

以下示例显示域 PDT 的 CROSSREF 对象指向已删除的错误对象:

3953 2326 true 3 1 0 - 1163 - 4
3947 196619 56.6E.52.8A.2E.B4.00.43.BE.B1.B3.57.91.AD.F5.BE PDT
...
3947 1161 false 1376281 2 0 2001-08-04 11:02.47 - -
- - - 9E.4C.AB.36.81.65.2B.4F.A0.31.59.D5.C2.74.68.F2 pdt
DEL:36ab4c9e-6581-4f2b-a031-59d5c27468f2
...
3958 1161 false 1376281 3 0 2001-08-04 23:02.47 - -
- - - 85.0B.3B.A1.EC.68.37.46.9E.D0.FF.F6.66.BA.FB.84 pdt

内部引用指向 3947,尽管它应指向 dc=pdt,dc=net 的新 3958 对象。

可以使用最新版本的 Ntdsutil.exe 工具的语义检查器解决此问题。