IGPMDomain
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
特定のドメインを表し、Group Policy Management Console (GPMC) インターフェイスを使用する際に、管理スコープ (SOM) オブジェクトの照会、GPO の作成・復元・照会、WMI フィルターの作成・照会を行うためのメソッドを提供します。
メソッド 10
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
| pVal | LPWSTR* | out | このドメインで使用されているドメインコントローラー名を受け取るポインタである。 |
| pVal | LPWSTR* | out | このドメインの DNS 名を受け取るポインタである。 |
既定の表示名を持つ GPMGPO オブジェクトを作成して取得します。通常、呼び出し元はこのメソッドを呼び出した直後に表示名を設定します。
| ppNewGPO | IGPMGPO** | out | IGPMGPO インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMGPO オブジェクトへの参照を返します。VB
GPMGPO オブジェクトへの参照を返します。指定されたグループポリシーオブジェクト (GPO) ID を持つ GPMGPO オブジェクトを取得します。グループポリシーオブジェクト ID は GUID で表されます。
| bstrGuid | LPWSTR | in | 必須。アクセスするグループポリシーオブジェクトの ID を表す GUID。null 終端文字列を使用します。 |
| ppGPO | IGPMGPO** | out | 指定されたグループポリシーオブジェクト ID とドメインに対応する IGPMGPO インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMGPO オブジェクトへの参照を返します。VB
GPMGPO オブジェクトへの参照を返します。ドメイン内の GPMGPO オブジェクトを検索し、GPMGPOCollection オブジェクトを返します。
| pIGPMSearchCriteria | IGPMSearchCriteria* | in | 検索に適用する GPMSearchCriteria オブジェクト。 検索に適用する条件へのポインター。 |
| ppIGPMGPOCollection | IGPMGPOCollection** | out | 検索で見つかった GPO を表す IGPMGPOCollection インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMGPOCollection オブジェクトへの参照を返します。VB
GPMGPOCollection オブジェクトへの参照を返します。解説(Remarks)
空の GPMSearchCriteria オブジェクトとは、条件が 1 つも追加されていないオブジェクトのことです。空の GPMSearchCriteria オブジェクトを渡すと、ドメイン内のすべての GPO が返されます。
GPMBackup オブジェクトからグループポリシーオブジェクト (GPO) を復元します。
| pIGPMBackup | IGPMBackup* | in | 復元する GPMBackup オブジェクトへのポインター。 |
| lDCFlags | INT | in | 検証に使用するフラグ。このパラメーターに 0 を指定すると、メソッドはドメインコントローラーを検証し、復元操作を実行できるかどうかを判定します。GPM_DONOT_VALIDATEDC を指定した場合、メソッドは DC を検証しません。このパラメーターは、ソフトウェアポリシー設定を含まない GPO では無視されます。検証の詳細については、「解説」セクションを参照してください。 |
| pvarGPMProgress | VARIANT* | in | 復元操作の進行状況に関する状態通知をクライアントが受け取れるようにする IGPMAsyncProgress インターフェイスへのポインターを指定します。非同期通知を受け取るには、呼び出し元がこのインターフェイスを作成し、そのインターフェイスポインターをこのパラメーターに渡す必要があります。クライアントが非同期通知を受け取らない場合、このパラメーターは NULL でなければなりません。このパラメーターが NULL でない場合、メソッドは非同期に実行され、NULL の場合は同期的に実行されます。 |
| pvarGPMCancel | VARIANT* | out | 復元操作をキャンセルするためにクライアントが使用できる IGPMAsyncCancel インターフェイスへのポインターを受け取ります。pvarGPMProgress が NULL の場合、このパラメーターは返されません。 |
| ppIGPMResult | IGPMResult** | out | 復元操作の結果を表す IGPMResult インターフェイスへのポインターのアドレス。このインターフェイスには、 IGPMGPO インターフェイスおよび IGPMStatusMsgCollection インターフェイスへのポインターが含まれます。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。現在のドメインコントローラーが古いバージョンの Windows Server を実行しており、かつバックアップされた GPO にソフトウェアポリシー設定が含まれている場合は、E_OPERATION_NOT_SUPPORTED_ONDC を返します。JScript
GPMResult オブジェクトへの参照を返します。VB
GPMResult オブジェクトへの参照を返します。解説(Remarks)
復元操作は、特定の GPO の内容をバックアップ実行時の状態に戻します。GPO へのリンクは管理スコープ (SOM) の属性であるため、復元操作でリンクが変更されることはありません。また、復元操作は WMI フィルター自体も変更しません。ただし、WMI フィルターへのリンクは GPO の属性であるため、復元操作によって WMI フィルターへのリンクは復元されます。
操作が成功したかどうかを判断するには、このメソッドが返すコードだけでなく、 IGPMResult::OverallStatus メソッドが返すコードも確認する必要があります。 OverallStatus は操作の全体的な状態コードを返します。操作中にエラーが発生しなかった場合は成功コードを返し、それ以外の場合は失敗コードを返します。
ベストプラクティスとして、復元操作では DC を検証することをお勧めします。
指定されたパスにあるドメインまたは組織単位 (OU) を表す IGPMSOM インターフェイスを取得します。
| bstrPath | LPWSTR | in | 管理スコープ (SOM) オブジェクトのパス。パスは完全修飾された識別名 (DN) である必要があります。パスには次の構文を使用します: (ou=MyOU,dc=domain_name,dc=com)。 C++: NULL を指定した場合、メソッドはドメインの IGPMSOM インターフェイスへのポインターを返します。 スクリプト: 空文字列 ("") を指定した場合、メソッドはドメインの IGPMSOM インターフェイスへのポインターを返します。 |
| ppSOM | IGPMSOM** | out | 指定されたパスにある IGPMSOM インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMSOM オブジェクトへの参照を返します。VB
GPMSOM オブジェクトへの参照を返します。ドメイン内の GPMSOM オブジェクト (ドメインおよび組織単位) を検索し、GPMSOMCollection オブジェクトを返します。
| pIGPMSearchCriteria | IGPMSearchCriteria* | in | 検索に適用する GPMSearchCriteria オブジェクト。 |
| ppIGPMSOMCollection | IGPMSOMCollection** | out | 検索で見つかった管理スコープ (SOM) を表す IGPMSOMCollection インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMSOMCollection オブジェクトへの参照を返します。VB
GPMSOMCollection オブジェクトへの参照を返します。解説(Remarks)
このメソッドではサイトの SOM を検索できません。この種の検索を行うには、 IGPMSitesContainer::SearchSites メソッドを呼び出してください。
指定されたパスの GPMWMIFilter オブジェクトを取得します。
| bstrPath | LPWSTR | in | 取得する GPMWMIFilter オブジェクトのパス。形式は次のとおりです: MSFT_SomFilter.Domain="<WMI フィルターのドメイン>", ID="<WMI フィルターを表す GUID>"。例: MSFT_SomFilter.Domain="example.microsoft.com", ID="{7ab06d20-5e0a-4de9-8170-13dea779a528}"。 |
| ppWMIFilter | IGPMWMIFilter** | out | IGPMWMIFilter インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMWMIFilter オブジェクトへの参照を返します。VB
GPMWMIFilter オブジェクトへの参照を返します。ドメイン内の GPMWMIFilter オブジェクトを検索し、GPMWMIFilterCollection オブジェクトを返します。
| pIGPMSearchCriteria | IGPMSearchCriteria* | in | Windows Management Instrumentation (WMI) フィルターでは検索条件を指定できないため、このパラメーターは NULL にするか、空の IGPMSearchCriteria インターフェイスを指す必要があります。 |
| ppIGPMWMIFilterCollection | IGPMWMIFilterCollection** | out | 検索で見つかった WMI フィルターを表す IGPMWMIFilterCollection インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMWMIFilterCollection オブジェクトへの参照を返します。VB
GPMWMIFilterCollection オブジェクトへの参照を返します。解説(Remarks)
空の GPMSearchCriteria オブジェクトとは、条件が 1 つも追加されていないオブジェクトのことです。空の GPMSearchCriteria オブジェクトを渡すと、すべての WMI フィルターが返されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IGPMDomain "{6B21CC14-5A00-4F44-A738-FEEC8A94C7E3}" #usecom global IGPMDomain IID_IGPMDomain "{}" #comfunc global IGPMDomain_get_DomainController 7 var #comfunc global IGPMDomain_get_Domain 8 var #comfunc global IGPMDomain_CreateGPO 9 sptr #comfunc global IGPMDomain_GetGPO 10 wstr,sptr #comfunc global IGPMDomain_SearchGPOs 11 sptr,sptr #comfunc global IGPMDomain_RestoreGPO 12 sptr,int,var,var,sptr #comfunc global IGPMDomain_GetSOM 13 wstr,sptr #comfunc global IGPMDomain_SearchSOMs 14 sptr,sptr #comfunc global IGPMDomain_GetWMIFilter 15 wstr,sptr #comfunc global IGPMDomain_SearchWMIFilters 16 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IGPMDomain "{6B21CC14-5A00-4F44-A738-FEEC8A94C7E3}" #usecom global IGPMDomain IID_IGPMDomain "{}" #comfunc global IGPMDomain_get_DomainController 7 sptr #comfunc global IGPMDomain_get_Domain 8 sptr #comfunc global IGPMDomain_CreateGPO 9 sptr #comfunc global IGPMDomain_GetGPO 10 wstr,sptr #comfunc global IGPMDomain_SearchGPOs 11 sptr,sptr #comfunc global IGPMDomain_RestoreGPO 12 sptr,int,sptr,sptr,sptr #comfunc global IGPMDomain_GetSOM 13 wstr,sptr #comfunc global IGPMDomain_SearchSOMs 14 sptr,sptr #comfunc global IGPMDomain_GetWMIFilter 15 wstr,sptr #comfunc global IGPMDomain_SearchWMIFilters 16 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。