IADs 属性方法

IAD 接口的属性方法获取或设置下表中所述的属性。 有关属性方法的详细信息,请参阅 Interface 属性方法

属性

ADsPath

此对象的 ADsPath 字符串。 字符串在网络环境中唯一标识此对象。 始终可以使用此路径检索对象。

访问类型:只读

脚本数据类型: BSTR

// C++ method syntax
HRESULT get_ADsPath(
  [out] BSTR* pbstrADsPath
);

对象 Schema 类的名称。

访问类型:只读

脚本数据类型: BSTR

// C++ method syntax
HRESULT get_Class(
  [out] BSTR* pbstrClass
);

GUID

目录对象的全局唯一标识符。 IAD 接口GUID 从八进制字符串(存储在目录服务器上)转换为字符串格式。

访问类型:只读

脚本数据类型: BSTR

// C++ method syntax
HRESULT get_GUID(
  [out] BSTR* pbstrGUID
);

名称

基础目录服务中命名的对象相对名称。 此名称将此对象与其同级区分开来。

访问类型:只读

脚本数据类型: BSTR

// C++ method syntax
HRESULT get_Name(
  [out] BSTR* pbstrName
);

父级

父容器的 ADsPath 字符串。 Active Directory 不允许通过连接 ParentName 属性来形成给定对象的 ADsPath。 虽然此操作在某些提供程序中可能正常工作,但不能保证适用于所有实现。 ADsPath 保证有效,应始终用于检索对象的接口指针。

访问类型:只读

脚本数据类型: BSTR

// C++ method syntax
HRESULT get_Parent(
  [out] BSTR* pbstrParent
);

架构

此对象的 Schema 类对象的 ADsPath 字符串。

访问类型:只读

脚本数据类型: BSTR

// C++ method syntax
HRESULT get_Schema(
  [out] BSTR* pbstrSchema
);

注解

在 Active Directory 中,从 GUID 返回的 GUID 是十六进制字符串。 使用生成的 GUID 直接绑定到对象。

Dim x As IADs
Set x = GetObject("LDAP://servername/<GUID=xxx>")

其中 xxx 是从 GUID 属性返回的值。 有关详细信息,请参阅 使用 objectGUID 绑定到对象。 请注意,如果使用 GUID 绑定到对象, ADsPath 属性方法将返回的值与使用可分辨名称 (DN) 绑定到同一对象的正常值不同。 例如,下表列出了使用两种不同的绑定方法绑定到同一用户对象时返回的值。

使用 DN 绑定 使用 GUID 绑定
名称 CN=Jeff Smith CN=Jeff Smith
父级 LDAP://server/CN=Users,DC=Fabrikam,DC=com LDAP://server/CN=Users,DC=Fabrikam,DC=com
ADsPath LDAP://server/CN=Jeff Smith,CN=Users,DC=Fabrikam,DC=com <LDAP://server/ GUID=c0f59dfcf507d311a99e0000f879f7c7>

注意

WinNT 提供程序不支持使用对象 GUID 进行绑定,并且以略有不同的字符串格式返回 GUID 属性。

示例

下面的代码示例演示如何使用 IAD 接口 的属性方法检索对象数据。

Dim x As IADs
Dim parent As IADsContainer
Dim cls As IADsClass
Dim op As Variant

On Error GoTo Cleanup

Set x = GetObject("WinNT://Fabrikam/Administrator")
Debug.Print "Object Name: " & x.Name
Debug.Print "Object Path: " & x.ADsPath
Debug.Print "Object Class: " & x.Class
 
' Get more data about the object schema.
Set cls = GetObject(x.Schema)
Debug.Print "Class Name is: " & cls.Name
For Each op In cls.OptionalProperties
    Debug.Print "Optional Property: " & op
Next op

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set x = Nothing
    Set parent = Nothing
    Set cls = Nothing

下面的代码示例演示如何使用 IAD 接口 的属性方法检索对象数据。

<HTML>
<head><title></title></head>

<body>
<%
Dim x 
On Error Resume Next
 
Set x = GetObject("WinNT://Fabrikam/Administrator")
Response.Write "Object Name: " & x.Name & "<br>"
Response.Write "Object Path: " & x.ADsPath & "<br>"
Response.Write "Object Class: " & x.Class & "<br>"
 
' Get more data about the object schema.
Set cls = GetObject(x.Schema)
Response.Write "Class Name is: " & cls.Name & "<br>"
For Each op In cls.OptionalProperties
    Response.Write "Optional Property: " & op & "<br>"
Next op
%>

</body>
</html>

下面的代码示例演示如何使用 IADs 接口的属性方法。

#include <stdio.h>
#include <activeds.h>
 
int main(int argc, char* argv[])
{
    IADs *pADs = NULL;
    IADsUser *pADsUser = NULL;
    IADsClass *pCls = NULL;
    CComBSTR sbstr;
 
    HRESULT hr = CoInitialize(NULL);
    if (hr != S_OK) { return 0; }
 
    hr=ADsGetObject(L"WinNT://Fabrikam/Administrator",
                IID_IADsUser,
                (void**) &pADsUser);
    if (hr != S_OK) { goto Cleanup; }
 
    hr = pADsUser->QueryInterface(IID_IADs, (void**) &pADs);
    if( hr !=S_OK) { goto Cleanup;}
 
    pADsUser->Release();
 
    if( S_OK == pADs->get_Name(&sbstr) ) {
        printf("Object Name: %S\n",sbstr);
    }
 
    if( S_OK == pADs->get_ADsPath(&sbstr) ) {
        printf("Object path: %S\n",sbstr);
    }
 
    if( S_OK == pADs->get_Class(&sbstr) ) {
        printf("Object class: %S\n",sbstr);
    }
 
    hr = pADs->get_Schema(&sbstr);
    if ( hr != S_OK) {goto Cleanup;}
 
    hr = ADsGetObject(sbstr,IID_IADsClass, (void**)&pCls);
    if ( hr != S_OK) {goto Cleanup;}
    if( S_OK == pCls->get_Name(&sbstr) ) {
        printf("Class name is %S\n", sbstr);
    }
 
 Cleanup:
    if(pADs)
        pADs->Release();

    if(pIADsUser)
        pADsUser->Release();

    if(IADsClass)
        pADsClass->Release();

    CoUninitialize();

    if(hr==S_OK)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
标头
Iads.h
DLL
Activeds.dll
IID
IID_IADs定义为 FD8256D0-FD15-11CE-ABC4-02608C9E7553

另请参阅

IADs

IADsContainer