Win32 API 日本語リファレンス
ホームSystem.GroupPolicy › IGPM

IGPM

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDf5fae809-3bd6-4da9-a65e-17665b41d763継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

IGPM インターフェイスは、グループポリシー管理コンソール (GPMC) の他のインターフェイスにアクセスするためのメソッドと、各種の検索操作を実行できる他のオブジェクトを作成するメソッドを提供します。

メソッド 12

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT GetDomain(LPWSTR bstrDomain, LPWSTR bstrDomainController, INT lDCFlags, IGPMDomain** pIGPMDomain)

指定したドメインに対応する GPMDomain オブジェクトを作成して返します。

bstrDomainLPWSTRin文字列として指定するドメインの名前。contoso.com のような完全な DNS (Domain Name System) 名である必要があります。
bstrDomainControllerLPWSTRin

指定する場合は、そのドメインで使用するドメインコントローラーの名前。名前は DNS 名または NetBIOS 名を指定できます。指定しない場合、このメソッドはプライマリドメインコントローラー (PDC) を使用します。詳細については、lDCFlags パラメーターを参照してください。

スクリプト: ドメインコントローラーを指定しない場合、このパラメーターには空文字列 ("") を渡す必要があります。

lDCFlagsINTin

ドメインのドメインコントローラーを特定するために使用するフラグ。GPM_USE_ANYDCGPM_USE_PDC、または GPM_DONOTUSE_W2KDC を指定できます。

このパラメーターを 0 に設定し、bstrDomainController を指定した場合、このメソッドは指定された bstrDomainController を使用します。それ以外の場合は PDC を使用します。

pIGPMDomainIGPMDomain**outIGPMDomain インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMDomain オブジェクトへの参照を返します。

VB

GPMDomain オブジェクトへの参照を返します。

解説(Remarks)

重要: この関数を呼び出すと、基盤となる LDAP トラフィックは SSL ではなく Kerberos によって暗号化されます。

このメソッドではサイト SOM を検索できません。この種類のクエリを実行するには、 IGPM::GetSitesContainer メソッドを呼び出してください。

vtbl 8 HRESULT GetBackupDir(LPWSTR bstrBackupDir, IGPMBackupDir** pIGPMBackupDir)

GPMBackupDir オブジェクトを作成して返します。このオブジェクトを使用して GPMBackup オブジェクトおよび GPMBackupCollection オブジェクトにアクセスできます。

bstrBackupDirLPWSTRin必須。GPO (グループポリシーオブジェクト) のバックアップが格納されているファイルシステムディレクトリの名前。ディレクトリは既に存在している必要があります。
pIGPMBackupDirIGPMBackupDir**outIGPMBackupDir インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMBackupDir オブジェクトへの参照を返します。

VB

GPMBackupDir オブジェクトへの参照を返します。
vtbl 9 HRESULT GetSitesContainer(LPWSTR bstrForest, LPWSTR bstrDomain, LPWSTR bstrDomainController, INT lDCFlags, IGPMSitesContainer** ppIGPMSitesContainer)

サイトを開いてクエリを実行するための GPMSitesContainer オブジェクトを作成して返します。

bstrForestLPWSTRin必須。サイトにアクセスするフォレストの完全な DNS 名。これはフォレストルートドメインの名前です。null 終端文字列を使用します。
bstrDomainLPWSTRinサイトにアクセスするドメインの名前。指定する場合、example.microsoft.com のような完全な DNS (Domain Name Server) 名である必要があります。bstrDomain パラメーターにドメインを指定すると、グループポリシー管理コンソール (GPMC) はそのドメインを介してサイトにアクセスします。ドメインを指定しない場合、GPMC は bstrForest パラメーターで指定されたフォレストを介してサイトにアクセスします。null 終端文字列を使用します。
bstrDomainControllerLPWSTRin指定する場合は、bstrDomain パラメーターで指定したドメインで使用するドメインコントローラーの名前。名前は DNS 名または NetBIOS 名を指定できます。指定しない場合、このメソッドはプライマリドメインコントローラー (PDC) を使用します。null 終端文字列を使用します。
lDCFlagsINTinドメインのドメインコントローラーを特定するために使用するフラグ。現在サポートされている値は GPM_USE_ANYDC のみです。このパラメーターを 0 に設定し、bstrDomainController を指定した場合、このメソッドは指定されたドメインコントローラーを使用します。それ以外の場合は PDC を使用します。
ppIGPMSitesContainerIGPMSitesContainer**outIGPMSitesContainer インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMSitesContainer オブジェクトへの参照を返します。

VB

GPMSitesContainer オブジェクトへの参照を返します。
vtbl 10 HRESULT GetRSOP(GPMRSOPMode gpmRSoPMode, LPWSTR bstrNamespace, INT lFlags, IGPMRSOP** ppIGPMRSOP)

GPMRSOP を作成して返します。RSoP (ポリシーの結果セット) のモードと WMI (Windows Management Instrumentation) 名前空間を指定できます。

