IWSMan
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
Session オブジェクトによって表されるセッションを作成するために使用するメソッドとプロパティを提供します。
メソッド 4
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
後続のネットワーク操作で使用できる Session オブジェクトを作成します。
| connection | LPWSTR | in | 接続先のプロトコルおよびサービスで、IPv4 または IPv6 のいずれかを含みます。接続情報の形式は次のとおりです。<Transport><Address><Suffix>。例については「解説」を参照してください。接続情報を指定しない場合は、ローカルコンピューターが使用されます。 |
| flags | INT | in | リモートコンピューターへの接続に使用する、 Negotiate 認証 や Digest 認証 などの認証方式を指定するセッションフラグです。これらのフラグは、 エンコードや暗号化など、その他のセッション接続情報も指定します。このパラメーターには、リモート接続の場合、 __WSManSessionFlags のフラグを 1 つ以上含める必要があります。詳細については、 Session Constants を参照してください。ローカルコンピューター上の WinRM サービスへの 接続では、フラグの設定は必要ありません。 認証フラグを指定しない場合は Kerberos が使用されますが、次のいずれかの条件に該当する場合は Negotiate が使用されます。
|
| connectionOptions | IDispatch* | in | ユーザー名とパスワードを含む IWSManConnectionOptions オブジェクトへのポインター。既定値は NULL です。 |
| session | IDispatch** | out | 新しい IWSManSession オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
次の一覧は、connection パラメーターで接続情報を指定するために使用する形式の例です(HTTPS セッションを作成する場合、<Address> フィールドはサーバーコンピューターの証明書名と一致している必要があり、そうでない場合は失敗します)。
-
"https://service"
HTTPS を使用して既定の Web サービスの場所に接続します。
-
"https://service.corp.com/websvcs/wsman"
HTTPS を使用して特定の Web サービスの場所に接続します。
-
"https://[E3D7:0000:0000:0000:51F4:9BC8:C0A8:6420]"
HTTPS と IPv6 を既定のポートで使用します。
-
"https://[E3D7:0000:0000:0000:51F4:9BC8:C0A8:6420]:9999/wsman"
HTTPS と IPv6 を指定したポートで使用します。
セッションを作成する際に使用するユーザー名とパスワードを指定する IWSManConnectionOptions オブジェクトを作成します。
| connectionOptions | IDispatch** | out | 新しい IWSManConnectionOptions オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
オートメーションコンポーネントを読み込むプロセスのコマンドラインを取得します。
| value | LPWSTR* | out | コマンドライン文字列を受け取る。 |
Windows Remote Management サービスが IWSManSession オブジェクト、IWSManConnectionOptions オブジェクト、または IWSManResourceLocator オブジェクトを作成できなかった場合に、直前の IWSMan メソッド呼び出しに関する追加のエラー情報を XML ストリームとして取得します。
| value | LPWSTR* | out | 直近のエラーを表す文字列を受け取る。 |
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 不要)。#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 sptr #comfunc global IWSMan_get_Error 10 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。