勇芳软件工作室.汉化:  Windows Management Instrumentation > Scripting API for WMI > Scripting API Objects > SWbemLocator >

ConnectServer Method

Previous pageReturn to chapter overviewNext page

描述

 

SWbemLocator对象的ConnectServer方法连接到在strServer参数中指定的计算机上的命名空间。目标计算机可以是本地或远程的,但必须安装WMI。有关示例和与连接器类型的比较,请参阅创建WMI脚本.

 

从Windows Vista开始,SWbemLocator.ConnectServer可以使用strServer参数中的IPv6地址与运行IPv6的计算机连接。有关详细信息,请参阅WMI中的IPv6和IPv4支持.

 

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

 

PowerBASIC 语法

 

METHOD ConnectServer ( _

OPTIONAL BYVAL strserver AS WSTRING, _

OPTIONAL BYVAL strNamespace AS WSTRING, _

OPTIONAL BYVAL strUser AS WSTRING, _

OPTIONAL BYVAL strPassword AS WSTRING, _

OPTIONAL BYVAL strLocale AS WSTRING, _

OPTIONAL BYVAL strAuthority AS WSTRING, _

OPTIONAL BYVAL iSecurityFlags AS LONG, _

OPTIONAL BYVAL objWbemNamedValueSet AS IDispatch _

) AS ISWbemServices

 

参数

 

strServer

 

要连接的计算机名称。如果远程计算机与您登录的用户帐户不同,请使用完全限定的计算机名称。如果您不提供此参数,则该通话默认为本地计算机。

 

示例:server1.network.fabrikam

 

您也可以在此参数中使用IP地址。如果IP地址为IPv6格式,则目标计算机必须运行IPv6。IPv4中的地址看起来像111.222.333.444

 

IPv6格式的IP地址看起来像2010:836B:4179::836B:4179

 

strNamespace

 

指定您要登录的命名空间的字符串。例如,要登录到root \\ default命名空间,请使用root \\ default。如果不指定此参数,则默认为配置为脚本的默认命名空间的命名空间。有关详细信息,请参阅创建WMI应用程序或脚本.

 

示例:“root \\ CIMV2”

 

strUser

 

要用于连接的用户名。字符串可以是用户名或域\\用户名的形式。将此参数留空以使用当前的安全上下文。Strus参数只能用于与远程WMI服务器的连接。如果尝试为本地WMI连接指定strUser,则连接尝试失败。如果Kerberos身份验证正在使用,则不能在网络中拦截StrusstrPassword中指定的用户名和密码。您可以使用UPN格式指定Strus.

 

示例:“DomainName \\ UserName”

 

Windows 2000,Windows NT 4.0和Windows Me / 98/95:无法以UPN格式指定Strus.

 

注意如果strAuthorityen中指定了域名,则不能在此处指定域。在两个参数中指定域会导致无效参数错误。

 

strPassword

 

指定尝试连接时要使用的密码的字符串。将参数留空以使用当前的安全上下文。strPassword参数只能用于与远程WMI服务器的连接。如果尝试为本地WMI连接指定strPassword,连接尝试将失败。如果Kerberos身份验证正在使用,则StrusstrPassword中指定的用户名和密码不能在网络上拦截。

 

strLocale

 

指定本地化代码的字符串。如果要使用当前的语言环境,请将其留空。如果不是空白,则此参数必须是一个字符串,指示必须检索信息的所需语言环境。对于Microsoft语言环境标识符,字符串的格式为“MS_xxxx”,其中xxxx是十六进制形式的字符串,表示LCID。例如,美式英语会显示为“MS_409”。

 

strAuthority

 

含义

""

此参数是可选的。但是,如果指定,则只能使用Kerberos或NTLMDomain。

Kerberos的:

如果strAuthority参数以字符串“Kerberos:”开始,则使用Kerberos身份验证,此参数应包含Kerberos主体名称。Kerberos主体名称指定为Kerberos:,例如Kerberos的:Fabrikam的其中Fabrikam的是要尝试连接的服务器。

 

示例:“Kerberos:DOMAIN”

NTLMDomain:

要使用NT Lan Manager(NTLM)身份验证,您必须将其指定为NTLMDomain:,例如NTLMDomain:fabrikam,其中Fabrikam的是域的名称。

 

示例:“NTLMDomain:DOMAIN”

 

