]
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 选项