GetGPOList 関数は、指定したユーザーまたはコンピューターに対する GPO の一覧を取得する。(Unicode)
GetGPOListW hToken, lpName, lpHostName, lpComputerName, dwFlags, pGPOList
hToken : [intptr] LogonUser、CreateRestrictedToken、DuplicateToken、OpenProcessToken、OpenThreadToken 関数から返される、ユーザーまたはコンピューターのトークン。このトークンには TOKEN_IMPERSONATE と TOKEN_QUERY のアクセス権が必要である。詳細は Access Rights for Access-Token Objects および以下の解説セクションを参照。このパラメータが NULL の場合、lpName と lpHostName パラメータに値を指定する必要がある。 lpName : [wstr] 完全修飾識別名形式のユーザーまたはコンピューター名へのポインタ (例: "CN=user, OU=users, DC=contoso, DC=com")。hToken パラメータが NULL でない場合、このパラメータは NULL でなければならない。 lpHostName : [wstr] DNS ドメイン名 (推奨) またはドメインコントローラー名。ドメインコントローラー名は DsGetDcName 関数の flags パラメータに DS_DIRECTORY_SERVICE_REQUIRED を指定して取得できる。hToken パラメータが NULL でない場合、このパラメータは NULL でなければならない。 lpComputerName : [wstr] サイト位置を決定するために使うコンピューター名へのポインタ。名前の形式は "\\computer_name"。このパラメータが NULL の場合、ローカルコンピューター名が使われる。 dwFlags : [int] 情報取得の制御に使う追加フラグを指定する値。GPO_LIST_FLAG_MACHINE を指定すると、関数はコンピューターのポリシー情報を取得する。GPO_LIST_FLAG_MACHINE を指定しない場合、関数はユーザーのポリシー情報を取得する。GPO_LIST_FLAG_SITEONLY を指定すると、関数はコンピューターまたはユーザーのサイト情報のみを返す。 pGPOList : [var] GPO 構造体のリストを受け取るポインタ。詳細は GROUP_POLICY_OBJECT を参照。
(プラグイン / モジュール : userenv.dll)
GetGPOList 関数は、指定したユーザーまたはコンピューターに対する GPO の一覧を取得する。(Unicode) [戻り値] 関数が成功した場合は 0 以外の値を返し、失敗した場合は 0 を返す。拡張エラー情報を取得するには GetLastError を呼び出す。 [備考] GetGPOList 関数は、ユーザーまたはコンピューターの代理として動作するサービスで使うことを意図している。サービスはこの関数を呼び出して GPO の一覧を取得し、各 GPO をサービス固有のポリシーについて確認する。トークンを指定してこの関数を呼び出すと最も正確な一覧が得られる。システムはユーザーまたはコンピューターのためのアクセスチェックを実行できる。ユーザーまたはコンピューター名とドメインコントローラー名を指定して呼び出す方がトークンを指定するより高速である。ただし、トークンを指定しない場合、システムは呼び出し側のセキュリティアクセスを使うため、対象のユーザーまたはコンピューターに対して一覧が完全に正確でない可能性がある。GetGPOList を呼び出してコンピューター向けの最も正確な GPO 一覧を取得するには、呼び出し側はコンピュータードメイン内の各 OU とサイトに対する読み取りアクセス権、およびそのドメインのサイト、ドメイン、または OU にリンクされているすべての GPO に対する読み取りおよびグループポリシー適用アクセス権を持っている必要がある。呼び出し側の例としては、lpName パラメータで指定されたコンピューター上で実行中のサービスが挙げられる。GPO 一覧を取得するもう 1 つの方法は、RsopPlanningModeProvider WMI クラスの RsopCreateSession メソッドを呼び出すことである。このメソッドは仮想的なシナリオでコンピューターまたはユーザーアカウントの結果ポリシーデータを生成できる。GPO リストの処理を終えたら FreeGPOList 関数を呼び出して解放すること。一般的に、次のコード例のようにユーザー向けの GPO 一覧を取得するときはトークンを指定して GetGPOList を呼び出すべきである。 (以下省略)
| プラグイン / モジュール | userenv.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の userenv.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_userenv_gen2.hs |