勇芳软件工作室.汉化:  Windows Management Instrumentation > COM API for WMI > Interfaces > IWbemLocator >

ConnectServer Method

Previous pageReturn to chapter overviewNext page

描述

 

IWbemLocator.ConnectServer方法通过DCOM创建到在strNetworkResource参数中指定的计算机上的WMI命名空间的连接。

 

从Windows Vista开始,SWbemLocator.ConnectServer可以使用strNetworkResource参数中的IPv6地址连接运行IPv6的计算机。

 

Windows Server 2003,Windows XP和Windows 2000: 您只能使用SWbemLocator.ConnectServer连接到具有IPv4地址的计算机。

 

C++ 语法

 

HRESULT ConnectServer(

[in]   const BSTR strNetworkResource,

[in]   const BSTR strUser,

[in]   const BSTR strPassword,

[in]   const BSTR strLocale,

[in]   LONG lSecurityFlags,

[in]   const BSTR strAuthority,

[in]   IWbemContext *pCtx,

[out]  IWbemServices **ppNamespace

);

 

PowerBASIC 语法

 

METHOD ConnectServer ( _

BYVAL strNetworkResource AS DWORD, _

BYVAL strUser AS DWORD, _

BYVAL strPassword AS DWORD, _

BYVAL strLocale AS DWORD, _

BYVAL lSecurityFlags AS LONG, _

BYVAL strAuthority AS DWORD, _

BYVAL pCtx AS IWbemContext, _

BYREF ppNamespace AS IWbemServices _

) AS LONG

 

参数

 

strNetworkResource

 

指向包含正确的WMI命名空间的对象路径的有效BSTR.对于本地访问默认命名空间,请使用简单的对象路径:“root \\ default”或“\\\\。\\ root \\ default”。要使用COM或Microsoft兼容网络访问远程计算机上的默认命名空间,请包括计算机名称:“\\\\ myserver \\ root \\ default”。有关详细信息,请参阅描述WMI命名空间对象路径.计算机名称也可以是DNS名称或IP地址。从Windows Vista开始,SWbemLocator.ConnectServer可以使用IPv6地址连接运行IPv6的计算机。有关详细信息,请参阅WMI中的IPv6和IPv4支持.

 

strUser

 

指向有效的BSTR,其中包含连接所需的用户名。NULL值表示当前的安全上下文。如果用户名来自与当前域不同的域,该字符串可能包含用反斜杠分隔的域名和用户名。

 

StrUserName = SysAllocString(L"Domain\\UserName");

 

Strus参数不能为空字符串。请注意,如果strAuthorityen中指定了域,则不能在此处指定。在两个参数中指定域会导致无效的参数错误。

 

您可以使用Username@DomainName的用户主体名称(UPN)格式来指定Strus.

 

Windows 2000和Windows NT 4.0: 您不能使用用户主体名称(UPN)格式。

 

strPassword

 

指向一个有效的BSTR,其中包含连接所需的密码。NULL值表示当前的安全上下文。空白字符串“”指定有效的零长度密码。

 

strLocale

 

如果为NULL,则使用当前语言环境。如果不为NULL,则该参数必须是有效的BSTR,它表示信息检索的正确区域设置。对于Microsoft语言环境标识符,字符串的格式为“MS_xxx”,其中xxx是十六进制形式的字符串,表示本地标识(LCID),例如,美式英语将显示为“MS_409”。

 

lSecurityFlags

 

用于将标志值传递给ConnectServer的长值。对于此参数,值为零(0)将导致仅在建立与服务器连接后才返回ConnectServer.如果服务器坏了,这可能导致您的程序无限期挂起。下表列出了lSecurityFlags的其他有效值。

 

含义

WBEM_FLAG_CONNECT_REPOSITORY_ONLY

64

&H40

保留供内部使用。不使用。

WBEM_FLAG_CONNECT_USE_MAX_WAIT

128

&H80

ConnectServer呼叫在2分钟或更短时间内返回。如果服务器坏了,请使用此标志来防止您的程序无限期挂起。

 

Windows 2000和Windows NT 4.0:此值不可用。

 

strAuthority

 

此参数包含要验证的用户的域的名称。

 

strAuthorityen可以具有以下值:

 

·空白

 

如果将此参数留空,则使用NTLM身份验证,并使用当前用户的NTLM域。如果在StrUser中指定了域,这是推荐的位置,则不能在此处指定。在两个参数中指定域会导致无效的参数错误。

 

·Kerberos:<校长姓名>

 

使用Kerberos身份验证,此参数应包含Kerberos主体名称。

 

·NTLMDOMAIN:<域名>

 

使用NT LAN Manager身份验证,此参数应包含NTLM域名。

 

pCtx

 

通常,这是NULL。否则,这是指向一个或多个动态类提供者所需的IWbemContext对象的指针。必须在相关提供者的文档中指定上下文对象中的值。

 

ppNamespace

 

接收指向绑定到指定命名空间的IWbemServices对象的指针。该指针具有正的引用计数。当有错误时,此指针设置为指向NULL。

 

返回值

 

此方法返回一个指示方法调用状态的HRESULT.下表列出了HRESULT中包含的值。

 

如果网络问题导致您失去与WMI的远程连接,则可能会返回COM特定的错误代码。

 

这些错误返回码在PSDK \\ Include目录的WMI部分的Wbemcli.h文件中定义。有关详细信息,请参阅WMI错误常量.

 

退货代码

描述

WBEM_E_ACCESS_DENIED

当前或指定的用户名和密码无效或被授权进行连接。

WBEM_E_FAILED

这表示其他未指定的错误。

WBEM_E_INVALID_NAMESPACE

指定的命名空间在服务器上不存在。

WBEM_E_INVALID_PARAMETER

指定了无效参数。

WBEM_E_OUT_OF_MEMORY

没有足够的内存来完成操作。

WBEM_E_TRANSPORT_FAILURE

这表示当前进程和WMI之间的远程过程调用(RPC)链接失败。

WBEM_E_LOCAL_CREDENTIALS

WMI正在传递本地连接上的用户凭据。

WBEM_S_NO_ERROR

通话成功。

 

备注

 

当连接到本地命名空间时,不要指定StrusstrPasswordstrAuthorityen.有关详细信息,请参阅连接到远程计算机上的WMI.

 

要求

 

客户

需要Windows Vista,Windows XP或Windows 2000 Professional。

服务器

需要Windows Server 2008,Windows Server 2003或Windows 2000 Server。

在Wbemcli.inc中声明。

DLL

需要Wbemcore.dll。

需要Wbemupgd.dll。