Win32 API 日本語リファレンス
ホームSecurity.Cryptography › ICertificateEnrollmentServerSetup

ICertificateEnrollmentServerSetup

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

公式ドキュメント

ICertificateEnrollmentServerSetup インターフェイスは、Active Directory 証明書サービス (ADCS) における証明書登録 Web サービス (CES) を表します。

メソッド 7

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

vtbl 7 HRESULT get_ErrorString(LPWSTR* pVal)

証明書登録 Web サービス (CES) のセットアップ失敗に関する追加情報を含む文字列を取得します。

pValLPWSTR*out直近の操作で発生したエラーの説明文字列を受け取る LPWSTR へのポインタである。

解説(Remarks)

ICertificateEnrollmentServerSetup インターフェイスのいずれかのメソッドを呼び出すと、このプロパティ値は空のエラー文字列にリセットされます。

vtbl 8 HRESULT InitializeInstallDefaults()

ICertificateEnrollmentServerSetup オブジェクトを既定の構成で初期化します。

戻り値

戻り値 説明
E_ACCESSDENIED
ユーザーはドメイン ルートまたはエンタープライズの管理者である必要があります。また、コンピューターはドメインに参加している必要があります。

ユーザーがドメイン ルートまたはエンタープライズの管理者でない場合、ErrorString プロパティには次の値が設定されます。

"You must be a member of the Enterprise Admins group to run Setup."

コンピューターがドメインに参加していない場合、ErrorString プロパティには次の値が設定されます。

"The Certificate Enrollment Web Service or Certificate Enrollment Policy Web Service cannot be installed on a computer that is not a member of a domain."

HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
ICertificateEnrollmentServerSetup オブジェクトは既に初期化されています。ErrorString プロパティには次の値が設定されます。

"The setup object has already been initialized. This object cannot be initialized more than once."

解説(Remarks)

このメソッドは次の処理を実行します。

UnInstall 以外のメソッドを呼び出す前に、InitializeInstallDefaults メソッドを呼び出す必要があります。構成したサービスをインストールするには Install メソッドを呼び出します。サービスを削除するには、新しい ICertificateEnrollmentServerSetup オブジェクトに対して UnInstall を呼び出します。
vtbl 9 HRESULT GetProperty(CESSetupProperty propertyId, VARIANT* pPropertyValue)

証明書登録 Web サービス (CES) の構成に対する CESSetupProperty 列挙値を取得します。

propertyIdCESSetupPropertyin取得するプロパティ値を指定する CESSetupProperty 列挙値。詳細については、「解説」を参照してください。
pPropertyValueVARIANT*outプロパティ値を格納する VARIANT 変数へのポインター。

戻り値

戻り値 説明
E_INVALIDARG
propertyId 引数が CESSetupProperty 列挙型のメンバーではありません。
E_POINTER
pPropertyValue パラメーターに NULL を指定することはできません。
HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
ICertificateEnrollmentServerSetup オブジェクトが初期化されていません。

ErrorString プロパティ値には "The setup object has not been initialized. Please initialize the setup object with the InitializeInstallDefaults method." が設定されます。

解説(Remarks)

CESSetupProperty 列挙型には次の値が含まれます。

これらの値の意味は次のとおりです。

vtbl 10 HRESULT SetProperty(CESSetupProperty propertyId, VARIANT* pPropertyValue)

証明書登録 Web サービス (CES) の構成に対する CESSetupProperty 列挙値を指定します。

propertyIdCESSetupPropertyin取得するプロパティ値を指定する CESSetupProperty 列挙値。
pPropertyValueVARIANT*inプロパティ値を格納する VARIANT 変数へのポインター。

戻り値

戻り値 説明
E_INVALIDARG
propertyId 引数が CESSetupProperty 列挙型のメンバーではありません。

また、ENUM_CESSETUPPROP_AUTHENTICATION プロパティを設定する場合は、pPropertyValue 引数に次のいずれかの値を指定する必要があります。

  • X509AuthKerberos
  • X509AuthUsername
  • X509AuthCertificate
E_POINTER
pPropertyValue パラメーターに NULL を指定することはできません。
HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
ICertificateEnrollmentServerSetup オブジェクトが初期化されていません。

ErrorString プロパティ値には "The setup object has not been initialized. Please initialize the setup object with the InitializeInstallDefaults method." が設定されます。

HRESULT_FROM_WIN32(ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH)
ENUM_CESSETUPPROP_AUTHENTICATION プロパティを設定する場合、VARIANT のサブタイプは VT_I2VT_I4、または VT_UI4 である必要があります。

解説(Remarks)

SetProperty を呼び出す前に、InitializeInstallDefaults を呼び出す必要があります。

ENUM_CESSETUPPROP_URL プロパティを設定することはできません。

