GetGPOListW

GetGPOList 関数は、指定したユーザーまたはコンピューターに対する GPO の一覧を取得する。(Unicode)

GetGPOListW hToken, lpName, lpHostName, lpComputerName, dwFlags, pGPOList

hToken : [intptr] LogonUser、CreateRestrictedTokenDuplicateTokenOpenProcessTokenOpenThreadToken 関数から返される、ユーザーまたはコンピューターのトークン。このトークンには 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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の userenv.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_userenv_gen2.hs