IADsGroup::Remove 方法 (iads.h)

IADsGroup::Remove 方法从此组中删除指定的用户对象。 即使组中没有剩余成员,该操作也不会删除组对象本身。

语法

HRESULT Remove(
  [in] BSTR bstrItemToBeRemoved
);

parameters

[in] bstrItemToBeRemoved

包含一个 BSTR,该 BSTR 指定要从组中删除的 对象的 ADsPath。 有关此参数的详细信息,请参阅“备注”部分。

返回值

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

注解

如果使用 LDAP 提供程序绑定到 IADsGroup 对象,则必须在 bstrItemToBeRemoved 参数中指定相同形式的 ADsPath。 例如,如果用于绑定到 IADsGroup 对象的 ADsPath 包含服务器,则 bstrItemToBeRemoved 参数中的 ADsPath 必须包含相同的服务器前缀。 同样,如果使用无服务器路径绑定到 IADsGroup 对象, 则 bstrItemToBeRemoved 参数还必须包含无服务器路径。 使用 GUID 或 SID ADsPath 添加或删除成员时例外。 在这种情况下,应始终在 bstrItemToBeRemoved 中使用无服务器路径。

可以使用 ADsPath 中的 SID 通过 WinNT 提供程序从组中删除安全主体。 例如,假设用户的 SID“Fabrikam\jeffsmith”为 S-1-5-21-35135249072896,以下语句如下:

Dim group As IADsGroup
group.Remove("WinNT://S-1-5-21-35135249072896")

等效于

Dim group As IADsGroup
group.Remove("WinNT://Fabrikam/jeffsmith")

通过 WinNT 提供程序删除成员的 SID 是 Windows 2000 和 DSCLIENT 包中的一项新功能。

示例

下面的代码示例从组中删除用户帐户。

Dim grp As IADsGroup
On Error GoTo Cleanup

Set grp = GetObject("WinNT://Fabrikam/Administrators")
grp.Remove ("WinNT://Fabrikam/jeffsmith")

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 usrPath = L"WinNT://Fabrikam/jeffsmith";
LPWSTR grpPath = L"WinNT://Fabrikam/Administrators";

hr = ADsGetObject(grpPath, IID_IADsGroup, (void**)&pGroup);
if(FAILED(hr)){goto Cleanup;}

hr = pGroup->Remove(CComBSTR(usrPath));
if(FAILED(hr)){goto Cleanup;}

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

要求

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

另请参阅

ADSI 错误代码

IADsGroup

IADsGroup 属性方法

IADsMembers