WSEnrollmentServer アプリケーション プールが既に存在し、WMI が初期化されている場合、ENUM_CESSETUPPROP_USE_IISAPPPOOLIDENTITY を設定することはできません。

ENUM_CESSETUPPROP_AUTHENTICATION プロパティを設定する場合、VARIANT のサブタイプは VT_I2VT_I4、または VT_UII4 である必要があり、pPropertyValue 引数は次のいずれかの定数である必要があります。

対象のサーバーがスタンドアロン証明機関である場合、ENUM_CESSETUPPROP_CACONFIG プロパティを設定することはできません。ErrorString プロパティには "The Certificate Enrollment Web Service cannot be used with a standalone certification authority (CA). It can only be used with an enterprise CA." が設定されます。

.

vtbl 11 HRESULT SetApplicationPoolCredentials(LPWSTR bstrUsername, LPWSTR bstrPassword)

証明書登録 Web サービス (CES) が実行されるアプリケーション プールのユーザー アカウント情報を指定します。

bstrUsernameLPWSTRinアカウントのユーザー名を格納する BSTR
bstrPasswordLPWSTRinアカウントのパスワードを格納する BSTR

戻り値

戻り値 説明
E_INVALIDARG
bstrUsername 引数と bstrPassword 引数を NULL または空にすることはできません。
HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
ICertificateEnrollmentServerSetup オブジェクトが初期化されていません。

ErrorString プロパティ値には "The setup object has not been initialized. Please initialize the setup object with the InitializeInstallDefaults method." が設定されます。

解説(Remarks)

SetApplicationPoolCredentials メソッドは、ユーザー資格情報が有効かどうか、およびそのアカウントが IIS_IUSRS グループのメンバーであるかどうかを判定します。エラーが発生した場合、ErrorString プロパティには次のいずれかが設定されることがあります。

vtbl 12 HRESULT Install()

ICertificateEnrollmentServerSetup オブジェクトで構成された証明書登録 Web サービス (CES) をインストールします。

戻り値

戻り値 説明
E_UNEXPECTED
イベント トレーシング ディレクトリまたはアプリケーション ディレクトリに指定した名前が既に存在していますが、それはディレクトリではなくファイルです。
HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)
CES アプリケーションは既に存在します。詳細については、「解説」を参照してください。
HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
ICertificateEnrollmentServerSetup オブジェクトが初期化されていません。

ErrorString プロパティ値には "The setup object has not been initialized. Please initialize the setup object with the InitializeInstallDefaults method." が設定されます。

解説(Remarks)

この関数は次の処理を実行します。

vtbl 13 HRESULT UnInstall(VARIANT* pCAConfig, VARIANT* pAuthentication)

証明書登録 Web サービス (CES) を削除します。

pCAConfigVARIANT*inこのパラメーターは将来使用するために予約されています。
pAuthenticationVARIANT*inこのパラメーターは将来使用するために予約されています。

戻り値

戻り値 説明
E_ACCESSDENIED
ユーザーはローカル管理者である必要があります。

ErrorString プロパティ値には "You have to be the local machine administrator in order to run this setup." が設定されます。

HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
ICertificateEnrollmentServerSetup オブジェクトは初期化済みです。オブジェクトは InitializeInstallDefaults の呼び出しが成功したときに初期化されます。

ErrorString プロパティ値には "The object has been initialized. You cannot call UnInstall on an initialized object." が設定されます。

解説(Remarks)

CES を削除するには、このメソッドを呼び出します。ただし、既に初期化された ICertificateEnrollmentServerSetup オブジェクトに対して UnInstall メソッドを呼び出すことはできないため、UnInstall を呼び出す前に新しい ICertificateEnrollmentServerSetup を作成する必要があります。

このメソッドは、CES に関連するすべてのディレクトリとアプリケーション プールの削除を試みます。削除できない場合でも S_OK を返しますが、ErrorString プロパティを確認することで、メソッドで発生した問題を判別できます。

この関数は次の処理を実行します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ICertificateEnrollmentServerSetup "{70027FDB-9DD9-4921-8944-B35CB31BD2EC}"
#usecom global ICertificateEnrollmentServerSetup IID_ICertificateEnrollmentServerSetup "{}"
#comfunc global ICertificateEnrollmentServerSetup_get_ErrorString                7 var
#comfunc global ICertificateEnrollmentServerSetup_InitializeInstallDefaults      8
#comfunc global ICertificateEnrollmentServerSetup_GetProperty                    9 int,var
#comfunc global ICertificateEnrollmentServerSetup_SetProperty                    10 int,var
#comfunc global ICertificateEnrollmentServerSetup_SetApplicationPoolCredentials  11 wstr,wstr
#comfunc global ICertificateEnrollmentServerSetup_Install                        12
#comfunc global ICertificateEnrollmentServerSetup_UnInstall                      13 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。