ConnectServerWmi 函数

通过 DCOM 创建到指定计算机上的 WMI 命名空间的连接。

注意

此 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] 指向有效 BSTR 的指针,前者包含正确 WMI 命名空间的对象路径。 有关详细信息,请参阅备注部分。

strUser
[in] 指向包含用户名的有效 BSTR 的指针。 值 null 指示当前安全上下文。 如果用户来自与当前域不同的域,strUser 还可能包含用反斜杠分隔的域和用户名。 strUser 也可以采用用户主体名称 (UPN) 格式,例如 userName@domainName。 有关详细信息,请参阅备注部分。

strPassword
[in] 指向包含密码的有效 BSTR 的指针。 null 指示当前的安全上下文。 空字符串 ("") 指示有效的零长度密码。

strLocale
[in] 指向有效 BSTR 的指针,前者指示信息检索的正确区域设置。 对于 Microsoft 区域设置标识符,字符串的格式为“MS_xxx”,其中 xxx 是一个十六进制的字符串,表示区域设置标识符 (LCID)。 如果指定了无效的区域设置,则该方法将返回 WBEM_E_INVALID_PARAMETER,但在 Windows 7 上除外,这种情况将使用服务器的默认区域设置。 如果为 `null1,则使用当前区域设置。

lSecurityFlags
[in] 传递给 ConnectServerWmi 方法的标志。 如果此参数的值为零 (0),会调用 ConnectServerWmi,并仅在与服务器建立连接后返回。 如果服务器崩溃,这可能会导致应用程序永久不响应。 其他有效值包括:

常数 Value 说明
CONNECT_REPOSITORY_ONLY 0x40 保留以供内部使用。 请勿使用。
WBEM_FLAG_CONNECT_USE_MAX_WAIT 0x80 ConnectServerWmi 在两分钟或更少时间内返回。

strAuthority
[in] 用户的域名。 该选项可具有以下值:

说明
blank 使用 NTLM 身份验证,并且使用当前用户的 NTLM 域。 如果 strUser 指定域(建议的位置),则不能在此处指定。 如果要在两个参数中都指定域,则函数返回 WBEM_E_INVALID_PARAMETER
Kerberos:主体名称 使用 Kerberos 身份验证,此参数包含 Kerberos 主体名称。
NTLMDOMAIN:域名 使用 NT LAN Manager 身份验证,此参数包含 NTLM 域名。

pCtx
[in] 通常此参数为 null。 否则,它是指向一个或多个动态类提供程序所需的 IWbemContext 对象的指针

ppNamespace
[out] 当函数返回时,接收指向绑定到指定命名空间的 IWbemServices 对象的指针。 它设置为在出现错误时指向 null

impLevel
[in] 模拟级别。

authLevel
[in] 授权级别。

返回值

此函数返回的以下值是在 WbemCli.h 头文件中定义的,你也可以在代码中将这些值定义为常数:

常数 Value 说明
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 起可用

另请参阅