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

IGPMDomain

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

公式ドキュメント

特定のドメインを表し、Group Policy Management Console (GPMC) インターフェイスを使用する際に、管理スコープ (SOM) オブジェクトの照会、GPO の作成・復元・照会、WMI フィルターの作成・照会を行うためのメソッドを提供します。

メソッド 10

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

vtbl 7 HRESULT get_DomainController(LPWSTR* pVal)
pValLPWSTR*outこのドメインで使用されているドメインコントローラー名を受け取るポインタである。
vtbl 8 HRESULT get_Domain(LPWSTR* pVal)
pValLPWSTR*outこのドメインの DNS 名を受け取るポインタである。
vtbl 9 HRESULT CreateGPO(IGPMGPO** ppNewGPO)

既定の表示名を持つ GPMGPO オブジェクトを作成して取得します。通常、呼び出し元はこのメソッドを呼び出した直後に表示名を設定します。

ppNewGPOIGPMGPO**outIGPMGPO インターフェイスへのポインターのアドレス。

戻り値

C++

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

JScript

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

VB

GPMGPO オブジェクトへの参照を返します。
vtbl 10 HRESULT GetGPO(LPWSTR bstrGuid, IGPMGPO** ppGPO)

指定されたグループポリシーオブジェクト (GPO) ID を持つ GPMGPO オブジェクトを取得します。グループポリシーオブジェクト ID は GUID で表されます。

bstrGuidLPWSTRin必須。アクセスするグループポリシーオブジェクトの ID を表す GUID。null 終端文字列を使用します。
ppGPOIGPMGPO**out指定されたグループポリシーオブジェクト ID とドメインに対応する IGPMGPO インターフェイスへのポインターのアドレス。

戻り値

C++

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

JScript

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

VB

GPMGPO オブジェクトへの参照を返します。
vtbl 11 HRESULT SearchGPOs(IGPMSearchCriteria* pIGPMSearchCriteria, IGPMGPOCollection** ppIGPMGPOCollection)

ドメイン内の GPMGPO オブジェクトを検索し、GPMGPOCollection オブジェクトを返します。

pIGPMSearchCriteriaIGPMSearchCriteria*in検索に適用する GPMSearchCriteria オブジェクト。 検索に適用する条件へのポインター。
ppIGPMGPOCollectionIGPMGPOCollection**out検索で見つかった GPO を表す IGPMGPOCollection インターフェイスへのポインターのアドレス。

戻り値

C++

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

JScript

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

VB

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

解説(Remarks)

空の GPMSearchCriteria オブジェクトとは、条件が 1 つも追加されていないオブジェクトのことです。空の GPMSearchCriteria オブジェクトを渡すと、ドメイン内のすべての GPO が返されます。

vtbl 12 HRESULT RestoreGPO(IGPMBackup* pIGPMBackup, INT lDCFlags, VARIANT* pvarGPMProgress, VARIANT* pvarGPMCancel, IGPMResult** ppIGPMResult)

GPMBackup オブジェクトからグループポリシーオブジェクト (GPO) を復元します。

pIGPMBackupIGPMBackup*in復元する GPMBackup オブジェクトへのポインター。
lDCFlagsINTin検証に使用するフラグ。このパラメーターに 0 を指定すると、メソッドはドメインコントローラーを検証し、復元操作を実行できるかどうかを判定します。GPM_DONOT_VALIDATEDC を指定した場合、メソッドは DC を検証しません。このパラメーターは、ソフトウェアポリシー設定を含まない GPO では無視されます。検証の詳細については、「解説」セクションを参照してください。
pvarGPMProgressVARIANT*in復元操作の進行状況に関する状態通知をクライアントが受け取れるようにする IGPMAsyncProgress インターフェイスへのポインターを指定します。非同期通知を受け取るには、呼び出し元がこのインターフェイスを作成し、そのインターフェイスポインターをこのパラメーターに渡す必要があります。クライアントが非同期通知を受け取らない場合、このパラメーターは NULL でなければなりません。このパラメーターが NULL でない場合、メソッドは非同期に実行され、NULL の場合は同期的に実行されます。
pvarGPMCancelVARIANT*out復元操作をキャンセルするためにクライアントが使用できる IGPMAsyncCancel インターフェイスへのポインターを受け取ります。pvarGPMProgressNULL の場合、このパラメーターは返されません。
ppIGPMResultIGPMResult**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 を検証することをお勧めします。

