New-PSWorkflowExecutionOption

创建一个包含用于工作流会话的会话配置选项的对象。

语法

New-PSWorkflowExecutionOption
   [-PersistencePath <String>]
   [-MaxPersistenceStoreSizeGB <Int64>]
   [-PersistWithEncryption]
   [-MaxRunningWorkflows <Int32>]
   [-AllowedActivity <String[]>]
   [-OutOfProcessActivity <String[]>]
   [-EnableValidation]
   [-MaxDisconnectedSessions <Int32>]
   [-MaxConnectedSessions <Int32>]
   [-MaxSessionsPerWorkflow <Int32>]
   [-MaxSessionsPerRemoteNode <Int32>]
   [-MaxActivityProcesses <Int32>]
   [-ActivityProcessIdleTimeoutSec <Int32>]
   [-RemoteNodeSessionIdleTimeoutSec <Int32>]
   [-SessionThrottleLimit <Int32>]
   [-WorkflowShutdownTimeoutMSec <Int32>]
   [<CommonParameters>]

说明

New-PSWorkflowExecutionOption cmdlet 创建一个对象,该对象包含用于工作流会话配置的高级选项,高级选项是为运行 Windows PowerShell 工作流而设计的会话配置。

你可以将 New-PSWorkflowExecutionOption 生成的 PSWorkflowExecutionOption 对象用作可创建或更改会话配置的 cmdlet(例如 Register-PSSessionConfigurationSet-PSSessionConfiguration)的 SessionTypeOption 参数值。

New-PSWorkflowExecutionOption cmdlet 的每个参数都表示 cmdlet 返回的工作流会话配置选项对象的一个属性。 如果省略某个参数,则 cmdlet 将使用该属性的默认值创建对象。

New-PSWorkflowExecutionOption cmdlet 是 Windows PowerShell 工作流功能的一部分。

你还可以将工作流通用参数添加到此命令。 有关工作流通用参数的详细信息,请参阅 about_WorkflowCommonParameters

此 cmdlet 是在 Windows PowerShell 3.0 中引入的。

示例

示例 1:创建工作流选项对象

New-PSWorkflowExecutionOption -MaxSessionsPerWorkflow 10 -MaxDisconnectedSessions 200

SessionThrottleLimit                       : 100
PersistencePath                            : C:\Users\User01\AppData\Local\Microsoft\Windows\PowerShell\WF\PS
MaxPersistenceStoreSizeGB                  : 10
PersistWithEncryption                      : False
MaxRunningWorkflows                        : 30
AllowedActivity                            : {PSDefaultActivities}
OutOfProcessActivity                       : {InlineScript}
EnableValidation                           : True
MaxDisconnectedSessions                    : 200
MaxConnectedSessions                       : 100
MaxSessionsPerWorkflow                     : 10
MaxSessionsPerRemoteNode                   : 5
MaxActivityProcesses                       : 5
ActivityProcessIdleTimeoutSec              : 60
RemoteNodeSessionIdleTimeoutSec            : 60
WorkflowShutdownTimeoutMSec                : 500

此命令使用 New-PSWorkflowExecutionOption cmdlet 将 MaxSessionsPerWorkflow 值增加为 10 并将 MaxDisconnectedSessions 值减小为 200。

输出显示了 cmdlet 返回的对象。

示例 2:使用工作流选项对象

# Create a Workflow Options object and save it in a variable
$wo = New-PSWorkflowExecutionOption -MaxSessionsPerWorkflow 10 -MaxDisconnectedSessions 200
# Create the ITWorkflow session configuration
Register-PSSessionConfiguration -Name ITWorkflows -SessionTypeOption $wo -Force

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Type            Keys                                Name
----            ----                                ----
Container       {Name=ITWorkflows}                  ITWorkflows

Get-PSSessionConfiguration ITWorkflows | Format-List -Property *

Architecture                  : 64
Filename                      : %windir%\system32\pwrshplugin.dll
ResourceUri                   : http://schemas.microsoft.com/powershell/ITWorkflows
MaxConcurrentCommandsPerShell : 1000
allowedactivity               : PSDefaultActivities
UseSharedProcess              : false
ProcessIdleTimeoutSec         : 0
xmlns                         : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
MaxConcurrentUsers            : 5
maxsessionsperworkflow        : 10
lang                          : en-US
sessionconfigurationdata      : <SessionConfigurationData>
                                    <Param Name='PrivateData'>
                                        <PrivateData>
                                            <ParamName='enablevalidation' Value='True'/>
                                            <Param Name='allowedactivity'Value='PSDefaultActivities' />
                                            <Param Name='outofprocessactivity' Value='InlineScript'/>
                                            <Param Name='maxdisconnectedsessions' Value='200' />
                                            <ParamName='maxsessionsperworkflow' Value='10'/>
                                        </PrivateData>
                                    </Param>
                                </SessionConfigurationData>
