次の方法で共有


IADsGroup::IsMember メソッド (iads.h)

IADsGroup::IsMember メソッドは、ディレクトリ サービス オブジェクトがグループの即時メンバーであるかどうかを判断します。 このメソッドは、入れ子になったグループのメンバーシップを確認しません。

構文

HRESULT IsMember(
        BSTR         bstrMember,
  [out] VARIANT_BOOL *bMember
);

パラメーター

bstrMember

メンバーシップを確認するディレクトリ サービス オブジェクトの ADsPath を格納します。 この ADsPath は、グループへのバインドに使用されるのと同じ ADSI プロバイダーを使用する必要があります。 たとえば、グループが LDAP プロバイダーを使用するようにバインドされている場合、この ADsPath では LDAP プロバイダーも使用する必要があります。

[out] bMember

オブジェクトがグループの即時メンバーである場合はVARIANT_TRUEを受け取るVARIANT_BOOL値へのポインター。それ以外の場合はVARIANT_FALSE

戻り値

このメソッドは、S_OKを含む標準の戻り値 サポートします。 詳細については、「 ADSI エラー コード」を参照してください。

注釈

WinNT プロバイダーを介してメンバー SID を使用してグループに対してセキュリティ プリンシパルを追加または削除できますが、メンバーが WinNT プロバイダーを通じてグループに属している場合、 IADsGroup.IsMember メソッドでは、検証に SID ADsPath の使用はサポートされません。

IADsGroup::IsMember メソッドは、グループとオブジェクトが同じドメインにある場合にのみ正しく機能します。 オブジェクトがグループとは異なるドメインにある場合、 IADsGroup::IsMember は常に VARIANT_FALSEを返します。

次のコード例では、"jeffsmith" ユーザーを "Fabrikam" ドメインの "Administrators" グループに追加し、そのユーザーがグループのメンバーになったことを報告します。

Dim grp As IADsGroup
On Error GoTo Cleanup

Set grp = GetObject("WinNT://Microsoft/Administrators")
grp.Add ("WinNT://Fabrikam/jeffsmith")
Debug.Print grp.IsMember("WinNT://Fabrikam/jeffsmith ") ' Should be TRUE.

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";
BSTR bstr = NULL;

hr = ADsGetObject(adsPath, IID_IADsGroup, (void**)&pGroup);

if(FAILED(hr))
{
    goto Cleanup;
}

hr = pGroup->get_Description(&bstr);
if(FAILED(hr))
{
    goto Cleanup;
}

printf("Description: %S\n",bstr);
SysFreeString(bstr);

VARIANT_BOOL inG=false;
hr = pGroup->IsMember(CComBSTR("WinNT://Microsoft/SecUser"), &inG);

if (inG ) 
{
    printf("already in the group.\n");
}
else 
{
    hr = pGroup->Add(CComBSTR("WinNT://Microsoft/SecUser"));
    if(FAILED(hr))
    {
        goto Cleanup;
    }

    printf("user added.\n");
}

Cleanup:
if(pGroup)
{
    pGroup->Release();
}
if(bstr)
{
    SysFreeString(bstr);
}

return hr;

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー iads.h
[DLL] Activeds.dll

こちらもご覧ください

ADSI エラー コード

IADsGroup

IADsGroup プロパティ メソッド

IADsMembers