ConnectServerWmi 関数

指定したコンピューターにある WMI 名前空間との接続が DCOM 経由で作成されます。

Note

この API は、内部でだけ使用します。 開発者コードで使用するためのものではありません。

構文

HRESULT ConnectServerWmi (
   [in] BSTR               strNetworkResource,
   [in] BSTR               strUser,
   [in] BSTR               strPassword,
   [in] BSTR               strLocale,
   [in] long               lSecurityFlags,
   [in] BSTR               strAuthority,
   [in] IWbemContext*      pCtx,
   [out] IWbemServices**   ppNamespace,
   [in] DWORD              impLevel,
   [in] DWORD              authLevel
);

パラメーター

strNetworkResource
[in] 正しい WMI 名前空間のオブジェクト パスが格納されている有効な BSTR へのポインター。 詳細については、「解説」セクションを参照してください。

strUser
[in] ユーザー名が格納されている有効な BSTR へのポインター。 null 値は、現在のセキュリティ コンテキストを示します。 現在のドメインとは異なるドメインのユーザーの場合は、円記号で区切られたドメインとユーザー名を strUser に格納することもできます。 strUser は、ユーザー プリンシパル名 (UPN) 形式で指定することもできます (userName@domainName など)。 詳細については、「解説」セクションを参照してください。

strPassword
[in] パスワードが格納されている有効な BSTR へのポインター。 null は、現在のセキュリティ コンテキストを示します。 空の文字列 ("") は、長さ 0 の有効なパスワードを示します。

strLocale
[in] 情報を取得するための正しいロケールを示す有効な BSTR へのポインター。 Microsoft ロケール識別子の場合、文字列の形式は "MS_xxx" です。xxx は、ロケール識別子 (LCID) を示す 16 進数形式の文字列です。 無効なロケールを指定した場合は、メソッドから WBEM_E_INVALID_PARAMETER が返されます。ただし、Windows 7 の場合は、 サーバーの既定のロケールが代わりに使用されます。 "null" の場合は、現在のロケールが使用されます。

lSecurityFlags
[in] ConnectServerWmi メソッドに渡すフラグ。 このパラメーターの値がゼロ (0) の場合は、サーバーへの接続が確立された後でのみ、ConnectServerWmi の呼び出しから戻ります。 これにより、サーバーが破損している場合、アプリケーションが無期限に応答しなくなる可能性があります。 他の有効な値は次のとおりです。

定数 [値] 説明
CONNECT_REPOSITORY_ONLY 0x40 内部使用のために予約されています。 使用しないでください。
WBEM_FLAG_CONNECT_USE_MAX_WAIT 0x80 ConnectServerWmi からは、2 分以下で戻ります。

strAuthority
[in] ユーザーのドメイン名。 次のいずれかの値になります。

[値] 説明
blank NTLM 認証が使用され、現在のユーザーの NTLM ドメインが使用されます。 strUser でドメインを指定する場合は (推奨される場所)、ここで指定しないでください。 両方のパラメーターでドメインを指定した場合、関数から WBEM_E_INVALID_PARAMETER が返されます。
Kerberos:<プリンシパル名> Kerberos 認証が使用され、このパラメーターには Kerberos プリンシパル名を格納します。
NTLMDOMAIN:<ドメイン名> NT LAN Manager 認証が使用され、このパラメーターには NTLM ドメイン名を格納します。

pCtx
[in] 通常、このパラメーターは null です。 それ以外の場合は、1 つまたは複数の動的クラス プロバイダーが必要とする IWbemContext オブジェクトへのポインターです。

ppNamespace
[out] 関数から戻るときに、指定した名前空間にバインドされている IWbemServices オブジェクトへのポインターを受け取ります。 エラーが発生したときは、null を指すように設定されます。

impLevel
[in] 偽装レベル。

authLevel
[in] 承認レベル。

戻り値

この関数によって返される次の値は、WbemCli.h ヘッダー ファイル内で定義されています。または、コード内で定数として定義することもできます。

定数 [値] 説明
WBEM_E_FAILED 0x80041001 一般エラーが発生しました。
WBEM_E_INVALID_PARAMETER 0x80041008 パラメーターが無効です。
WBEM_E_OUT_OF_MEMORY 0x80041006 メモリ不足のため、操作を完了できません。
WBEM_S_NO_ERROR 0 関数呼び出しは成功しました。

解説

この関数では、IWbemLocator::ConnectServer メソッドの呼び出しがラップされます。

既定の名前空間へのローカル アクセスの場合、strNetworkResource には単純なオブジェクト パス ("root\default" または "\.\root\default") を指定できます。 COM または Microsoft 互換ネットワークを使用してリモート コンピューター上の既定の名前空間にアクセスする場合は、コンピューター名 "\myserver\root\default" を含めます。 コンピューター名は、DNS 名または IP アドレスでもかまいません。 ConnectServerWmi 関数は、IPv6 アドレスを使用して IPv6 を実行しているコンピューターに接続することもできます。

strUser を空の文字列にすることはできません。 strAuthority でドメインを指定する場合、strUser にも含めることはできません。そうしないと、関数から WBEM_E_INVALID_PARAMETER が返されます。

必要条件

:システム要件」を参照してください。

ヘッダー: WMINet_Utils.idl

.NET Framework のバージョン: 4.7.2 以降で使用可能

関連項目