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

IWSMan

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

公式ドキュメント

Session オブジェクトによって表されるセッションを作成するために使用するメソッドとプロパティを提供します。

メソッド 4

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

vtbl 7 HRESULT CreateSession(LPWSTR connection, INT flags, IDispatch* connectionOptions, IDispatch** session)

後続のネットワーク操作で使用できる Session オブジェクトを作成します。

connectionLPWSTRin接続先のプロトコルおよびサービスで、IPv4 または IPv6 のいずれかを含みます。接続情報の形式は次のとおりです。<Transport><Address><Suffix>。例については「解説」を参照してください。接続情報を指定しない場合は、ローカルコンピューターが使用されます。
flagsINTin

リモートコンピューターへの接続に使用する、 Negotiate 認証Digest 認証 などの認証方式を指定するセッションフラグです。これらのフラグは、 エンコードや暗号化など、その他のセッション接続情報も指定します。このパラメーターには、リモート接続の場合、 __WSManSessionFlags のフラグを 1 つ以上含める必要があります。詳細については、 Session Constants を参照してください。ローカルコンピューター上の WinRM サービスへの 接続では、フラグの設定は必要ありません。

認証フラグを指定しない場合は Kerberos が使用されますが、次のいずれかの条件に該当する場合は Negotiate が使用されます。

  • 明示的な資格情報が指定され、かつ接続先ホストが信頼されている
  • 接続先ホストが "localhost"、"127.0.0.1"、または "[::1]" である
  • クライアントコンピューターがワークグループに属し、かつ接続先ホストが信頼されている
詳細については、Authentication for Remote Connections および connectionOptions パラメーターを参照してください。
connectionOptionsIDispatch*inユーザー名とパスワードを含む IWSManConnectionOptions オブジェクトへのポインター。既定値は NULL です。
sessionIDispatch**out新しい IWSManSession オブジェクトへのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

次の一覧は、connection パラメーターで接続情報を指定するために使用する形式の例です(HTTPS セッションを作成する場合、<Address> フィールドはサーバーコンピューターの証明書名と一致している必要があり、そうでない場合は失敗します)。

vtbl 8 HRESULT CreateConnectionOptions(IDispatch** connectionOptions)

セッションを作成する際に使用するユーザー名とパスワードを指定する IWSManConnectionOptions オブジェクトを作成します。

connectionOptionsIDispatch**out新しい IWSManConnectionOptions オブジェクトへのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT get_CommandLine(LPWSTR* value)

オートメーションコンポーネントを読み込むプロセスのコマンドラインを取得します。

valueLPWSTR*outコマンドライン文字列を受け取る。
vtbl 10 HRESULT get_Error(LPWSTR* value)

Windows Remote Management サービスが IWSManSession オブジェクト、IWSManConnectionOptions オブジェクト、または IWSManResourceLocator オブジェクトを作成できなかった場合に、直前の IWSMan メソッド呼び出しに関する追加のエラー情報を XML ストリームとして取得します。

valueLPWSTR*out直近のエラーを表す文字列を受け取る。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IWSMan "{190D8637-5CD3-496D-AD24-69636BB5A3B5}"
#usecom global IWSMan IID_IWSMan "{BCED617B-EC03-420B-8508-977DC7A686BD}"
#comfunc global IWSMan_CreateSession            7 wstr,int,sptr,sptr
#comfunc global IWSMan_CreateConnectionOptions  8 sptr
#comfunc global IWSMan_get_CommandLine          9 var
#comfunc global IWSMan_get_Error                10 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。