IGPMDomain2
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
特定のドメインを表し、Group Policy Management Console (GPMC) インターフェイスを使用する際に、管理スコープ (SOM) オブジェクトの照会、スターター GPO の作成・復元・照会、および WMI フィルターの作成・照会を行うメソッドを提供します。
メソッド 6
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
GPMStarterGPO オブジェクトを作成して取得します。
| ppnewTemplate | IGPMStarterGPO** | out | GPMStarterGPO インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMStarterGPO オブジェクトへの参照を返します。VB
GPMStarterGPO オブジェクトへの参照を返します。GPMStarterGPO オブジェクトから GPMGPO オブジェクトを作成して取得します。
| pGPOTemplate | IGPMStarterGPO* | in | 新しいグループポリシーオブジェクト (GPO) の作成元となる GPMStarterGPO オブジェクトへのポインター。 |
| ppnewGPO | IGPMGPO** | out | 新しい GPO を表す GPMGPO オブジェクトへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMGPO オブジェクトへの参照を返します。VB
GPMGPO オブジェクトへの参照を返します。指定したグループポリシーオブジェクト ID を持つ GPMStarterGPO オブジェクトを取得します。
| bstrGuid | LPWSTR | in | 必須。アクセスする GPO の ID を表す GUID。null 終端文字列を使用します。 |
| ppTemplate | IGPMStarterGPO** | out | 指定したスターター GPO の ID に対応する IGPMStarterGPO インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMStarterGPO オブジェクトへの参照を返します。VB
GPMStarterGPO オブジェクトへの参照を返します。GPMStarterGPO オブジェクトの検索を実行します。
| pIGPMSearchCriteria | IGPMSearchCriteria* | in | 検索に適用する条件へのポインター。 |
| ppIGPMTemplateCollection | IGPMStarterGPOCollection** | out | 検索で見つかった GPO を表す IGPMStarterGPOCollection インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMStarterGPOCollection オブジェクトへの参照を返します。VB
GPMStarterGPOCollection オブジェクトへの参照を返します。スターターグループポリシーオブジェクト (GPO) のキャビネット (CAB) ファイルを開き、ドメインにインポートします。
| bstrLoadFile | LPWSTR | in | 必須。読み込む CAB ファイルの名前。null 終端文字列を使用します。 |
| bOverwrite | VARIANT_BOOL | in | 既存のバージョンのスターター GPO を上書きするかどうかを指定します。CAB からスターター GPO を読み込むと、その CAB の作成元となった元のスターター GPO の ID が保持されます。そのため、LoadStarterGPO メソッドの呼び出し時に、同じスターター GPO のバージョンが既にドメインに存在している場合があります。 VARIANT_FALSE既存のスターター GPO を上書きしません。 VARIANT_TRUE既存のスターター GPO を上書きします。 |
| pvarGPMProgress | VARIANT* | in | コピー操作の進行状況に関するステータス通知をクライアントが受け取れるようにする IGPMAsyncProgress インターフェイスへのポインターを指定します。クライアントが非同期通知を受け取らない場合、このパラメーターは NULL でなければなりません。 |
| pvarGPMCancel | VARIANT* | out | クライアントがコピー操作をキャンセルするために使用できる IGPMAsyncCancel インターフェイスへのポインターを受け取ります。pvarGPMProgress が NULL の場合、このパラメーターは返されません。 |
| ppIGPMResult | IGPMResult** | out | 読み込み操作の結果を表す IGPMResult インターフェイスへのポインターのアドレス。このインターフェイスは、 IGPMStarterGPO インターフェイスおよび IGPMStatusMsgCollection インターフェイスへのポインターを含みます。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMResult オブジェクトへの参照を返します。VB
GPMResult オブジェクトへの参照を返します。GPMStarterGPOBackup オブジェクトからスターターグループポリシーオブジェクト (GPO) を復元します。
| pIGPMTmplBackup | IGPMStarterGPOBackup* | in | 復元する GPMStarterGPOBackup オブジェクトへのポインター。 |
| pvarGPMProgress | VARIANT* | in | 復元操作の進行状況に関するステータス通知をクライアントが受け取れるようにする IGPMAsyncProgress インターフェイスへのポインターを指定します。非同期通知を受け取るには、呼び出し元がこのインターフェイスを作成し、そのインターフェイスポインターをこのパラメーターに渡す必要があります。クライアントが非同期通知を受け取らない場合、このパラメーターは NULL でなければなりません。このパラメーターが NULL でない場合、メソッドは非同期に実行され、NULL の場合は同期的に実行されます。 |
| pvarGPMCancel | VARIANT* | out | クライアントが復元操作をキャンセルするために使用できる IGPMAsyncCancel インターフェイスへのポインターを受け取ります。pvarGPMProgress が NULL の場合、このパラメーターは返されません。 |
| ppIGPMResult | IGPMResult** | out | 復元操作の結果を表す IGPMResult インターフェイスへのポインターのアドレス。このインターフェイスは、 IGPMstarterGPO インターフェイスおよび IGPMStatusMsgCollection インターフェイスへのポインターを含みます。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMResult オブジェクトへの参照を返します。VB
GPMResult オブジェクトへの参照を返します。解説(Remarks)
復元操作は、特定の GPO の内容をバックアップ実行時の状態に戻します。
操作が成功したかどうかを判断するには、このメソッドが返すコードに加えて、 IGPMResult::OverallStatus メソッドが返すコードも確認する必要があります。 OverallStatus は操作全体のステータスコードを返します。操作中にエラーが発生しなかった場合は成功コードを返し、それ以外の場合は失敗コードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IGPMDomain2 "{7CA6BB8B-F1EB-490A-938D-3C4E51C768E6}" #usecom global IGPMDomain2 IID_IGPMDomain2 "{}" #comfunc global IGPMDomain2_CreateStarterGPO 17 sptr #comfunc global IGPMDomain2_CreateGPOFromStarterGPO 18 sptr,sptr #comfunc global IGPMDomain2_GetStarterGPO 19 wstr,sptr #comfunc global IGPMDomain2_SearchStarterGPOs 20 sptr,sptr #comfunc global IGPMDomain2_LoadStarterGPO 21 wstr,int,var,var,sptr #comfunc global IGPMDomain2_RestoreStarterGPO 22 sptr,var,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IGPMDomain2 "{7CA6BB8B-F1EB-490A-938D-3C4E51C768E6}" #usecom global IGPMDomain2 IID_IGPMDomain2 "{}" #comfunc global IGPMDomain2_CreateStarterGPO 17 sptr #comfunc global IGPMDomain2_CreateGPOFromStarterGPO 18 sptr,sptr #comfunc global IGPMDomain2_GetStarterGPO 19 wstr,sptr #comfunc global IGPMDomain2_SearchStarterGPOs 20 sptr,sptr #comfunc global IGPMDomain2_LoadStarterGPO 21 wstr,int,sptr,sptr,sptr #comfunc global IGPMDomain2_RestoreStarterGPO 22 sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。