Connect-WSMan

连接到远程计算机上的 WinRM 服务。

语法

Connect-WSMan
       [-ApplicationName <String>]
       [[-ComputerName] <String>]
       [-OptionSet <Hashtable>]
       [-Port <Int32>]
       [-SessionOption <SessionOption>]
       [-UseSSL]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [<CommonParameters>]
Connect-WSMan
       [-ConnectionURI <Uri>]
       [-OptionSet <Hashtable>]
       [-Port <Int32>]
       [-SessionOption <SessionOption>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [<CommonParameters>]

说明

此 cmdlet 仅在 Windows 平台上可用。

Connect-WSMan cmdlet 连接到远程计算机上的 WinRM 服务,并建立与远程计算机的持久连接。 可以在 WSMan 提供程序的上下文中使用此 cmdlet 连接到远程计算机上的 WinRM 服务。 但是,在更改为 WSMan 提供程序之前,还可以使用此 cmdlet 连接到远程计算机上的 WinRM 服务。 远程计算机显示在 WSMan 提供程序的根目录中。

当客户端和服务器计算机位于不同的域或工作组中时,需要显式凭据。

有关如何从远程计算机上的 WinRM 服务断开连接的信息,请参阅 Disconnect-WSMan cmdlet。

示例

示例 1:连接到远程计算机

PS C:\> Connect-WSMan -ComputerName "server01"
PS C:\> cd wsman:
PS WSMan:\>
PS WSMan:\> dir

WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

此命令创建与远程 server01 计算机的连接。

Connect-WSMan cmdlet 通常用于 WSMan 提供程序的上下文中以连接到远程计算机,在本例中为 server01 计算机。 但是,在更改为 WSMan 提供程序之前,可以使用 cmdlet 建立与远程计算机的连接。 这些连接显示在 ComputerName 列表中。

示例 2:使用管理员凭据连接到远程计算机

PS C:\> $cred = Get-Credential Administrator
PS C:\> Connect-WSMan -ComputerName "server01" -Credential $cred
PS C:\> cd wsman:
PS WSMan:\>
PS WSMan:\> dir

WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

此命令使用管理员帐户凭据创建与远程系统服务器 01 的连接。

第一个命令使用 Get-Credential cmdlet 获取管理员凭据,然后将其存储在 $cred 变量中。 Get-Credential 根据系统注册表设置,通过对话框或命令行提示输入用户名和密码的密码。

第二个命令使用 Credential 参数将存储在$cred中的凭据传递给 Connect-WSMan。 然后,Connect-WSMan 使用管理员凭据连接到远程系统服务器 01。

示例 3:通过指定端口连接到远程计算机

PS C:\> Connect-WSMan -ComputerName "server01" -Port 80
PS C:\> cd wsman:
PS WSMan:\>
PS WSMan:\> dir

WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan
ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

此命令通过端口 80 与远程 server01 计算机建立连接。

示例 4:使用连接选项连接到远程计算机

PS C:\> $a = New-WSManSessionOption -OperationTimeout 30000
PS C:\> Connect-WSMan -ComputerName "server01" -SessionOption $a
PS C:\> cd wsman:
PS WSMan:\> dir

WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan
ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01                                      Container

此示例使用在 New-WSManSessionOption 命令中定义的连接选项创建与远程 server01 计算机的连接。

第一个命令使用 New-WSManSessionOption$a 变量中存储一组连接设置选项。 在这种情况下,会话选项将连接时间设置为 30 秒(30,000 毫秒)。

第二个命令使用 SessionOption 参数将存储在 $a 变量中的凭据传递给 Connect-WSMan。 然后,Connect-WSMan 使用指定的会话选项连接到远程 server01 计算机。

参数

-ApplicationName

指定连接中的应用程序名称。 ApplicationName 参数的默认值为 WSMAN。 远程终结点的完整标识符采用以下格式:

<Transport>://<Server>:<Port>/<ApplicationName>

例如:http://server01:8080/WSMAN

承载会话的 Internet Information Services (IIS)会将具有此终结点的请求转发到指定的应用程序。 此 WSMAN 默认设置适用于大多数用途。 如果许多计算机与运行 Windows PowerShell 的计算机建立远程连接,则此参数旨在使用此参数。 在这种情况下,IIS 托管用于管理的 Web 服务(WS-Management),以提高效率。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Authentication

指定要在服务器上使用的身份验证机制。 此参数的可接受值为:

  • Basic- 基本是一种方案,其中用户名和密码以明文形式发送到服务器或代理。
  • Default - 使用由 WS-Management 协议实现的身份验证方法。 这是默认值。
  • Digest - 摘要是一种质询响应方案,它使用服务器指定的数据字符串来应对质询。
  • Kerberos - 客户端计算机和服务器使用 Kerberos 证书相互进行身份验证。
  • Negotiate - 协商是一种质询响应方案,它与服务器或代理协商以确定用于身份验证的方案。 例如,此参数值允许协商来确定是使用 Kerberos 协议还是 NTLM。
  • CredSSP - 使用凭据安全支持提供程序(CredSSP)身份验证,使用户能够委托凭据。 此选项适用于在一台远程计算机上运行的命令,但从其他远程计算机上收集数据或运行其他命令。

谨慎

CredSSP 将用户凭据从本地计算机委托给远程计算机。 这种做法会增加远程作的安全风险。 如果远程计算机遭到入侵,则当凭据传递给该计算机时,凭据可用于控制网络会话。

类型:AuthenticationMechanism
别名:auth, am
接受的值:None, Default, Digest, Negotiate, Basic, Kerberos, ClientCertificate, Credssp
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-CertificateThumbprint

指定有权执行此作的用户帐户的数字公钥证书(X509)。 输入证书的证书指纹。

证书用于基于客户端证书的身份验证。 它们只能映射到本地用户帐户;它们不适用于域帐户。

若要获取证书指纹,请使用 Windows PowerShell 证书:驱动器中的 Get-ItemGet-ChildItem 命令。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ComputerName

指定要对其运行管理作的计算机。 该值可以是完全限定的域名、NetBIOS 名称或 IP 地址。 使用本地计算机名称、使用 localhost 或使用点(.)指定本地计算机。 本地计算机是默认值。 当远程计算机与用户位于不同的域中时,必须使用完全限定的域名。 可以将此参数的值通过管道传递给 cmdlet。

类型:String
别名:cn
Position:0
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ConnectionURI

指定连接终结点。 此字符串的格式如下所示:

<Transport>://<Server>:<Port>/<ApplicationName>

以下字符串是此参数的格式正确的值:

http://Server01:8080/WSMAN

URI 必须完全限定。

类型:Uri
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Credential

指定有权执行此作的用户帐户。 默认值为当前用户。 键入用户名,例如 User01Domain01\User01User@Domain.com。 或者,输入 PSCredential 对象,例如 Get-Credential cmdlet 返回的对象。 键入用户名时,此 cmdlet 会提示输入密码。

类型:PSCredential
别名:cred, c
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-OptionSet

指定一组切换到服务以修改或优化请求的性质。 这些开关类似于命令行 shell 中使用的开关,因为它们特定于服务。 可以指定任意数量的选项。

以下示例演示传递 a、b 和 c 参数的值 1、2 和 3 的语法:

-OptionSet @{a=1;b=2;c=3}

类型:Hashtable
别名:os
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Port

指定客户端连接到 WinRM 服务时要使用的端口。 当传输为 HTTP 时,默认端口为 80。 当传输为 HTTPS 时,默认端口为 443。

使用 HTTPS 作为传输时,ComputerName 参数的值必须与服务器的证书公用名(CN)匹配。 但是,如果将 SkipCNCheck 参数指定为 SessionOption 参数的一部分,则服务器的证书公用名不必与服务器的主机名匹配。 SkipCNCheck 参数应仅用于受信任的计算机。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SessionOption

指定 WS-Management 会话的扩展选项。 输入使用 New-WSManSessionOption cmdlet 创建的 SessionOption 对象。 有关可用选项的详细信息,请键入 Get-Help New-WSManSessionOption

类型:SessionOption
别名:so
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-UseSSL

指定安全套接字层 (SSL) 协议用于建立与远程计算机的连接。 默认情况下,不使用 SSL。

WS-Management 加密通过网络传输的所有 Windows PowerShell 内容。 使用 UseSSL 参数可以指定 HTTPS 的附加保护,而不是 HTTP。 如果在用于连接的端口上不可用 SSL,并且指定此参数,命令将失败。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

None

此 cmdlet 不返回任何输出。

备注

可以在远程计算机上运行管理命令或查询管理数据,而无需创建 WS-Management 会话。 可以使用 Invoke-WSManActionGet-WSManInstanceComputerName 参数来执行此作。 使用 ComputerName 参数时,Windows PowerShell 将创建用于单个命令的临时连接。 命令运行后,连接将关闭。