GetGPOListW 関数 (userenv.h)
GetGPOList 関数は、指定したユーザーまたはコンピューターの GPO の一覧を取得します。 この関数は、2 つの方法で呼び出すことができます。1 つ目は、ユーザーまたはコンピューターのトークンを使用するか、2 つ目に、ユーザーまたはコンピューターの名前とドメイン コントローラーの名前を使用する方法です。
構文
USERENVAPI BOOL GetGPOListW(
[in] HANDLE hToken,
[in] LPCWSTR lpName,
[in] LPCWSTR lpHostName,
[in] LPCWSTR lpComputerName,
[in] DWORD dwFlags,
[out] PGROUP_POLICY_OBJECTW *pGPOList
);
パラメーター
[in] hToken
このパラメーターが NULL
[in] lpName
完全修飾識別名形式 ("CN=ユーザー、OU=ユーザー、DC=contoso、DC=com") のユーザーまたはコンピューター名へのポインター。
[in] lpHostName
DNS ドメイン名 (優先) またはドメイン コントローラー名。 ドメイン コントローラー名は、DsGetDcName 関数を使用して取得でき、フラグ パラメーターに DS_DIRECTORY_SERVICE_REQUIRED を指定します。
[in] lpComputerName
サイトの場所を決定するために使用するコンピューターの名前へのポインター。 名前の形式は "\\computer_name" です。 このパラメーターが NULL
[in] dwFlags
情報の取得を制御するために使用される追加のフラグを指定する値。 GPO_LIST_FLAG_MACHINEを指定すると、関数はコンピューターのポリシー情報を取得します。 GPO_LIST_FLAG_MACHINEを指定しない場合、関数はユーザーのポリシー情報を取得します。
GPO_LIST_FLAG_SITEONLY 指定すると、関数はコンピューターまたはユーザーのサイト情報のみを返します。
[out] pGPOList
GPO 構造体の一覧を受け取るポインター。 詳細については、GROUP_POLICY_OBJECTを参照してください。
戻り値
関数が成功した場合、戻り値は 0 以外です。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
備考
GetGPOList 関数は、ユーザーまたはコンピューターに代わって動作するサービスで使用することを目的としています。 サービスはこの関数を呼び出して GPO の一覧を取得し、各 GPO でサービス固有のポリシーを確認します。
トークンを使用してこの関数を呼び出すと、最も正確なリストが提供されます。 システムは、ユーザーまたはコンピューターのアクセス チェックを実行できます。 ユーザーまたはコンピューター名とドメイン コントローラー名を使用してこの関数を呼び出す方が、トークンを使用して呼び出すよりも高速です。 ただし、トークンが指定されていない場合、システムは呼び出し元のセキュリティ アクセスを使用します。つまり、目的のユーザーまたはコンピューターのリストが完全に正しくない可能性があります。
GetGPOList
FreeGPOList 関数を呼び出して、GPO リストの処理が完了したら解放します。
一般に、次のコード例に示すように、ユーザー GPO の一覧を取得するときにトークンを使用して GetGPOList を呼び出す必要があります。
LPGROUP_POLICY_OBJECT pGPOList;
if (GetGPOList (hToken, NULL, NULL, NULL, 0, &pGPOList))
{
// Perform processing here.
//
// Free the GPO list when you finish processing.
FreeGPOList (pGPOList);
}
通常、コンピューターの GPO の一覧を取得するには、次のコード スニペットに示すように、コンピューター名とドメイン コントローラー名 GetGPOList を呼び出すことができます。
LPGROUP_POLICY_OBJECT pGPOList;
if (GetGPOList (NULL, lpMachineName, lpHostName, lpMachineName, GPO_LIST_FLAG_MACHINE, &pGPOList))
{
// Perform processing here.
//
// Free the GPO list when you finish processing.
FreeGPOList (pGPOList);
}
特定のユーザーまたはコンピューターと拡張機能に適用されている GPO の一覧を取得するには、GetAppliedGPOList 関数を呼び出します。
手記
userenv.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetGPOList を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
サポートされる最小サーバー | Windows Server 2008 |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | userenv.h |
ライブラリ | Userenv.lib |
DLL | Userenv.dll |
関連項目
FreeGPOList を