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 创建一个专为运行 Windows PowerShell 工作流而设计的用户托管的会话 (PSSession)。 它使用 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 参数的值是可将会话中的输出缓冲模式设置为 DropNew-PSSessionOption 命令。

示例 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 属性值相匹配。

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

-Authentication

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

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

默认值是 Default

CredSSP 身份验证仅在 Windows Vista、Windows Server 2008 和更高版本的 Windows 操作系统中可用。

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

注意

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

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

-CertificateThumbprint

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

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

若要获取证书指纹,请使用 Windows PowerShell Cert: 驱动器中的 Get-Item cmdlet 或 Get-ChildItem cmdlet。

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

-ComputerName

创建与指定计算机的持续性连接 (PSSession)。 如果输入多个计算机名称,Windows PowerShell 将创建多个 PSSession,每台计算机一个。 默认为本地计算机。

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

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

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

-Credential

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

键入用户名时,此 cmdlet 会提示输入密码。

Type:Object
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableNetworkAccess

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

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

默认情况下,创建的环回会话具有网络令牌,该令牌提供的权限可能不足以对远程计算机进行身份验证。

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

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

若要保护计算机免受恶意访问,断开连接的具有交互式令牌(使用 EnableNetworkAccess 参数创建)的环回会话只能通过创建该会话的计算机重新连接。 断开连接的使用 CredSSP 身份验证的会话可通过其他计算机重新连接。 有关详细信息,请参阅 Disconnect-PSSession cmdlet。

已在 Windows PowerShell 3.0 中引入了此参数。

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

-Name

指定工作流会话的友好名称。 可以将名称与其他 cmdlet 一起使用,例如 Get-PSSessionEnter-PSSession。 对于计算机或当前会话,该名称无需是唯一的。

Type:String[]
Position:Named
Default value:Session#
Required:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionOption

为该会话指定高级选项。 输入 SessionOption 对象,例如使用 New-PSSessionOption cmdlet 创建的对象。

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

会话选项值优先于在 $PSSessionOption 首选项变量和会话配置中设置的会话的默认值。 但是,它们不优先于在会话配置中设置的最大值、配额或限制。 有关会话配置的详细信息,请参阅 about_Session_Configurations

有关会话选项(包括默认值)的说明,请参阅 New-PSSessionOption。 有关 $PSSessionOption 首选项变量的信息,请参阅 about_Preference_Variables

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

-ThrottleLimit

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

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

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

-UseSSL

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

WS-Management 对通过网络传输的所有 Windows PowerShell 内容进行加密。 UseSSL 参数是一种额外的保护措施,它通过 HTTPS 连接而不是 HTTP 连接来发送数据。

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

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

输入

PSSession

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

String

可以通过管道将计算机名称传递给此 cmdlet。

输出

PSSession

备注

Windows PowerShell 包含 New-PSWorkflowSession 的以下别名:

  • nwsn

New-PSWorkflowSession 命令等效于以下命令:

New-PSSession -ConfigurationName Microsoft.PowerShell.Workflow