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 起可用