如果将此参数留空,操作系统将与COM协商确定是否使用NTLM或Kerberos身份验证。此参数只能用于与远程WMI服务器的连接。如果尝试设置本地WMI连接的权限,则连接尝试失败。

 

注意如果在Strus中指定了域,这是首选位置,则不能在此处指定。在两个参数中指定域会导致无效参数错误。

 

iSecurityFlags

 

用于将标志值传递给ConnectServer.

 

标志/值

含义

0

&H0

对于该参数,值为0将导致只有在建立与服务器的连接后才能返回ConnectServer.如果无法建立连接,这可能会导致程序无限期挂起。

wbemConnectFlagUseMaxWait

128

&H80

ConnectServer电话保证在2分钟以内返回。如果无法建立连接,请使用此标志来防止程序无限期挂起。

 

objwbemNamedValueSet

 

通常,这是未定义的。否则,这是一个SWbemNamedValueSet对象,其元素表示正在为请求提供服务的提供商可以使用的上下文信息。支持或要求此类信息的提供者必须记录识别的值名称,值的数据类型,允许的值和语义。

 

objwbemServices

 

如果成功,WMI将返回SWbemServices绑定到strServer中指定的计算机上strNamespace中指定的命名空间的对象。

 

OBJRESULT

 

错误(名称/十进制/十六进制)

含义

wbemErrAccessDenied

-2147217405

&H80041003

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

wbemErrFailed

-2147217407

&H80041001

未指定错误

wbemErrInvalidNamespace

-2147217394

&H8004100E

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

wbemErrInvalidParameter

-2147217400

&H80041008

指定了无效参数,或者无法解析命名空间。

wbemErrOutOfMemory

-2147217402

&H80041006

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

wbemErrTransportFailure

-2147217387

&H80041015

发生网络错误,防止正常运行。

 

示例代码

 

以下VBScript代码示例描述如何连接到远程计算机以获取Win32_IP4RouteTable数据。strAuthorityen中指定的域名在strAuthorityen中使用。

 

Const intMin = 3600

将strComputer =“远程计算机”de

strDomain =“DomainName”

Wscript.StdOut.Write“请输入您的用户名:”

strUser = Wscript.StdIn.ReadLine

设置objPassword = CreateObject(“ScriptPW.Password”)

Wscript.StdOut.Write“请输入您的密码:”

strPassword = objPassword.GetPassword()

Wscript.Echo

 

设置objSWbemLocator = CreateObject(“WbemScripting.SWbemLocator”)

设置objWMIService = objSWbemLocator.ConnectServer(strComputer,_

 “root \\ CIMV2”,_

 Strus,_

 strPassword,_

  "MS_409", _

 “NTLMDomain:” strDomain)xh

九月colItems的objWMIService.ExecQuery =(_

 “SELECT * FROM Win32_IP4RouteTable”,, 48)

对于colItems中的每个objItem

 WScript.Echo“Age of minutes:”_

int {objItem.Age / intMin}  {

 &“说明:”&objItem.Description &VBNewLine _en

 &“目的地:”&objItem.Destination &VBNewLine _

 &“InterfaceIndex” objItem.InterfaceIndex {98??9796005}_ &vbNewLine

 &“Mask:”&objItem.Mask &VBNewLine _

 &“Metric1:”&objItem.Metric1 &VBNewLine _en

 &“Metric2:”&objItem.Metric2 &VBNewLine _en

 &“Metric3:”&objItem.Metric3 &VBNewLine _en

 &“Metric4:”&objItem.Metric4 &VBNewLine _en

 &“Metric5:”&objItem.Metric5 &VBNewLine _en

 &“Name:”&objItem.Name &VBNewLine _

 &“NextHop:”&objItem.NextHop &VBNewLine _

 &“协议:”&objItem.Protocol &VBNewLine _

 &“类型:”&objItem.Type

 WScript.Echo

下一个

 

备注

 

在远程计算机上连接到具有不同用户名和密码—的帐户时,通常使用ConnectServer方法,因为您无法在绰号字符串中指定其他密码。有关详细信息,请参阅连接到远程计算机上的WMI.

 

要求

 

客户

需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95 OSR2及更高版本。

服务器

需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。

类型库

使用Wbemdisp.tlb。

Wbemdisp.inc。

DLL

需要Wbemdisp.dll。