New-PSWorkflowSession
创建工作流会话。
语法
New-PSWorkflowSession
[[-ComputerName] <String[]>]
[-Credential <Object>]
[-Name <String[]>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-ThrottleLimit <Int32>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-EnableNetworkAccess]
[<CommonParameters>]
说明
New-PSWorkflowSession
cmdlet 创建用户管理的会话(PSSession),该会话专为运行 Windows PowerShell 工作流而设计。 它使用 Microsoft.PowerShell.Workflow 会话配置,其中包括脚本、类型和格式化文件以及工作流所需的选项。
可以使用 New-PSWorkflowSession
或其别名 nwsn
。
还可以向此命令添加工作流通用参数。 有关工作流通用参数的详细信息,请参阅 about_WorkflowCommonParameters
此 cmdlet 已在 Windows PowerShell 3.0 中引入。
示例
示例 1:在远程计算机上创建工作流会话
此示例在 ServerNode01 远程计算机上创建 WorkflowTests 会话。
$params = @{
ComputerName = "ServerNode01"
Name = "WorkflowTests"
SessionOption = (New-PSSessionOption -OutputBufferingMode Drop)
}
New-PSWorkflowSession @params
SessionOption 参数的值是一个 New-PSSessionOption
命令,用于将会话中的输出缓冲模式设置为 Drop。
示例 2:在多台远程计算机上创建工作流会话
此示例在 ServerNode01 和 Server12 计算机上创建工作流会话。 该命令使用 Credential 参数通过域管理员的权限运行。
"ServerNode01", "Server12" |
New-PSWorkflowSession -Name WorkflowSession -Credential Domain01\Admin01 -ThrottleLimit 150
该命令使用 ThrottleLimit 参数将每个命令的限制增加到 150
。 此值优先于在 Microsoft.PowerShell.Workflow 会话配置中设置的默认限制 100
。
参数
-ApplicationName
指定连接 URI 的应用程序名称段。
默认值是本地计算机上的 $PSSessionApplicationName
首选项变量的值。 如果未定义此首选项变量,则默认值为 WSMAN。 此值适用于大多数用途。 有关详细信息,请参阅 about_Preference_Variables。
WinRM 服务使用应用程序名称来选择侦听器来为连接请求提供服务。 此参数的值应与远程计算机上的侦听器的 URLPrefix 属性的值匹配。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Authentication
指定用于对用户凭据进行身份验证的机制。 此参数的可接受值为:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
默认值为 Default
。
CredSSP 身份验证仅适用于 Windows Vista、Windows Server 2008 和更高版本的 Windows作系统。
有关此参数的值的详细信息,请参阅 AuthenticationMechanism 枚举。
谨慎
凭据安全服务提供程序(CredSSP)身份验证(其中用户凭据传递到要进行身份验证的远程计算机)旨在用于需要对多个资源进行身份验证的命令,例如访问远程网络共享。 此机制会增加远程作的安全风险。 如果远程计算机遭到入侵,则传递给它的凭据可用于控制网络会话。
类型: | AuthenticationMechanism |
接受的值: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
默认值: | Default |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-CertificateThumbprint
指定有权执行此作的用户帐户的数字公钥证书(X509)。 输入证书的证书指纹。
证书用于基于客户端证书的身份验证。 它们只能映射到本地用户帐户;它们不适用于域帐户。
若要获取证书指纹,请使用 Windows PowerShell Cert:
驱动器中的 Get-Item
cmdlet 或 Get-ChildItem
cmdlet。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ComputerName
创建到指定计算机的持久性连接(PSSession)。 如果输入多个计算机名称,Windows PowerShell 会创建多个 PSSessions,每个计算机都有一个。 默认值为本地计算机。
键入 NetBIOS 名称、IP 地址或一个或多个远程计算机的完全限定域名。 若要指定本地计算机,请键入计算机名称、localhost
或点(.
)。 当计算机位于与用户不同的域中时,需要完全限定的域名。
还可以通过引号将计算机名称通过管道传递给 New-PSWorkflowSession
。
若要在 ComputerName 参数的值中使用 IP 地址,该命令必须包含 Credential 参数。 此外,必须为计算机配置 HTTPS 传输,或者远程计算机的 IP 地址必须包含在本地计算机上的 WinRM TrustedHosts 列表中。 有关将计算机名称添加到 TrustedHosts 列表的说明,请参阅 about_Remote_Troubleshooting中的“如何将计算机添加到受信任的主机列表”。
类型: | String[] |
别名: | Cn |
Position: | 0 |
默认值: | Local computer |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-Credential
指定有权执行此作的用户帐户。 默认值为当前用户。 键入用户名(如 User01
、Domain01\User01
或 User@Domain.com
),或输入 PSCredential 对象,例如 Get-Credential
cmdlet 返回的用户名。
键入用户名时,此 cmdlet 会提示输入密码。
类型: | Object |
Position: | Named |
默认值: | Current user |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-EnableNetworkAccess
指示此 cmdlet 向环回会话添加交互式安全令牌。 交互式令牌允许在环回会话中运行命令,以便从其他计算机获取数据。 例如,可以在会话中运行将 XML 文件从远程计算机复制到本地计算机的命令。
环回会话是在同一台计算机上发起和结束的 PSSession。 若要创建环回会话,请不要指定 ComputerName 参数或将其值设置为 dot(.
)、localhost
或本地计算机的名称。
默认情况下,将创建具有网络令牌的环回会话,该令牌可能无法提供对远程计算机进行身份验证的足够权限。
EnableNetworkAccess 参数仅在环回会话中有效。 如果在远程计算机上创建会话时指定 EnableNetworkAccess 参数,则命令会成功,但忽略该参数。
还可以使用 Authentication 参数的 CredSSP 值(将会话凭据委托给其他计算机)在环回会话中允许远程访问。
为了防止计算机受到恶意访问,具有交互式令牌的断开连接环回会话(使用 EnableNetworkAccess 参数创建的会话)只能从创建会话的计算机重新连接。 可以使用 CredSSP 身份验证的断开连接会话可以从其他计算机重新连接。 有关详细信息,请参阅 Disconnect-PSSession
cmdlet。
此参数是在 Windows PowerShell 3.0 中引入的。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Name
指定工作流会话的友好名称。 可以将名称与其他 cmdlet 一起使用,例如 Get-PSSession
和 Enter-PSSession
。 该名称不需要对计算机或当前会话是唯一的。
类型: | String[] |
Position: | Named |
默认值: | Session# |
必需: | False |
接受管道输入: | False |
接受通配符: | 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 参数。 命令中的端口设置适用于运行命令的所有计算机或会话。 备用端口设置可能会阻止命令在所有计算机上运行。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-SessionOption
指定会话的高级选项。 输入 SessionOption 对象,例如使用 New-PSSessionOption
cmdlet 创建的对象。
选项的默认值由 $PSSessionOption
首选项变量的值(如果已设置)确定。 否则,默认值由会话配置中设置的选项建立。
会话选项值优先于在 $PSSessionOption
首选项变量和会话配置中设置的会话的默认值。 但是,它们不优先于会话配置中设置的最大值、配额或限制。 有关会话配置的详细信息,请参阅 about_Session_Configurations。
有关会话选项的说明(包括默认值)请参阅 New-PSSessionOption
。
有关 $PSSessionOption
首选项变量的信息,请参阅 about_Preference_Variables。
类型: | PSSessionOption |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ThrottleLimit
指定可建立以运行此命令的最大并发连接数。
如果省略此参数或输入值 0
(零),则使用 Microsoft.PowerShellWorkflow 会话配置 100
的默认值。
限制限制仅适用于当前命令,不适用于会话或计算机。
类型: | Int32 |
Position: | Named |
默认值: | 100 |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-UseSSL
指示此 cmdlet 使用安全套接字层 (SSL) 协议建立与远程计算机的连接。 默认情况下,不使用 SSL。
WS-Management 加密通过网络传输的所有 Windows PowerShell 内容。 UseSSL 参数是一种额外的保护,用于跨 HTTPS 连接而不是 HTTP 连接发送数据。
如果指定此参数,但 SSL 在用于命令的端口上不可用,该命令将失败。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将会话传递给此 cmdlet。
可以通过管道将计算机名称传递给此 cmdlet。
输出
备注
Windows PowerShell 包含以下 New-PSWorkflowSession
别名:
nwsn
New-PSWorkflowSession
命令等效于以下命令:
New-PSSession -ConfigurationName Microsoft.PowerShell.Workflow