在处理Active Directory服务接口(ADSI)报错时,了解错误代码及其含义是非常重要的,以下是一些常见的ADSI错误代码及其说明:
值 | 代码 | 说明 | 纠正措施 |
0x00005011L | S_ADS_ERRORSOCCURRED | 查询期间出现一个或多个错误。 | 验证是否可合法设置搜索首选项;如果可以,则验证它是否已正确设置。 |
0x80005000L | E_ADS_BAD_PATHNAME | 传递了无效 ADSI 路径名。 | 验证目录服务器上是否存在此对象,并检查路径是否存在版式错误。 |
0x80005001L | E_ADS_INVALID_DOMAIN_OBJECT | 请求了未知 ADSI 域对象。 | 验证域对象的路径。 |
0x80005002L | E_ADS_INVALID_USER_OBJECT | 请求了未知的 ADSI 用户对象。 | 验证该用户对象是否存在,并检查路径是否存在拼写错误以及用户访问权限。 |
0x80005003L | E_ADS_INVALID_COMPUTER_OBJECT | 请求了未知的 ADSI 计算机对象。 | 验证该计算机对象是否存在,并检查路径是否存在拼写错误以及计算机访问权限。 |
0x80005004L | E_ADS_UNKNOWN_OBJECT | 请求了未知的 ADSI 对象。 | 验证对象的名称和访问权限。 |
0x80005005L | E_ADS_PROPERTY_NOT_SET | 未设置指定的 ADSI 属性。 | 无 |
0x80005006L | E_ADS_PROPERTY_NOT_SUPPORTED | 不支持指定的 ADSI 属性。 | 验证是否设置了正确的属性。 |
0x80005007L | E_ADS_PROPERTY_INVALID | 指定的 ADSI 属性无效 | 验证传递给方法调用的参数。 |
0x80005008L | E_ADS_BAD_PARAMETER | 一个或多个输入参数无效。 | 无 |
0x80005009L | E_ADS_OBJECT_UNBOUND | 指定的 ADSI 对象未绑定到远程资源。 | 调用 SetInfo 后,对新创建的对象调用 GetInfo。 |
0x8000500AL | E_ADS_PROPERTY_NOT_MODIFIED | 指定的 ADSI 对象尚未修改。 | 无 |
0x8000500BL | E_ADS_PROPERTY_MODIFIED | 指定的 ADSI 对象已被修改。 | 无 |
0x8000500CL | E_ADS_CANT_CONVERT_DATATYPE | 数据类型无法与本机 DS 数据类型相互转换。 | 验证是否使用了正确的数据类型,以及/或是否有足够的架构数据可用于执行数据类型转换。 |
0x8000500DL | E_ADS_PROPERTY_NOT_FOUND | 在缓存中未找到该属性。 | 验证 GetInfo 是否已隐式或显式调用。 如果该属性为操作属性,则必须使用 GetInfoEx 而不是 GetInfo 来显式检索它。 如果问题仍然存在,则表示尚未在服务器上设置该属性。 |
0x8000500EL | E_ADS_OBJECT_EXISTS | 该 ADSI 对象已存在。 | 使用其他名称创建此对象。 |
0x8000500FL | E_ADS_SCHEMA_VIOLATION | 尝试执行的操作违反了目录服务架构规则。 | 无 |
0x80005010L | E_ADS_COLUMN_NOT_SET | 未设置 ADSI 中的指定列。 | 无 |
0x80005014L | E_ADS_INVALID_FILTER | 指定的搜索筛选器无效。 | 使用目录服务器接受的正确筛选器格式。 |
ADSI相关FAQs(常见问题解答)
1、如何通过ADSI修改组的属性?
描述:可以通过ADSI直接修改组的描述(description)属性。
名称:组的名称(name)不能直接修改,需要使用IADsContainer::MoveHere
方法来重命名对象。
2、如何使用IADsContainer::MoveHere
方法进行重命名?
IADsContainer::MoveHere
方法可以将指定对象移动到实现此接口的容器中,并可以在过程中重命名对象,方法的参数包括源对象、新名称和新对象的指针。
注意:在进行跨域移动时,目标域必须是原生模式,且被移动的对象必须是叶子对象或空容器,NTLM认证不能用于跨域移动,应使用Kerberos认证或委托认证。
3、如何在ADSI中使用筛选器进行搜索?
确保使用的筛选器格式是目录服务器接受的正确格式,如果筛选器无效,将会返回错误代码E_ADS_INVALID_FILTER(值为0x80005014L)。
4、如何避免在ADSI操作中出现路径错误?
验证目录服务器上是否存在该对象,并检查路径是否存在版式错误,如果路径无效,将返回错误代码E_ADS_BAD_PATHNAME(值为0x80005000L)。
理解和处理ADSI报错需要熟悉各种错误代码及其对应的纠正措施,通过正确的方法和步骤,可以有效地解决大多数ADSI相关的问题。