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 |