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 |