IADsGroup::Add 方法 (iads.h)

IADsGroup::Add 方法将 ADSI 对象添加到现有组。

语法

HRESULT Add(
  [in] BSTR bstrNewItem
);

parameters

[in] bstrNewItem

包含一个 BSTR ,它指定要添加到组的 对象的 ADsPath。 有关详细信息,请参阅“备注”。

返回值

下面是最常见的返回值。 有关返回值的详细信息,请参阅 ADSI 错误代码

注解

如果使用 LDAP 提供程序绑定到 IADsGroup 对象,则必须在 bstrNewItem 参数中指定相同形式的 ADsPath。 例如,如果用于绑定到 IADsGroup 对象的 ADsPath 包含服务器, 则 bstrNewItem 参数中的 ADsPath 必须包含相同的服务器前缀。 同样,如果使用无服务器路径绑定到 IADsGroup 对象, 则 bstrNewItem 参数还必须包含无服务器路径。 使用服务器前缀时,如果组和新成员来自不同域,则可能会出现延迟,因为请求可能会发送到错误的域控制器,并引用正确域的域控制器并在那里重试。 使用 GUID 或安全标识符 (SID) ADsPath 添加或删除成员时,会发生异常。 在这种情况下,应始终在 bstrNewItem 中使用无服务器路径。

Active Directory 的 LDAP 提供程序允许使用成员 SID 的字符串形式将成员添加到组中。 bstrNewItem 参数可以包含以下形式的 SID 字符串。

LDAP://SID=<010500000000000515000000c6bb507afbda8b7f43170a325b040000>

有关 Active Directory 中的 SID 字符串的详细信息,请参阅 使用 SID 绑定到对象

Active Directory 的 WinNT 提供程序还允许使用成员 SID 的字符串形式将成员添加到组中。 bstrNewItem 参数可以包含以下形式的 SID 字符串。

WinNT://S-1-5-21-35135249072896"

示例

下面的代码示例演示如何使用 WinNT 提供程序将用户对象 (“jeff”) 添加到“Fabrikam”域上的组 (“Administrators”) 。

Dim grp As IADsGroup
Set grp = GetObject("WinNT://Fabrikam/Administrators")
grp.Add ("WinNT://Fabrikam/jeff")

下面的代码示例演示如何使用 LDAP 提供程序将用户对象添加到组。

Dim grp As IADsGroup
On Error GoTo Cleanup

Set grp = GetObject("LDAP://CN=Administrators, CN=Users, DC=Fabrikam, DC=com")
grp.Add("LDAP://CN=Jeff Smith, OU=Sales,DC=Fabrikam,DC=com")

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

下面的代码示例将现有用户帐户添加到管理员组。

IADsGroup *pGroup = NULL;
HRESULT hr = S_OK;
LPWSTR adsPath = L"WinNT://Fabrikam/Administrators";
hr = ADsGetObject(adsPath,IID_IADsGroup,(void**)&pGroup);
if(FAILED(hr)) {goto Cleanup;}

// This assumes that the "WinNT://Fabrikam/jeff" user account exists 
// and does not already belong to the Administrators group.

hr = pGroup->Add(_bstr_t("WinNT://Fabrikam/jeff"));
if(FAILED(hr)){goto Cleanup;}

Cleanup:
    if(pGroup)
        pGroup->Release();

    return hr;

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 iads.h
DLL Activeds.dll

另请参阅

ADSI 错误代码

使用 SID 绑定到对象

IADsGroup

IADsGroup 属性方法

IADsMembers