"目录数据类型无法转换为本机 DS 数据类型或来自本机 DS 数据类型" 错误

本文将帮助修复错误 "无法转换为本机 DS 数据类型或从本机 DS 数据类型转换目录数据类型"。

原始产品版本:   Windows Server 2019、Windows Server 2016、Windows Server 2012 R2
原始 KB 数:   907462

症状

您正在运行或管理使用 Windows 中的 Active Directory 目录服务中的信息的应用程序。 当应用程序使用链接属性的信息时,您可能会收到错误。 例如,您可能会收到以下错误:

目录数据类型无法转换为本机 DS 数据类型。

在这种情况下,当使用 LDIFDE 实用工具导出受影响的对象 ( # A0) 时,将列出一个属性。 但是,属性没有值。

当值较长时,这可能是预期行为。 但输出中的下一行具有下一个属性。 对于组及其 managedBy 属性,输出可能类似于以下内容:
...
showInAddressBook: <Address Book object DN>
ManagedBy
LegacyExchangeDN <X500 name>
groupType:-2147483640
...

在具有 RootDSE 命令谓词 dumpdatabase的数据库转储中,受影响的组将如下所示显示:

38661 29827 1 1790 true--4 3 组-DN 组-DN-655368 6d03f309-ded2-41d5-9794-081d40343876 4
objectclass:655368、65536
DNT Base BDNT DelTime DeactiveTime USNChanged NCDNT 数据
38661 1 38662--55247898 1790-
38661 36 2-----

链接属性 ID 始终为36,链接伙伴始终为2。
有关如何转储数据库的信息,请参阅 how To Use The Online Dbdump feature Of Active Directory

原因

应用程序可以添加引用 Active Directory 数据库的内部根对象的对象链接。 此对象没有可用于应用程序的名称或任何其他属性。 因此,客户端应用程序将显示错误消息,并不指出问题的原因。

解决方案

如果使用运行 Windows Server 2003 Service Pack 1 的域控制器,则不会出现该问题。 但具有此无效链接的对象仍在数据库中。 搜索 NTDS 时,可以找到受域控制器影响的组。DMP 文件,如下所示:

findstr/i/c: "36 2--" dmp
38661 36 2-----

Windows Server 2003:

您无法通过删除属性来解决此问题。 如果删除属性,则会在应用程序目录服务日志中记录以下错误:

事件类型:错误
事件源: NTDS 复制
事件类别:复制
事件 ID:1694
说明:
Active Directory 无法使用从以下源域控制器收到的属性值更改来更新以下对象。 这是因为在应用对本地域控制器的 Active Directory 更改的过程中发生错误。
对象
<group DN>
对象 GUID:
<GUID>
源域控制器:
<GUID-based DC name>
属性
ManagedBy
属性值:
[]
属性值 GUID:
00000000-0000-0000-0000-000000000000

0
将在下一个计划的复制中再次尝试此操作。 在更正更新问题之前,将阻止对源域控制器的本地域控制器与源域控制器进行同步。
其他数据
错误值:
复制系统遇到一个内部错误。

如果记录此错误,对象将处于 "已损坏" 状态。 若要获得原始状态或删除对象,只能在对象上运行权威性还原。 若要修复显示此行为的对象,建议您使用 LDIFDE 实用工具删除并重建该对象。

注意

删除对象时,所有的反向链接都将被删除。

如果您必须保留无法设置其值的某些属性(如 objectSid 属性或 SidHistory 属性),则删除该对象,然后撤消删除。 在删除对象时,Windows Server 2003 Service Pack 1 (将 SidHistory 属性保留为。 ) 删除和撤消删除对象时,无需运行语义检查器。

但是,目前尚不存在用于恢复属性和反向链接的工具。 若要还原组成员身份,可以使用 Groupadd.exe 工具。 有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

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

如果使用 Microsoft 预配系统,则可以使用系统来恢复属性和反向链接。

某些备份和恢复应用程序可能会提供一种更方便的方法来删除这些问题属性。 应用程序必须允许您在还原操作过程中选择属性。 例如,当您还原已删除的对象时,应用程序必须允许您排除 managedBy 属性。

状态

Microsoft 已确认这是 "适用于" 部分中列出的 Microsoft 产品中的问题。 此问题在 Microsoft Windows Server 2003 Service Pack 1 中首次更正。