gpmRSoPModeGPMRSOPModein

必須。オブジェクトを開くモード。次のモードがサポートされます。

rsopPlanning

RSoP 計画モードを指定します。

rsopLogging

RSoP ログモードを指定します。

rsopUnknown

bstrNamespace パラメーターを指定した場合にのみ有効です。

クエリを実行するには、RSoP 計画モードには Windows Server を実行しているドメインコントローラーが必要です。

bstrNamespaceLPWSTRinIGPMRSOPGPMRSOPGPMRSOP の WMI 名前空間。null 終端文字列を使用します。このパラメーターには NULL を指定できます。名前空間の取得方法の詳細については、「解説」セクションを参照してください。
lFlagsINTinこのパラメーターは 0 である必要があります。
ppIGPMRSOPIGPMRSOP**outIGPMRSOP インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMRSOP オブジェクトへの参照を返します。

VB

GPMRSOP オブジェクトへの参照を返します。

解説(Remarks)

WMI 名前空間を取得するには、IGPMRSOP インターフェイスの Namespace プロパティメソッドを呼び出します。または、 RsopLoggingModeProvider および RsopPlanningModeProvider WMI クラスの RsopCreateSession メソッドを呼び出します。これらのメソッドの詳細については、グループポリシーのドキュメントを参照してください。

vtbl 11 HRESULT CreatePermission(LPWSTR bstrTrustee, GPMPermissionType perm, VARIANT_BOOL bInheritable, IGPMPermission** ppPerm)

トラスティ (ユーザー、コンピューター、セキュリティグループなど) と、単一のオブジェクト (GPO、SOM、WMI フィルターなど) に適用される権限を表すインターフェイスまたはオブジェクトを作成して返します。

bstrTrusteeLPWSTRin必須。トラスティ名。このパラメーターには、アカウントのセキュリティ識別子 (SID) を指定する文字列を渡すことができます。また、"Engineering\JSmith" のような SAM (Security Accounts Manager) アカウント名を指定することもできます。
permGPMPermissionTypein

必須。トラスティに使用する権限。次のポリシー関連の権限がサポートされます。各権限の値は、GPO に適用される 1 つ以上の アクセス権を表します。

次の GPO 権限がサポートされます。

permGPOApply

トラスティは GPO を適用できます。この値は、ユーザーに対して READ および APPLY のグループポリシーアクセス権が「許可」に設定されている状態に対応します。

permGPORead

トラスティは GPO を読み取ることができます。この値は、ユーザーに対して READ のグループポリシーアクセス権が「許可」に設定されている状態に対応します。

permGPOEdit

トラスティは GPO のポリシー設定を読み取り、編集できます。この値は、ユーザーに対して READ、WRITE、CREATE CHILD OBJECT、DELETE CHILD OBJECT のグループポリシーアクセス権が「許可」に設定されている状態に対応します。

permGPOEditSecurityAndDelete

トラスティは GPO の権限を読み取り、編集し、削除できます。この値は、permGPOEdit で指定されるグループポリシーアクセス権に加えて、DELETE、MODIFY PERMISSIONS、MODIFY OWNER の各アクセス権がユーザーに対して「許可」に設定されている状態に対応します。

次の WMI フィルター権限がサポートされます。

permWMIFilterEdit

トラスティは WMI フィルターを編集できます。

permWMIFilterFullControl

トラスティは WMI フィルターに対するフルコントロールを持ちます。

次の SOM (scope of management) 権限がサポートされます。

permSOMLink

トラスティは GPO を SOM にリンクできます。サイト、ドメイン、OU に適用されます。

permSOMLogging

トラスティは SOM の RSoP ログデータを生成できます。ドメインと OU に適用されます。

permSOMPlanning

トラスティは SOM の RSoP 計画データを生成できます。ドメインと OU に適用されます。

permSOMWMICreate

トラスティはドメイン内に WMI フィルターを作成できます。ドメインにのみ適用されます。

permSOMWMIFullControl

トラスティはドメイン内のすべての WMI フィルターに対するフルコントロールを持ちます。ドメインにのみ適用されます。

permSOMGPOCreate

トラスティはドメイン内に GPO を作成できます。ドメインにのみ適用されます。

bInheritableVARIANT_BOOLin
C++ VARIANT_BOOLVARIANT_TRUE の場合、子は権限を継承します。このパラメーターが意味を持つのは、 IGPMSecurityInfo::Add メソッドを使用してセキュリティ情報に権限を追加する場合のみである点に注意してください。検索では、このパラメーターは無視されます。
JScript true の場合、子は権限を継承します。このパラメーターが意味を持つのは、 GPMSecurityInfo.Add メソッドを使用してセキュリティ情報に権限を追加する場合のみである点に注意してください。検索では、このパラメーターは無視されます。
ppPermIGPMPermission**outIGPMPermission インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMPermission オブジェクトへの参照を返します。

VB

GPMPermission オブジェクトへの参照を返します。

解説(Remarks)

