[-ThrottleLimit ] [-SessionOption ] [-Authentication ] [-CertificateThumbprint ] []
New-PSSession
   [-Credential <PSCredential>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ConfigurationName <String>]
   [-ThrottleLimit <Int32>]
   [-ConnectionUri] <Uri[]>
   [-AllowRedirection]
   [-SessionOption <PSSessionOption>]
   [-Authentication <AuthenticationMechanism>]
   [-CertificateThumbprint <String>]
   [<CommonParameters>]
New-PSSession
   -Credential <PSCredential>
   [-Name <String[]>]
   [-ConfigurationName <String>]
   [-VMId] <Guid[]>
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   -Credential <PSCredential>
   [-Name <String[]>]
   [-ConfigurationName <String>]
   -VMName <String[]>
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [[-Session] <PSSession[]>]
   [-Name <String[]>]
   [-EnableNetworkAccess]
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-ConfigurationName <String>]
   -ContainerId <String[]>
   [-RunAsAdministrator]
   [-ThrottleLimit <Int32>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-UseWindowsPowerShell]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-Port <Int32>]
   [-HostName] <String[]>
   [-UserName <String>]
   [-KeyFilePath <String>]
   [-Subsystem <String>]
   [-ConnectingTimeout <Int32>]
   [-SSHTransport]
   [-Options <Hashtable>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   -SSHConnection <Hashtable[]>
   [<CommonParameters>]

cmdlet New-PSSession 在本地或远程计算机上 ( PSSession ) 创建 PowerShell 会话。 创建 PSSession 时,PowerShell 会与远程计算机建立持久连接。

使用 PSSession 运行共享数据的多个命令,例如函数或变量的值。 若要在 PSSession 中运行命令,请使用 Invoke-Command cmdlet。 若要使用 PSSession 直接与远程计算机交互,请使用 Enter-PSSession cmdlet。 有关详细信息,请参阅 about_PSSessions

可以在远程计算机上运行命令,而无需使用 或 Invoke-Command Enter-PSSession ComputerName 参数创建 PSSession 。 使用 ComputerName 参数时,PowerShell 会创建用于命令的临时连接,然后关闭该连接。

从 PowerShell 6.0 开始,如果本地计算机上提供 SSH,并且远程计算机配置了 PowerShell SSH 终结点,则可以使用安全外壳 (SSH) 与远程计算机建立连接并在其上创建会话。 基于 SSH 的 PowerShell 远程会话的优势在于,它可以跨多个平台工作, (Windows、Linux、macOS) 。 对于基于 SSH 的会话,请使用 HostName SSHConnection 参数集来指定远程计算机和相关连接信息。 有关如何设置 PowerShell SSH 远程处理的详细信息,请参阅 通过 SSH 进行 PowerShell 远程处理

将 WSMan 远程处理从 Linux 或 macOS 客户端与服务器证书不受信任(例如自签名证书) (HTTPS 终结点配合使用时,) 。 必须提供 PSSessionOption ,其中包含 SkipCACheck SkipCNCheck 值设置为 $true 才能成功建立连接。 仅当处于可以确定服务器证书和与目标系统的网络连接的环境中时,才执行此操作。

示例 1:在本地计算机上创建会话

$s = New-PSSession

此命令在本地计算机上创建新的 PSSession ,并将 PSSession 保存在 变量中 $s

现在可以使用此 PSSession 在本地计算机上运行命令。

示例 2:在远程计算机上创建会话

$Server01 = New-PSSession -ComputerName Server01

此命令在 Server01 计算机上创建新的 PSSession 并将其保存在 变量中 $Server01

创建多个 PSSession 对象时,请将它们分配给具有有用名称的变量。 这将帮助你在后续命令中管理 PSSession 对象。

示例 3:在多台计算机上创建会话

$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03

此命令创建三个 PSSession 对象,在 ComputerName 参数指定的每台计算机上创建一个对象。

该命令使用赋值运算符 ( = ) 将新的 PSSession 对象分配给变量: $s1 $s2 $s3 。 它将 Server01 PSSession 分配给 $s1 ,将 Server02 PSSession 分配给 $s2 ,将 Server03 PSSession 分配给 $s3

将多个对象分配给一系列变量时,PowerShell 会将每个对象分别分配给序列中的一个变量。 如果对象多于变量,则所有剩余对象都将分配给最后一个变量。 如果变量多于对象,则其余变量为空 ( $null ) 。

示例 4:创建具有指定端口的会话

New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12

此命令在连接到服务器端口 8081 并使用 SSL 协议的 Server01 计算机上创建新的 PSSession 。 新的 PSSession 使用名为 的 E12 备用会话配置。

在设置端口前,你必须将远程计算机上的 WinRM 侦听器配置为侦听端口 8081。 有关详细信息,请参阅 Port 参数的说明。

示例 5:基于现有会话创建会话

New-PSSession -Session $s -Credential Domain01\User01

此命令创建与现有 PSSession 具有相同属性 的 PSSession 。 当现有 PSSession 的资源耗尽并且需要新的 PSSession 来卸载某些需求时,可以使用此命令格式。

命令使用 的 New-PSSession Session 参数指定保存在 变量中的 $s PSSession 。 它使用用户的凭据 Domain1\Admin01 来完成命令。

示例 6:在不同的域中创建具有全局范围的会话

$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01

此示例演示如何在不同域中的计算机上创建具有全局范围的 PSSession

默认情况下,在命令行中创建的 PSSession 对象是使用本地作用域创建的,在脚本中创建的 PSSession 对象具有脚本范围。

若要创建具有全局范围的 PSSession ,请创建新的 PSSession ,然后将 PSSession 存储在强制转换为全局范围的变量中。 在这种情况下,变量 $s 将强制转换为全局范围。

该命令使用 ComputerName 参数指定远程计算机。 由于计算机与用户帐户位于不同的域中,因此计算机全名与用户的凭据一起指定。

示例 7:为多台计算机创建会话

$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50

此命令在文件中列出的 Servers.txt 200 台计算机上创建 PSSession ,并将生成的 PSSession 存储在 变量中 $rs PSSession 对象的限制为 50

当计算机名称存储在数据库、电子表格、文件文件中或以其他可转换为文本的格式存储时,可以使用此命令格式。

示例 8:使用 URI 创建会话

$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01

此命令在 Server01 计算机上创建 PSSession 并将其存储在 变量中 $s 。 它使用 URI 参数指定传输协议、远程计算机、端口和备用会话配置。 它还使用 Credential 参数指定有权在远程计算机上创建会话的用户帐户。

示例 9:在一组会话中运行后台作业

$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob

这些命令创建一组 PSSession 对象,然后在每个 PSSession 对象中运行后台作业。

第一个命令在文件中列出的 Servers.txt 每台计算机上创建新的 PSSession 。 它使用 New-PSSession cmdlet 创建 PSSession ComputerName 参数的值是一个命令,该命令使用 Get-Content cmdlet 获取文件的计算机名称 Servers.txt 列表。

命令使用 Credential 参数创建具有域管理员权限的 PSSession 对象,并使用 ThrottleLimit 参数将命令限制为 16 并发连接。 命令将 PSSession 对象保存在 变量中 $s

第二个命令使用 cmdlet 的 Invoke-Command AsJob 参数启动后台作业,该作业在 中的每个 PSSession 对象中 $s 运行命令 Get-Process PowerShell

有关 PowerShell 后台作业的详细信息,请参阅 about_Jobs about_Remote_Jobs

示例 10:使用计算机的 URI 创建会话

New-PSSession -ConnectionURI https://management.exchangelabs.com/Management

此命令创建一个 PSSession 对象,该对象连接到由 URI 而不是计算机名称指定的计算机。

示例 11:创建会话选项

$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01

此示例演示如何创建会话选项对象并使用 SessionOption 参数。

第一个命令使用 New-PSSessionOption cmdlet 创建会话选项。 它将生成的 SessionOption 对象保存在 变量中 $so

第二个命令在新会话中使用该选项。 命令使用 New-PSSession cmdlet 创建新会话。 SessionOption 参数的值是 变量中的 $so SessionOption 对象。

示例 12:使用 SSH 创建会话

New-PSSession -HostName UserA@LinuxServer01

此示例演示如何使用安全外壳 (SSH) 创建新的 PSSession 。 如果在远程计算机上将 SSH 配置为提示输入密码,则会收到密码提示。 否则,必须使用基于 SSH 密钥的用户身份验证。

示例 13:使用 SSH 创建会话并指定端口和用户身份验证密钥

New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath c:\<path>\userAKey_rsa

此示例演示如何使用安全外壳 (SSH) 创建 PSSession 。 它使用 Port 参数指定要使用的端口,使用 KeyFilePath 参数指定用于标识远程计算机上的用户并对其进行身份验证的 RSA 密钥。

示例 14:使用 SSH 创建多个会话

$sshConnections = @(
          HostName    = 'WinServer1'
          UserName    = 'domain\userA'
          KeyFilePath = 'c:\users\UserA\id_rsa'
        HostName    = 'UserB@LinuxServer5'
        KeyFilePath = 'c:\UserB\<path>\id_rsa'
New-PSSession -SSHConnection $sshConnections

此示例演示如何使用安全外壳 (SSH) 和 SSHConnection 参数集创建多个会话。 SSHConnection 参数采用包含每个会话的连接信息的哈希表数组。 请注意,此示例要求目标远程计算机将 SSH 配置为支持基于密钥的用户身份验证。

示例 15:使用 SSH 选项创建新会话

$options = @{
    Port=22
    User = 'UserB'
    Host = 'LinuxServer5'
New-PSSession -KeyFilePath '/Users/UserB/id_rsa' -Options $options

此示例演示如何使用 SSH 选项在基于 Linux 的远程计算机中创建新的基于 SSH 的会话。 Options 参数采用值的哈希表,这些值作为选项传递给与远程系统建立连接的基础 ssh 命令。

-AllowRedirection

指示此 cmdlet 允许将此连接重定向到备用统一资源标识符 (URI) 。

使用 ConnectionURI 参数时,远程目标将返回一个指令,以重定向到不同的 URI。 默认情况下,PowerShell 不会重定向连接,但你可以使用此参数来启用它来重定向连接。

你也可以通过更改 MaximumConnectionRedirectionCount 会话选项值,限制重定向连接的次数。 使用 cmdlet 的 New-PSSessionOption MaximumRedirection 参数或设置 $PSSessionOption 首选项变量的 MaximumConnectionRedirectionCount 属性。 默认值是 5

Type: SwitchParameter Position:Named Default value:False Accept pipeline input:False Accept wildcard characters:False

-ApplicationName

指定连接 URI 的应用程序名称段。 当命令中未使用 ConnectionURI 参数时,请使用此参数指定应用程序名称。

默认值是 $PSSessionApplicationName 本地计算机上首选项变量的值。 如果未定义此首选项变量,则默认值为 WSMAN 。 该值适用于大多数使用情况。 有关详细信息,请参阅 about_Preference_Variables

WinRM 服务使用应用程序名称来选择为连接请求提供服务的侦听器。 此参数的值应与远程计算机上的侦听器的 URLPrefix 属性值匹配。

Type: String Position:Named Default value:None Accept pipeline input:True Accept wildcard characters:False

-Authentication

指定用于对用户的凭据进行身份验证的机制。 此参数的可接受值为:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential
  • 默认值是 Default

    有关此参数的值的详细信息,请参阅 AuthenticationMechanism 枚举

    凭据安全支持提供程序 (CredSSP) 身份验证,其中用户凭据传递给远程计算机进行身份验证,适用于需要对多个资源进行身份验证的命令,例如访问远程网络共享。 此机制增加了远程操作的安全风险。 如果远程计算机的安全受到威胁,则传递给该计算机的凭据可用于控制网络会话。

    Type: AuthenticationMechanism Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -CertificateThumbprint

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

    在基于客户端证书的身份验证中使用证书。 证书只能映射到本地用户帐户,而不适用于域帐户。

    若要获取证书,请在 Get-Item PowerShell Cert: 驱动器中使用 或 Get-ChildItem 命令。

    Type: String Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -ComputerName

    指定计算机的名称数组。 此 cmdlet 创建 ( PSSession ) 到指定计算机的持久连接。 如果输入多个计算机名称, New-PSSession 将创建多个 PSSession 对象,每个计算机一个。 默认为本地计算机。

    键入一台或多台远程计算机的 NetBIOS 名称、IP 地址或完全限定的域名。 若要指定本地计算机,请键入计算机名称 localhost 或 () 点 . 。 当计算机与用户处于不同的域中时,必须使用完全限定的域名。 还可以以引号将计算机名称通过管道传递给 New-PSSession

    若要在 ComputerName 参数的值中使用 IP 地址,该命令必须包含 Credential 参数。 此外,必须为计算机配置 HTTPS 传输,或者必须在本地计算机上的 WinRM TrustedHosts 列表中包含远程计算机的 IP 地址。 有关将计算机名称添加到 TrustedHosts 列表的说明,请参阅 about_Remote_Troubleshooting 中的“如何将计算机添加到受信任的主机列表”。

    若要在 ComputerName 参数的值中包含本地计算机,请使用“ 以管理员身份运行”选项 启动Windows PowerShell。

    Type: String [ ] Aliases:Cn Position:0 Default value:None Accept pipeline input:True Accept wildcard characters:False

    -ConfigurationName

    指定用于新 PSSession 的会话配置。

    输入会话配置的配置名称或完全限定的资源 URI。 如果仅指定配置名称,则会在前面添加以下架构 URI: http://schemas.microsoft.com/PowerShell

    会话的会话配置位于远程计算机上。 如果远程计算机上不存在指定的会话配置,则该命令会失败。

    默认值是 $PSSessionConfigurationName 本地计算机上首选项变量的值。 如果未设置此首选项变量,则默认值为 Microsoft.PowerShell 。 有关详细信息,请参阅 about_Preference_Variables

    Type: String Position:Named Default value:None Accept pipeline input:True Accept wildcard characters:False

    -ConnectingTimeout

    指定初始 SSH 连接完成所允许的时间(以毫秒为单位)。 如果连接未在指定时间内完成,则返回错误。

    此参数是在 PowerShell 7.2 中引入的

    Type: Int32 Position:Named Default value:unlimited Accept pipeline input:False Accept wildcard characters:False

    -ConnectionUri

    指定定义会话的连接终结点的 URI。 URI 必须完全限定。 此字符串的格式如下:

    <Transport>://<ComputerName>:<Port>/<ApplicationName>

    默认值如下:

    http://localhost:5985/WSMAN

    如果未指定 ConnectionURI ,则可以使用 UseSSL ComputerName Port ApplicationName 参数来指定 ConnectionURI 值。

    URI 的 Transport 段的有效值为 HTTP 和 HTTPS。 如果使用传输段指定连接 URI,但未指定端口,则会使用标准端口创建会话: 80 用于 HTTP 和 443 HTTPS。 若要使用默认端口进行 PowerShell 远程处理,请为 HTTP 或 5986 HTTPS 指定端口 5985

    如果目标计算机将连接重定向到其他 URI,PowerShell 会阻止重定向,除非你在命令中使用 AllowRedirection 参数。

    Type: Uri [ ] Aliases:URI, CU Position:0 Default value:None Accept pipeline input:True Accept wildcard characters:False

    -ContainerId

    指定容器 ID 的数组。 此 cmdlet 将启动与每个指定容器的交互式会话。 docker ps 使用 命令获取容器 ID 的列表。 有关详细信息,请参阅 docker ps 命令的帮助。

    Type: String [ ] Position:Named Default value:None Accept pipeline input:True Accept wildcard characters:False

    -Credential

    指定有权执行此操作的用户帐户。 默认为当前用户。

    键入用户名(如 User01 Domain01\User01 ),或输入 cmdlet Get-Credential 生成的 PSCredential 对象。 如果键入用户名,系统会提示输入密码。

    凭据存储在 PSCredential 对象中,密码存储为 SecureString

    有关 SecureString 数据保护的详细信息,请参阅 SecureString 的安全性如何?

    -EnableNetworkAccess

    指示此 cmdlet 将交互式安全令牌添加到环回会话。 通过交互式令牌,你可以在环回会话中运行用于获取其他计算机中的数据的命令。 例如,你可以在该会话中运行用于将 XML 文件从远程计算机复制到本地计算机的命令。

    环回会话是在同一计算机上开始并终止的 PSSession 。 若要创建环回会话,请省略 ComputerName 参数,或将其值设置为点 ( . ) 、 localhost 或本地计算机的名称。

    默认情况下,此 cmdlet 使用网络令牌创建环回会话,该令牌可能无法提供足够的权限来对远程计算机进行身份验证。

    EnableNetworkAccess 参数仅在环回会话中有效。 如果在远程计算机上创建会话时使用 EnableNetworkAccess ,则命令会成功,但参数将被忽略。

    还可以通过使用 CredSSP Authentication 参数的值在环回会话中启用远程访问,该参数将会话凭据委托给其他计算机。

    为了防止计算机遭到恶意访问,只能从创建会话的计算机重新连接具有交互式令牌的断开连接的环回会话(即使用 EnableNetworkAccess 参数创建的会话)。 断开连接的使用 CredSSP 身份验证的会话可通过其他计算机重新连接。 有关详细信息,请参阅 Disconnect-PSSession

    此参数是在 PowerShell 3.0 中引入的。

    Type: SwitchParameter Position:Named Default value:False Accept pipeline input:False Accept wildcard characters:False

    -HostName

    为安全外壳 (基于 SSH) 的连接指定计算机名称数组。 这类似于 ComputerName 参数,只不过与远程计算机的连接是使用 SSH 而不是 Windows WinRM 建立的。

    此参数是在 PowerShell 6.0 中引入的。

    Type: String [ ] Position:0 Default value:None Accept pipeline input:False Accept wildcard characters:False

    -KeyFilePath

    指定安全外壳 (SSH) 用于对远程计算机上的用户进行身份验证的密钥文件路径。

    SSH 允许通过私钥/公钥执行用户身份验证,作为基本密码身份验证的替代方法。 如果为远程计算机配置了密钥身份验证,则此参数可用于提供标识用户的密钥。

    此参数是在 PowerShell 6.0 中引入的。

    Type: String Aliases:IdentityFilePath Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -Name

    指定 PSSession 的友好名称。

    使用其他 cmdlet(如 Get-PSSession Enter-PSSession )时,可以使用 名称来引用 PSSession 。 对于计算机或当前会话,该名称无需是唯一的。

    Type: String [ ] Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -Options

    指定连接到基于 SSH 的远程会话时使用的 SSH 选项的哈希表。 可能的选项是基于 Unix 的 ssh 命令版本支持的任何值。

    参数显式传递的任何值都优先于 Options 哈希表中传递的值。 例如,使用 Port 参数会替代 在 Options 哈希表中传递的任何 Port 键值对。

    Type: Hashtable Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -Port

    指定远程计算机上用于此连接的网络端口。 若要连接到一台远程计算机,则必须在该连接所用的端口上侦听远程计算机。 默认端口为 5985 (HTTP 的 WinRM 端口)和 5986 (HTTPS 的 WinRM 端口)。

    使用其他端口之前,必须在远程计算机上配置 WinRM 侦听器,才能在该端口上进行侦听。 使用以下命令配置侦听器:

  • winrm delete winrm/config/listener?Address=*+Transport=HTTP
  • winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
  • 除非必要,否则不要使用 Port 参数。 命令中的端口设置适用于运行该命令的所有计算机或会话。 备用端口设置可能会阻止在所有计算机上运行该命令。

    Type: Int32 Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -RunAsAdministrator

    指示 PSSession 以管理员身份运行。

    Type: SwitchParameter Position:Named Default value:False Accept pipeline input:False Accept wildcard characters:False

    -Session

    指定此 cmdlet 用作新 PSSession 的模型的 PSSession 对象的数组。 此参数创建与指定 PSSession 对象具有相同属性的新 PSSession 对象。

    输入包含 PSSession 对象的变量或用于创建或获取 PSSession 对象的命令,如 New-PSSession Get-PSSession 命令。

    生成的 PSSession 对象具有相同的计算机名称、应用程序名称、连接 URI、端口、配置名称、限制和安全套接字层 (SSL) 值,但它们具有不同的显示名称、ID 和实例 ID, (GUID) 。

    Type: PSSession [ ] Position:0 Default value:None Accept pipeline input:True Accept wildcard characters:False

    -SessionOption

    为该会话指定高级选项。 输入 SessionOption 对象,例如使用 New-PSSessionOption cmdlet 创建的会话选项对象,或其中键为会话选项名称且值为会话选项值的哈希表。

    选项的默认值由首选项变量的值 $PSSessionOption (如果已设置)确定。 否则,通过在会话配置中设置的选项创建默认值。

    对于在首选项变量和会话配置中 $PSSessionOption 设置的会话,会话选项值优先于默认值。 但是,它们不优先于在会话配置中设置的最大值、配额或限制。

    有关包含默认值的会话选项的说明,请参阅 New-PSSessionOption 。 有关首选项变量的信息 $PSSessionOption ,请参阅 about_Preference_Variables 。 有关会话配置的详细信息,请参阅 about_Session_Configurations

    Type: PSSessionOption Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -SSHConnection

    此参数采用哈希表数组,其中每个哈希表包含建立安全外壳 (SSH) 连接所需的一个或多个连接参数, ( HostName Port UserName KeyFilePath ) 。

    哈希表连接参数与为 SSHHost 参数集定义的相同。

    SSHConnection 参数可用于创建多个会话,其中每个会话需要不同的连接信息。

    此参数是在 PowerShell 6.0 中引入的。

    Type: Hashtable [ ] Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -SSHTransport

    指示使用安全外壳 (SSH) 建立远程连接。

    默认情况下,PowerShell 使用 Windows WinRM 连接到远程计算机。 此开关强制 PowerShell 使用 HostName 参数集来建立基于 SSH 的远程连接。

    此参数是在 PowerShell 6.0 中引入的。

    Type: SwitchParameter Accepted values:true Position:Named Default value:False Accept pipeline input:False Accept wildcard characters:False

    -Subsystem

    指定用于新 PSSession 的 SSH 子系统。

    这会指定在目标上使用的子系统,如 中 sshd_config 定义的那样。 子系统使用预定义的参数启动特定版本的 PowerShell。 如果远程计算机上不存在指定的子系统,则命令将失败。

    如果未使用此参数,则默认值为 powershell 子系统。

    Type: String Position:Named Default value:powershell Accept pipeline input:True Accept wildcard characters:False

    -ThrottleLimit

    指定为运行此命令可建立的并发连接的最大数目。 如果省略此参数或输入值 0 (零) ,则使用默认值 32

    节流限制仅适用于当前命令,而不适用于会话或计算机。

    Type: Int32 Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -UserName

    指定用于在远程计算机上创建会话的帐户的用户名。 用户身份验证方法取决于安全外壳 (SSH) 在远程计算机上配置的方式。

    如果为基本密码身份验证配置了 SSH,系统将提示你输入用户密码。

    如果为基于密钥的用户身份验证配置了 SSH,则可以通过 KeyFilePath 参数提供密钥文件路径,并且系统不会提示输入密码。 请注意,如果客户端用户密钥文件位于 SSH 已知位置,则基于密钥的身份验证不需要 KeyFilePath 参数,并且用户身份验证会自动根据用户名进行。 有关详细信息,请参阅有关基于密钥的用户身份验证的 SSH 文档。

    这不是必需的参数。 如果未指定 UserName 参数,则将当前登录用户名用于连接。

    此参数是在 PowerShell 6.0 中引入的。

    Type: String Position:Named Default value:None Accept pipeline input:False Accept wildcard characters:False

    -UseSSL

    指示此 cmdlet 使用 SSL 协议与远程计算机建立连接。 默认情况下,不使用 SSL。

    WS-Management加密通过网络传输的所有 PowerShell 内容。 UseSSL 参数提供额外的保护,通过 HTTPS 连接而不是 HTTP 连接发送数据。

    如果使用此参数,但 SSL 在用于命令的端口上不可用,则命令将失败。

    Type: SwitchParameter Position:Named Default value:False Accept pipeline input:False Accept wildcard characters:False

    -UseWindowsPowerShell

    创建到本地系统上的新Windows PowerShell运行空间的远程连接。

    Type: SwitchParameter Position:Named Default value:False Accept pipeline input:False Accept wildcard characters:False

    -VMId

    指定虚拟机 ID 的数组。 此 cmdlet 启动与每个指定虚拟机的 PowerShell Direct 交互式会话。 有关详细信息,请参阅 使用 PowerShell 实现虚拟机自动化和管理

    使用 Get-VM 查看 Hyper-V 主机上可用的虚拟机。

    Type: Guid [ ] Aliases:VMGuid Position:0 Default value:None Accept pipeline input:True Accept wildcard characters:False

    -VMName

    指定一个虚拟机的名称数组。 此 cmdlet 启动与每个指定虚拟机的 PowerShell Direct 交互式会话。 有关详细信息,请参阅 使用 PowerShell 实现虚拟机自动化和管理

    使用 Get-VM 查看 Hyper-V 主机上可用的虚拟机。

    Type: String [ ] Position:Named Default value:None Accept pipeline input:True Accept wildcard characters:False

    String

    可以通过管道将字符串传递给此 cmdlet。

    System.URI

    可以通过管道将 URI 传递给此 cmdlet。

    PSSession

    可以将会话对象通过管道传递给此 cmdlet。

    PSSession

    PowerShell 包含以下别名 New-PSSession

  • 所有平台:

  • 此 cmdlet 使用 PowerShell 远程处理基础结构。 若要使用此 cmdlet,必须为本地计算机和任何远程计算机配置 PowerShell 远程处理。 有关详细信息,请参阅 about_Remote_Requirements

  • 若要在本地计算机上创建 PSSession ,请使用 “以管理员身份运行” 选项启动 PowerShell。

  • 完成 PSSession 后,使用 Remove-PSSession cmdlet 删除 PSSession 并释放其资源。

  • 从 PowerShell 6.0 开始,包括 HostName SSHConnection 参数集。 添加它们以基于安全外壳 (SSH) 提供 PowerShell 远程处理。 SSH 和 PowerShell 在多个平台上都受支持, (Windows、Linux、macOS) 和 PowerShell 远程处理将在安装和配置 PowerShell 和 SSH 的这些平台上工作。 这与之前基于 WinRM 的仅限 Windows 的远程处理不同,许多 WinRM 特定的功能和限制不适用。 例如,不支持基于 WinRM 的配额、会话选项、自定义终结点配置和断开连接/重新连接功能。 有关如何设置 PowerShell SSH 远程处理的详细信息,请参阅 通过 SSH 进行 PowerShell 远程处理

    可执行文件 ssh 按以下顺序从以下源获取配置数据:

  • 命令行选项
  • 用户的配置文件 (~/.ssh/config)
  • 系统范围的配置文件 (/etc/ssh/ssh_config)
  • 以下 cmdlet 参数映射到 ssh 参数和选项中:

    Cmdlet 参数 ssh 参数 等效的 ssh -o 选项