IGPM
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IGPM インターフェイスは、グループポリシー管理コンソール (GPMC) の他のインターフェイスにアクセスするためのメソッドと、各種の検索操作を実行できる他のオブジェクトを作成するメソッドを提供します。
メソッド 12
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
指定したドメインに対応する GPMDomain オブジェクトを作成して返します。
| bstrDomain | LPWSTR | in | 文字列として指定するドメインの名前。contoso.com のような完全な DNS (Domain Name System) 名である必要があります。 |
| bstrDomainController | LPWSTR | in | 指定する場合は、そのドメインで使用するドメインコントローラーの名前。名前は DNS 名または NetBIOS 名を指定できます。指定しない場合、このメソッドはプライマリドメインコントローラー (PDC) を使用します。詳細については、lDCFlags パラメーターを参照してください。 スクリプト: ドメインコントローラーを指定しない場合、このパラメーターには空文字列 ("") を渡す必要があります。 |
| lDCFlags | INT | in | ドメインのドメインコントローラーを特定するために使用するフラグ。GPM_USE_ANYDC、GPM_USE_PDC、または GPM_DONOTUSE_W2KDC を指定できます。 このパラメーターを 0 に設定し、bstrDomainController を指定した場合、このメソッドは指定された bstrDomainController を使用します。それ以外の場合は PDC を使用します。 |
| pIGPMDomain | IGPMDomain** | out | IGPMDomain インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMDomain オブジェクトへの参照を返します。VB
GPMDomain オブジェクトへの参照を返します。解説(Remarks)
重要: この関数を呼び出すと、基盤となる LDAP トラフィックは SSL ではなく Kerberos によって暗号化されます。
このメソッドではサイト SOM を検索できません。この種類のクエリを実行するには、 IGPM::GetSitesContainer メソッドを呼び出してください。
GPMBackupDir オブジェクトを作成して返します。このオブジェクトを使用して GPMBackup オブジェクトおよび GPMBackupCollection オブジェクトにアクセスできます。
| bstrBackupDir | LPWSTR | in | 必須。GPO (グループポリシーオブジェクト) のバックアップが格納されているファイルシステムディレクトリの名前。ディレクトリは既に存在している必要があります。 |
| pIGPMBackupDir | IGPMBackupDir** | out | IGPMBackupDir インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMBackupDir オブジェクトへの参照を返します。VB
GPMBackupDir オブジェクトへの参照を返します。サイトを開いてクエリを実行するための GPMSitesContainer オブジェクトを作成して返します。
| bstrForest | LPWSTR | in | 必須。サイトにアクセスするフォレストの完全な DNS 名。これはフォレストルートドメインの名前です。null 終端文字列を使用します。 |
| bstrDomain | LPWSTR | in | サイトにアクセスするドメインの名前。指定する場合、example.microsoft.com のような完全な DNS (Domain Name Server) 名である必要があります。bstrDomain パラメーターにドメインを指定すると、グループポリシー管理コンソール (GPMC) はそのドメインを介してサイトにアクセスします。ドメインを指定しない場合、GPMC は bstrForest パラメーターで指定されたフォレストを介してサイトにアクセスします。null 終端文字列を使用します。 |
| bstrDomainController | LPWSTR | in | 指定する場合は、bstrDomain パラメーターで指定したドメインで使用するドメインコントローラーの名前。名前は DNS 名または NetBIOS 名を指定できます。指定しない場合、このメソッドはプライマリドメインコントローラー (PDC) を使用します。null 終端文字列を使用します。 |
| lDCFlags | INT | in | ドメインのドメインコントローラーを特定するために使用するフラグ。現在サポートされている値は GPM_USE_ANYDC のみです。このパラメーターを 0 に設定し、bstrDomainController を指定した場合、このメソッドは指定されたドメインコントローラーを使用します。それ以外の場合は PDC を使用します。 |
| ppIGPMSitesContainer | IGPMSitesContainer** | out | IGPMSitesContainer インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMSitesContainer オブジェクトへの参照を返します。VB
GPMSitesContainer オブジェクトへの参照を返します。GPMRSOP を作成して返します。RSoP (ポリシーの結果セット) のモードと WMI (Windows Management Instrumentation) 名前空間を指定できます。
| gpmRSoPMode | GPMRSOPMode | in | 必須。オブジェクトを開くモード。次のモードがサポートされます。 rsopPlanningRSoP 計画モードを指定します。 rsopLoggingRSoP ログモードを指定します。 rsopUnknownbstrNamespace パラメーターを指定した場合にのみ有効です。 クエリを実行するには、RSoP 計画モードには Windows Server を実行しているドメインコントローラーが必要です。 |
| bstrNamespace | LPWSTR | in | IGPMRSOPGPMRSOPGPMRSOP の WMI 名前空間。null 終端文字列を使用します。このパラメーターには NULL を指定できます。名前空間の取得方法の詳細については、「解説」セクションを参照してください。 |
| lFlags | INT | in | このパラメーターは 0 である必要があります。 |
| ppIGPMRSOP | IGPMRSOP** | out | IGPMRSOP インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMRSOP オブジェクトへの参照を返します。VB
GPMRSOP オブジェクトへの参照を返します。解説(Remarks)
WMI 名前空間を取得するには、IGPMRSOP インターフェイスの Namespace プロパティメソッドを呼び出します。または、 RsopLoggingModeProvider および RsopPlanningModeProvider WMI クラスの RsopCreateSession メソッドを呼び出します。これらのメソッドの詳細については、グループポリシーのドキュメントを参照してください。
トラスティ (ユーザー、コンピューター、セキュリティグループなど) と、単一のオブジェクト (GPO、SOM、WMI フィルターなど) に適用される権限を表すインターフェイスまたはオブジェクトを作成して返します。
| bstrTrustee | LPWSTR | in | 必須。トラスティ名。このパラメーターには、アカウントのセキュリティ識別子 (SID) を指定する文字列を渡すことができます。また、"Engineering\JSmith" のような SAM (Security Accounts Manager) アカウント名を指定することもできます。 | ||||
| perm | GPMPermissionType | in | 必須。トラスティに使用する権限。次のポリシー関連の権限がサポートされます。各権限の値は、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 を作成できます。ドメインにのみ適用されます。 | ||||
| bInheritable | VARIANT_BOOL | in |
| ||||
| ppPerm | IGPMPermission** | out | IGPMPermission インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMPermission オブジェクトへの参照を返します。VB
GPMPermission オブジェクトへの参照を返します。解説(Remarks)
アクセス制御リスト (ACL)、アクセス権、および Windows オブジェクトへのアクセスを制御するセキュリティモデルの詳細については、Access Control を参照してください。セキュリティグループの詳細については、Active Directory プログラマーズガイドの How Security Groups are Used in Access Control を参照してください。
グループポリシー管理コンソール (GPMC) のインターフェイスを使用して検索操作を実行する際に使用する条件を表す GPMSearchCriteria を作成して返します。
| ppIGPMSearchCriteria | IGPMSearchCriteria** | out | IGPMSearchCriteria インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMSearchCriteria オブジェクトへの参照を返します。VB
GPMSearchCriteria オブジェクトへの参照を返します。トラスティに関する情報を取得できる GPMTrustee を作成して返します。
| bstrTrustee | LPWSTR | in | 必須。トラスティ名またはセキュリティ識別子 (SID)。名前は Exampledomain\Someone のような、SAM (Security Accounts Manager) と互換性のある形式で指定します。 |
| ppIGPMTrustee | IGPMTrustee** | out | IGPMTrustee インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMTrustee オブジェクトへの参照を返します。VB
GPMTrustee オブジェクトへの参照を返します。解説(Remarks)
ポリシー関連の権限の詳細については、 IGPM::CreatePermission を参照してください。セキュリティグループの詳細については、Active Directory プログラマーズガイドの How Security Groups are Used in Access Control を参照してください。
ローカルコンピューターに登録されているグループポリシーのクライアントサイド拡張 (CSE) を列挙するための GPMCSECollection オブジェクトを作成して返します。
| ppIGPMCSECollection | IGPMCSECollection** | out | IGPMCSECollection インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMCSECollection オブジェクトへの参照を返します。VB
GPMCSECollection オブジェクトへの参照を返します。複数のグループポリシー管理コンソール (GPMC) 定数の値を取得できる GPMConstants オブジェクトを作成して返します。
| ppIGPMConstants | IGPMConstants** | out | IGPMConstants インターフェイスへのポインターのアドレス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMConstants オブジェクトへの参照を返します。VB
GPMConstants オブジェクトへの参照を返します。指定したパスにある移行テーブルを読み込みます。
| bstrMigrationTablePath | LPWSTR | in | 読み込む移行テーブルのパス。null 終端文字列を使用します。 |
| ppMigrationTable | IGPMMigrationTable** | out | 移行テーブルのエントリを格納した移行テーブルインターフェイス。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMMigrationTable オブジェクトへの参照を返します。VB
GPMMigrationTable オブジェクトへの参照を返します。空の移行テーブルを作成します。
| ppMigrationTable | IGPMMigrationTable** | out | エントリを含まない、作成された移行テーブルを受け取ります。IGPMMigrationTable を参照してください。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。JScript
GPMMigrationTable オブジェクトへの参照を返します。VB
GPMMigrationTable オブジェクトへの参照を返します。InitializeReporting メソッドは、.adm ファイルを検索する場所を設定します。このメソッドは、レポート機能を非同期に初期化します。
| bstrAdmPath | LPWSTR | in | .adm ファイルを検索する場所。null 終端文字列を使用します。 |
戻り値
C++
成功した場合は S_OK を返します。エラーが発生した場合は失敗コードを返します。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 不要)。