vtbl 13 HRESULT GetSOM(LPWSTR bstrPath, IGPMSOM** ppSOM)

指定されたパスにあるドメインまたは組織単位 (OU) を表す IGPMSOM インターフェイスを取得します。

bstrPathLPWSTRin

管理スコープ (SOM) オブジェクトのパス。パスは完全修飾された識別名 (DN) である必要があります。パスには次の構文を使用します: (ou=MyOU,dc=domain_name,dc=com)。

C++: NULL を指定した場合、メソッドはドメインの IGPMSOM インターフェイスへのポインターを返します。

スクリプト: 空文字列 ("") を指定した場合、メソッドはドメインの IGPMSOM インターフェイスへのポインターを返します。

ppSOMIGPMSOM**out指定されたパスにある IGPMSOM インターフェイスへのポインターのアドレス。

戻り値

C++

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

JScript

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

VB

GPMSOM オブジェクトへの参照を返します。
vtbl 14 HRESULT SearchSOMs(IGPMSearchCriteria* pIGPMSearchCriteria, IGPMSOMCollection** ppIGPMSOMCollection)

ドメイン内の GPMSOM オブジェクト (ドメインおよび組織単位) を検索し、GPMSOMCollection オブジェクトを返します。

pIGPMSearchCriteriaIGPMSearchCriteria*in検索に適用する GPMSearchCriteria オブジェクト。
ppIGPMSOMCollectionIGPMSOMCollection**out検索で見つかった管理スコープ (SOM) を表す IGPMSOMCollection インターフェイスへのポインターのアドレス。

戻り値

C++

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

JScript

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

VB

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

解説(Remarks)

このメソッドではサイトの SOM を検索できません。この種の検索を行うには、 IGPMSitesContainer::SearchSites メソッドを呼び出してください。

vtbl 15 HRESULT GetWMIFilter(LPWSTR bstrPath, IGPMWMIFilter** ppWMIFilter)

指定されたパスの GPMWMIFilter オブジェクトを取得します。

bstrPathLPWSTRin取得する GPMWMIFilter オブジェクトのパス。形式は次のとおりです: MSFT_SomFilter.Domain="<WMI フィルターのドメイン>", ID="<WMI フィルターを表す GUID>"。例: MSFT_SomFilter.Domain="example.microsoft.com", ID="{7ab06d20-5e0a-4de9-8170-13dea779a528}"。
ppWMIFilterIGPMWMIFilter**outIGPMWMIFilter インターフェイスへのポインターのアドレス。

戻り値

C++

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

JScript

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

VB

GPMWMIFilter オブジェクトへの参照を返します。
vtbl 16 HRESULT SearchWMIFilters(IGPMSearchCriteria* pIGPMSearchCriteria, IGPMWMIFilterCollection** ppIGPMWMIFilterCollection)

ドメイン内の GPMWMIFilter オブジェクトを検索し、GPMWMIFilterCollection オブジェクトを返します。

pIGPMSearchCriteriaIGPMSearchCriteria*inWindows Management Instrumentation (WMI) フィルターでは検索条件を指定できないため、このパラメーターは NULL にするか、空の IGPMSearchCriteria インターフェイスを指す必要があります。
ppIGPMWMIFilterCollectionIGPMWMIFilterCollection**out検索で見つかった WMI フィルターを表す IGPMWMIFilterCollection インターフェイスへのポインターのアドレス。

戻り値

C++

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

JScript

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

VB

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

解説(Remarks)

空の GPMSearchCriteria オブジェクトとは、条件が 1 つも追加されていないオブジェクトのことです。空の GPMSearchCriteria オブジェクトを渡すと、すべての WMI フィルターが返されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_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 不要)。