アクセス制御リスト (ACL)、アクセス権、および Windows オブジェクトへのアクセスを制御するセキュリティモデルの詳細については、Access Control を参照してください。セキュリティグループの詳細については、Active Directory プログラマーズガイドの How Security Groups are Used in Access Control を参照してください。

vtbl 12 HRESULT CreateSearchCriteria(IGPMSearchCriteria** ppIGPMSearchCriteria)

グループポリシー管理コンソール (GPMC) のインターフェイスを使用して検索操作を実行する際に使用する条件を表す GPMSearchCriteria を作成して返します。

ppIGPMSearchCriteriaIGPMSearchCriteria**outIGPMSearchCriteria インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMSearchCriteria オブジェクトへの参照を返します。

VB

GPMSearchCriteria オブジェクトへの参照を返します。
vtbl 13 HRESULT CreateTrustee(LPWSTR bstrTrustee, IGPMTrustee** ppIGPMTrustee)

トラスティに関する情報を取得できる GPMTrustee を作成して返します。

bstrTrusteeLPWSTRin必須。トラスティ名またはセキュリティ識別子 (SID)。名前は Exampledomain\Someone のような、SAM (Security Accounts Manager) と互換性のある形式で指定します。
ppIGPMTrusteeIGPMTrustee**outIGPMTrustee インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMTrustee オブジェクトへの参照を返します。

VB

GPMTrustee オブジェクトへの参照を返します。

解説(Remarks)

ポリシー関連の権限の詳細については、 IGPM::CreatePermission を参照してください。セキュリティグループの詳細については、Active Directory プログラマーズガイドの How Security Groups are Used in Access Control を参照してください。

vtbl 14 HRESULT GetClientSideExtensions(IGPMCSECollection** ppIGPMCSECollection)

ローカルコンピューターに登録されているグループポリシーのクライアントサイド拡張 (CSE) を列挙するための GPMCSECollection オブジェクトを作成して返します。

ppIGPMCSECollectionIGPMCSECollection**outIGPMCSECollection インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMCSECollection オブジェクトへの参照を返します。

VB

GPMCSECollection オブジェクトへの参照を返します。
vtbl 15 HRESULT GetConstants(IGPMConstants** ppIGPMConstants)

複数のグループポリシー管理コンソール (GPMC) 定数の値を取得できる GPMConstants オブジェクトを作成して返します。

ppIGPMConstantsIGPMConstants**outIGPMConstants インターフェイスへのポインターのアドレス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMConstants オブジェクトへの参照を返します。

VB

GPMConstants オブジェクトへの参照を返します。
vtbl 16 HRESULT GetMigrationTable(LPWSTR bstrMigrationTablePath, IGPMMigrationTable** ppMigrationTable)

指定したパスにある移行テーブルを読み込みます。

bstrMigrationTablePathLPWSTRin読み込む移行テーブルのパス。null 終端文字列を使用します。
ppMigrationTableIGPMMigrationTable**out移行テーブルのエントリを格納した移行テーブルインターフェイス。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMMigrationTable オブジェクトへの参照を返します。

VB

GPMMigrationTable オブジェクトへの参照を返します。
vtbl 17 HRESULT CreateMigrationTable(IGPMMigrationTable** ppMigrationTable)

空の移行テーブルを作成します。

ppMigrationTableIGPMMigrationTable**outエントリを含まない、作成された移行テーブルを受け取ります。IGPMMigrationTable を参照してください。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。

JScript

GPMMigrationTable オブジェクトへの参照を返します。

VB

GPMMigrationTable オブジェクトへの参照を返します。
vtbl 18 HRESULT InitializeReporting(LPWSTR bstrAdmPath)

InitializeReporting メソッドは、.adm ファイルを検索する場所を設定します。このメソッドは、レポート機能を非同期に初期化します。

bstrAdmPathLPWSTRin.adm ファイルを検索する場所。null 終端文字列を使用します。

戻り値

C++

成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IGPM "{F5FAE809-3BD6-4DA9-A65E-17665B41D763}"
#usecom global IGPM IID_IGPM "{F5694708-88FE-4B35-BABF-E56162D5FBC8}"
#comfunc global IGPM_GetDomain                7 wstr,wstr,int,sptr
#comfunc global IGPM_GetBackupDir             8 wstr,sptr
#comfunc global IGPM_GetSitesContainer        9 wstr,wstr,wstr,int,sptr
#comfunc global IGPM_GetRSOP                  10 int,wstr,int,sptr
#comfunc global IGPM_CreatePermission         11 wstr,int,int,sptr
#comfunc global IGPM_CreateSearchCriteria     12 sptr
#comfunc global IGPM_CreateTrustee            13 wstr,sptr
#comfunc global IGPM_GetClientSideExtensions  14 sptr
#comfunc global IGPM_GetConstants             15 sptr
#comfunc global IGPM_GetMigrationTable        16 wstr,sptr
#comfunc global IGPM_CreateMigrationTable     17 sptr
#comfunc global IGPM_InitializeReporting      18 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。