IGPMStarterGPO
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IGPMStarterGPO インターフェイスは、ディレクトリ サービス内のスターター グループポリシー オブジェクト (GPO) を管理するためのメソッドを提供します。
解説(Remarks)
GPMStarterGPO オブジェクトは GPMGPO2 オブジェクトに相当します。GPMStarterGPO オブジェクトは、1 つのスターター グループポリシー オブジェクト (GPO) のインスタンスを表します。
IGPMStarterGPO インターフェイスには、IGPMGPO2 インターフェイスに対応するものがない 3 つのプロパティがあります。
- Author プロパティには、テンプレートを作成した者の名前が格納されます。この属性はシステム テンプレートに適用されます。カスタム テンプレートの場合、この属性は空になります。この属性は読み取り専用です。
- Product プロパティには、そのテンプレートが管理対象として設計されている製品の名前が格納されます。たとえば、MS Office を構成するためのテンプレートが提供される場合があります。この属性はシステム テンプレートに適用されます。カスタム テンプレートの場合、この属性は空になります。この属性は読み取り専用です。
- Type プロパティは列挙値 GPMStarterGPOType であり、属性の種類を指定します。Type は、システム スターター グループポリシー オブジェクトまたはカスタム スターター グループポリシー オブジェクトのいずれかになります。
メソッド 21
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
| pVal | LPWSTR* | out | スターター GPO の表示名を受け取る文字列ポインタである。 |
| newVal | LPWSTR | in | スターター GPO に設定する新しい表示名を指定する。 |
| pVal | LPWSTR* | out | スターター GPO の説明テキストを受け取る文字列ポインタである。 |
| newVal | LPWSTR | in | スターター GPO に設定する新しい説明テキストを指定する。 |
| pVal | LPWSTR* | out | スターター GPO の作成者名を受け取る文字列ポインタである。 |
| pVal | LPWSTR* | out | スターター GPO に関連付けられた製品名を受け取る文字列ポインタである。 |
| pVal | DOUBLE* | out | スターター GPO の作成日時を表す値 (DATE 値) を受け取る。 |
| pVal | LPWSTR* | out | スターター GPO の ID (GUID) を受け取る文字列ポインタである。 |
| pVal | DOUBLE* | out | スターター GPO の最終更新日時を表す値 (DATE 値) を受け取る。 |
| pVal | GPMStarterGPOType* | out | スターター GPO の種別 (システムまたはカスタム) を表す GPMStarterGPOType 値を受け取る。 |
| pVal | WORD* | out | コンピューター構成のバージョン番号を受け取る。 |
| pVal | WORD* | out | ユーザー構成のバージョン番号を受け取る。 |
| pVal | LPWSTR* | out | スターター GPO のバージョンを表す文字列を受け取る文字列ポインタである。 |
現在のドメインのシステム ボリューム フォルダー (SysVol) から GPO を削除します。
戻り値
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
スターター GPO のすべての設定を 1 つの CAB ファイルに保存します。
| bstrSaveFile | LPWSTR | in | スターター GPO の保存先ファイルの名前。null 終端文字列を使用します。 |
| bOverwrite | VARIANT_BOOL | in | ファイルが既に存在する場合に上書きするかどうかを指定するブール値。 |
| bSaveAsSystem | VARIANT_BOOL | in | 保存の際にスターター GPO をシステム テンプレートに変換するかどうかを指定するブール値。既定値は VARIANT_FALSE で、システム スターター GPO として保存します。保存対象のスターター GPO がシステム スターター GPO である場合、このオプションは VARIANT_FALSE でなければなりません。システム スターター GPO に対して VARIANT_TRUE を指定すると、引数が無効であるというエラーが返されます。 |
| bstrLanguage | VARIANT* | in | 保存時にエクスポートされる、カスタム スターター GPO の言語固有のすべての文字列に対する MUI 言語コードを指定します。カスタム スターター GPO の文字列は、言語チェックを行わずに MUI リソースへ変換されます。bSaveAsSystem が VARIANT_FALSE の場合、このパラメーターは無視されます。このパラメーターが NULL の場合は、ユーザーの現在の言語コードが使用されます。 |
| bstrAuthor | VARIANT* | in | 新しいシステム スターター GPO の Author プロパティを指定します。bSaveAsSystem が VARIANT_FALSE の場合、このパラメーターは無視されます。 |
| bstrProduct | VARIANT* | in | 新しいシステム スターター GPO の Product プロパティを指定します。bSaveAsSystem が VARIANT_FALSE の場合、このパラメーターは無視されます。 |
| bstrUniqueID | VARIANT* | in | 新しいシステム スターター GPO の ID プロパティを指定します。このパラメーターが NULL の場合、新しい一意の ID が生成されます。bSaveAsSystem が VARIANT_FALSE の場合、このパラメーターは無視されます。 |
| bstrVersion | VARIANT* | in | 新しいシステム スターター GPO のスターター GPO バージョンを指定します。文字列の形式は、4 桁の数字・ドット・5 桁の数字でなければなりません。値が NULL の場合、バージョンは 1.0 に設定されます。bSaveAsSystem が VARIANT_FALSE の場合、このパラメーターは無視されます。 |
| pvarGPMProgress | VARIANT* | in | コピー操作の進行状況に関する状態通知をクライアントが受け取れるようにする IGPMAsyncProgress インターフェイスへのポインター。NULL でない場合、GenerateReport の呼び出しは非同期に処理され、pvarGPMCancel は IGPMAsyncCancel インターフェイスへのポインターを受け取ります。このパラメーターが NULL の場合、GenerateReport の呼び出しは同期的に処理されます。クライアントが非同期通知を受け取らない場合、pvarGPMProgress パラメーターは NULL でなければなりません。 |
| pvarGPMCancel | VARIANT* | out | クライアントがコピー操作をキャンセルするために使用できる IGPMAsyncCancel インターフェイスへのポインターを受け取ります。pvarGPMProgress が NULL の場合、このパラメーターは返されません。 |
| ppIGPMResult | IGPMResult** | out | IGPMResult へのポインター。Result プロパティには、保存されたスターター GPO の GUID を表す文字列が格納されます。bSaveAsSystem が VARIANT_TRUE の場合、スターター GPO は bstrUniqueID で指定された新しい GUID で保存されます。Status プロパティには IGPMStatusMsgCollection への参照が格納されます。 |
戻り値
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
現在のスターター GPO のバックアップを作成します。
| bstrBackupDir | LPWSTR | in | GPMStarterGPOBackup オブジェクトを格納するファイル システム ディレクトリの名前。ディレクトリは既に存在している必要があります。null 終端文字列を使用します。 |
| bstrComment | LPWSTR | in | GPMStarterGPOBackup オブジェクトに関連付けるコメント。 |
| pvarGPMProgress | VARIANT* | in | バックアップ操作の進行状況に関する状態通知をクライアントが受け取れるようにする IGPMAsyncProgress インターフェイスへのポインターを指定します。このパラメーターが NULL の場合、メソッドは同期的に実行されます。NULL でない場合、メソッドは非同期に実行されます。クライアントが非同期通知を受け取らない場合、このパラメーターは NULL でなければなりません。 |
| pvarGPMCancel | VARIANT* | out | クライアントがバックアップ操作をキャンセルするために使用できる IGPMAsyncCancel インターフェイスへのポインターを受け取ります。pvarGPMProgress が NULL の場合、このパラメーターは返されません。 |
| ppIGPMResult | IGPMResult** | out | バックアップ操作の結果を表す IGPMResult インターフェイスへのポインターのアドレス。このインターフェイスには、 IGPMBackup インターフェイスおよび IGPMStatusMsgCollection インターフェイスへのポインターが含まれます。 |
戻り値
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
詳細については、以下の「解説」セクションを参照してください。
解説(Remarks)
操作が成功したかどうかを判断するには、このメソッドが返すコードだけでなく、 IGPMResult::OverallStatus メソッドが返すコードも確認する必要があります。 OverallStatus は操作全体の状態コードを返します。操作中にエラーが発生しなかった場合は成功コードを返し、そうでない場合は失敗コードを返します。
CopyTo メソッドは、現在のスターター GPO をコピーし、そのコピーへのポインターを返します。
| pvarNewDisplayName | VARIANT* | in | コピーされたスターター GPO に付与する表示名。VARIANT 構造体に BSTR が含まれていない場合、または pvarNewDisplayName が NULL の場合は、表示名が自動的に割り当てられます。 |
| pvarGPMProgress | VARIANT* | in | コピー操作の進行状況に関する状態通知をクライアントが受け取れるようにする IGPMAsyncProgress インターフェイスへのポインターを指定します。クライアントが非同期通知を受け取らない場合、このパラメーターは NULL でなければなりません。 |
| pvarGPMCancel | VARIANT* | in | クライアントがコピー操作をキャンセルするために使用できる IGPMAsyncCancel インターフェイスへのポインターを受け取ります。pvarGPMProgress が NULL の場合、このパラメーターは返されません。 |
| ppIGPMResult | IGPMResult** | out | コピー操作の結果を表す IGPMResult インターフェイスへのポインターのアドレス。このインターフェイスには、 IGPMGPO インターフェイスおよび IGPMStatusMsgCollection インターフェイスへのポインターが含まれます。 |
戻り値
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
詳細については、以下の「解説」セクションを参照してください。
解説(Remarks)
操作が成功したかどうかを判断するには、このメソッドが返すコードだけでなく、 IGPMResult::OverallStatus メソッドが返すコードも確認する必要があります。 OverallStatus は操作全体の状態コードを返します。操作中にエラーが発生しなかった場合は成功コードを返し、そうでない場合は失敗コードを返します。
スターター GPO のレポートを取得します。
| gpmReportType | GPMReportType | in | レポートの形式が XML か HTML かを指定します。 |
| pvarGPMProgress | VARIANT* | in | コピー操作の進行状況に関する状態通知をクライアントが受け取れるようにする IGPMAsyncProgress インターフェイスへのポインター。NULL でない場合、GenerateReport の呼び出しは非同期に処理され、pvarGPMCancel は IGPMAsyncCancel インターフェイスへのポインターを受け取ります。このパラメーターが NULL の場合、GenerateReport の呼び出しは同期的に処理されます。クライアントが非同期通知を受け取らない場合、pvarGPMProgress パラメーターは NULL でなければなりません。 |
| pvarGPMCancel | VARIANT* | in | クライアントがコピー操作をキャンセルするために使用できる IGPMAsyncCancel インターフェイスへのポインターを受け取ります。pvarGPMProgress が NULL の場合、このパラメーターは返されません。 |
| ppIGPMResult | IGPMResult** | out | IGPMResult へのポインター。Result プロパティには XML または HTML のバイナリ文字列が格納されます。Status プロパティには IGPMStatusMsgCollection への参照が格納されます。 |
戻り値
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
GenerateReportToFile メソッドは、GPO のレポートを取得し、指定されたパスのファイルに保存します。
| gpmReportType | GPMReportType | in | レポートの形式が XML か HTML かを指定します。 |
| bstrTargetFilePath | LPWSTR | in | レポートの保存先ファイルのパスを格納するバイナリ文字列。null 終端文字列を使用します。 |
| ppIGPMResult | IGPMResult** | out | IGPMResult インターフェイスへのポインター。Status プロパティには IGPMStatusMsgCollection への参照が格納されます。 メモ IGPMResult インターフェイスの Result プロパティの値は不定であり、依存してはなりません。
|
戻り値
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
スターター GPO に対するアクセス許可のセット (編集を許可されている対象など) を取得します。
| ppSecurityInfo | IGPMSecurityInfo** | out | IGPMSecurityInfo インターフェイスへのポインターのアドレス。 |
戻り値
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
解説(Remarks)
ポリシー関連のアクセス許可の詳細については、 IGPM::CreatePermission を参照してください。
グループポリシー オブジェクト (GPO) のアクセス許可の一覧を設定します。
| pSecurityInfo | IGPMSecurityInfo* | in | GPO に適用するセキュリティ情報へのポインター。 |
戻り値
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。
解説(Remarks)
ポリシー関連のアクセス許可の詳細については、 IGPM::CreatePermission を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IGPMStarterGPO "{DFC3F61B-8880-4490-9337-D29C7BA8C2F0}" #usecom global IGPMStarterGPO IID_IGPMStarterGPO "{}" #comfunc global IGPMStarterGPO_get_DisplayName 7 var #comfunc global IGPMStarterGPO_put_DisplayName 8 wstr #comfunc global IGPMStarterGPO_get_Description 9 var #comfunc global IGPMStarterGPO_put_Description 10 wstr #comfunc global IGPMStarterGPO_get_Author 11 var #comfunc global IGPMStarterGPO_get_Product 12 var #comfunc global IGPMStarterGPO_get_CreationTime 13 var #comfunc global IGPMStarterGPO_get_ID 14 var #comfunc global IGPMStarterGPO_get_ModifiedTime 15 var #comfunc global IGPMStarterGPO_get_Type 16 var #comfunc global IGPMStarterGPO_get_ComputerVersion 17 var #comfunc global IGPMStarterGPO_get_UserVersion 18 var #comfunc global IGPMStarterGPO_get_StarterGPOVersion 19 var #comfunc global IGPMStarterGPO_Delete 20 #comfunc global IGPMStarterGPO_Save 21 wstr,int,int,var,var,var,var,var,var,var,sptr #comfunc global IGPMStarterGPO_Backup 22 wstr,wstr,var,var,sptr #comfunc global IGPMStarterGPO_CopyTo 23 var,var,var,sptr #comfunc global IGPMStarterGPO_GenerateReport 24 int,var,var,sptr #comfunc global IGPMStarterGPO_GenerateReportToFile 25 int,wstr,sptr #comfunc global IGPMStarterGPO_GetSecurityInfo 26 sptr #comfunc global IGPMStarterGPO_SetSecurityInfo 27 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IGPMStarterGPO "{DFC3F61B-8880-4490-9337-D29C7BA8C2F0}" #usecom global IGPMStarterGPO IID_IGPMStarterGPO "{}" #comfunc global IGPMStarterGPO_get_DisplayName 7 sptr #comfunc global IGPMStarterGPO_put_DisplayName 8 wstr #comfunc global IGPMStarterGPO_get_Description 9 sptr #comfunc global IGPMStarterGPO_put_Description 10 wstr #comfunc global IGPMStarterGPO_get_Author 11 sptr #comfunc global IGPMStarterGPO_get_Product 12 sptr #comfunc global IGPMStarterGPO_get_CreationTime 13 sptr #comfunc global IGPMStarterGPO_get_ID 14 sptr #comfunc global IGPMStarterGPO_get_ModifiedTime 15 sptr #comfunc global IGPMStarterGPO_get_Type 16 sptr #comfunc global IGPMStarterGPO_get_ComputerVersion 17 sptr #comfunc global IGPMStarterGPO_get_UserVersion 18 sptr #comfunc global IGPMStarterGPO_get_StarterGPOVersion 19 sptr #comfunc global IGPMStarterGPO_Delete 20 #comfunc global IGPMStarterGPO_Save 21 wstr,int,int,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IGPMStarterGPO_Backup 22 wstr,wstr,sptr,sptr,sptr #comfunc global IGPMStarterGPO_CopyTo 23 sptr,sptr,sptr,sptr #comfunc global IGPMStarterGPO_GenerateReport 24 int,sptr,sptr,sptr #comfunc global IGPMStarterGPO_GenerateReportToFile 25 int,wstr,sptr #comfunc global IGPMStarterGPO_GetSecurityInfo 26 sptr #comfunc global IGPMStarterGPO_SetSecurityInfo 27 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。