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

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

适用于: Windows Server 2012 R2
原始 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. ”的编辑:name ncname objectclass objectguid instancetype。 必须在属性之间保留一个空格。

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

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

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

还可以通过使用 LDIFDE 导入文件来触发此 dump-db.txt,例如:

Dn:
更改类型:修改
添加: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 工具的语义检查器解决此问题。