SupportsOptions               : true
ExactMatch                    : true
RunAsUser                     :
IdleTimeoutms                 : 7200000
PSVersion                     : 3.0
OutputBufferingMode           : Block
AutoRestart                   : false
MaxShells                     : 25
MaxMemoryPerShellMB           : 1024
MaxIdleTimeoutms              : 43200000
outofprocessactivity          : InlineScript
SDKVersion                    : 2
Name                          : ITWorkflows
XmlRenderingType              : text
Capability                    : {Shell}
RunAsPassword                 :
MaxProcessesPerShell          : 15
enablevalidation              : True
Enabled                       : True
maxdisconnectedsessions       : 200
MaxShellsPerUser              : 25
Permission                    :

前两个命令创建一个新的会话配置对象并注册它。

第三个命令使用 Get-PSSessionConfiguration cmdlet 获取 ITWorkflows 会话配置,并使用 Format-List 在列表中显示会话配置的所有属性。输出显示了会话配置中的工作流选项。 具体来说,会话配置具有值为 10 的 MaxSessionsPerWorkflow 属性以及值为 200 的 MaxDisconnectedSessions 属性。

参数

-ActivityProcessIdleTimeoutSec

确定在每个活动主机进程进入空闲状态后,维护该进程所需的时间。 当时间间隔到期时,该进程将关闭。

输入一个值(以秒为单位)。 默认值是 60秒。

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

-AllowedActivity

指定允许在会话中运行的活动。

输入命名空间限定的活动名称,例如 Microsoft.Powershell.HyperV.Activities.*。 支持使用通配符。 默认值 PSDefaultActivities 包括内置的 Windows Workflow Foundation 活动和表示核心 Windows PowerShell cmdlet 的活动。

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

-EnableValidation

验证会话中的所有工作流活动均包含在允许的活动列表中。

默认值为 True。 若要禁用验证,请使用以下命令格式:-EnableValidation:$false

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

-MaxActivityProcesses

指定为支持工作流活动而在会话中创建的最大进程数。 默认值为 5。

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

-MaxConnectedSessions

指定处于操作状态的最大远程会话数。 此配额适用于连接到所有远程节点(目标计算机)的会话。 默认值为 100。

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

-MaxDisconnectedSessions

指定处于断开连接状态的最大远程会话数。 此配额适用于连接到所有远程节点(目标计算机)的会话。 默认值为 1000。

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

-MaxPersistenceStoreSizeGB

指定分配给在会话中运行的工作流的暂留存储的最大大小(以千兆字节为单位)。 超过此大小时,将扩展暂留存储以保存所有永久性数据,但会显示一个警告并向工作流事件日志中写入一条消息。 默认值为 10。

暂留存储包含所有工作流作业的数据。 通过存储数据功能,可在不丢失状态的情况下恢复作业。

Type:Int64
Position:Named
Default value:10
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxRunningWorkflows

指定可在会话中并发运行的最大工作流数。 默认值为 30。

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

-MaxSessionsPerRemoteNode

指定可连接到每个远程节点(目标计算机)的最大会话数。 默认值为 5。

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

-MaxSessionsPerWorkflow

指定为支持每个工作流而创建的最大会话数。 默认值为 5。

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

-OutOfProcessActivity

确定可在进程外运行哪些允许的活动(由 AllowedActivities 参数指定)。 默认值为 InlineScript

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

-PersistencePath

在磁盘上指定存储工作流状态和数据的位置。 通过存储工作流状态和数据,可挂起和恢复工作流,以及从中断和网络故障中恢复工作流。

默认值是 $env:LocalAppData\Microsoft\Windows\PowerShell\WF\PS

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

-PersistWithEncryption

指示工作流对持久性存储中的数据进行加密。 将永久性数据存储在网络共享中时,请考虑使用此功能。

Type:SwitchParameter
Position:Named
Default value:$env:LocalAppData\Microsoft\Windows\PowerShell\WF\PS
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RemoteNodeSessionIdleTimeoutSec

指定在连接到远程节点(目标计算机)的会话进入空闲状态后,维护该会话所需的时间。

输入一个值(以秒为单位)。 默认值是 60秒。

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

-SessionThrottleLimit

指定为支持在会话中启动的所有工作流而创建的操作数。 默认值为 100。

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

-WorkflowShutdownTimeoutMSec

指定在强行挂起会话中的所有工作流后,维护该会话所需的时间。 当超时到期时,Windows PowerShell 将关闭该会话,即使尚未挂起所有工作流也是如此。

输入一个值(以毫秒为单位)。 默认值为 500。

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

输入

None

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

输出

PSWorkflowExecutionOption

备注

当超过由某个选项设置的最大值时,除非参数说明中另有说明,否则用于在该会话中创建另一个实例的命令将失败。 例如,如果 MaxConnectedSessions 的值为 100。 用于向远程节点(目标计算机)创建第 101 个会话的命令将失败。

会话配置对象的属性会根据为会话配置设置的选项以及这些选项的值而有所不同。 此外,使用会话配置文件的会话配置还具有其他属性。

特别是,包括 PSWorkflowExecutionOptions 对象的会话配置的属性会根据工作流选项值而有所不同。 例如,如果会话配置包括为 SessionThrottleLimit 属性设置了一个非默认值的 PSWorkflowExecutionOptions 对象,会话配置将具有 SessionThrottleLimit 属性。 在其他情况下,不会级联。