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 对象作为创建或更改会话配置的 cmdlet SessionTypeOption 参数的值,例如 Register-PSSessionConfigurationSet-PSSessionConfiguration cmdlet。

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。

类型:Int32
Position:Named
默认值:60
必需:False
接受管道输入:False
接受通配符:False

-AllowedActivity

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

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

类型:String[]
Position:Named
默认值:PSDefaultActivities
必需:False
接受管道输入:False
接受通配符:False

-EnableValidation

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

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

类型:SwitchParameter
Position:Named
默认值:True
必需:False
接受管道输入:False
接受通配符:False

-MaxActivityProcesses

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

类型:Int32
Position:Named
默认值:5
必需:False
接受管道输入:False
接受通配符:False

-MaxConnectedSessions

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

类型:Int32
Position:Named
默认值:100
必需:False
接受管道输入:False
接受通配符:False

-MaxDisconnectedSessions

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

类型:Int32
Position:Named
默认值:1000
必需:False
接受管道输入:False
接受通配符:False

-MaxPersistenceStoreSizeGB

指定分配给会话中运行的工作流的持久性存储的最大大小(以 GB 为单位)。 超出大小后,将展开持久性存储以保存所有持久化数据,但显示警告,并将消息写入工作流事件日志。 默认值为 10。

持久性存储包含所有工作流作业的数据。 存储数据的功能允许作业在不丢失状态的情况下恢复。

类型:Int64
Position:Named
默认值:10
必需:False
接受管道输入:False
接受通配符:False

-MaxRunningWorkflows

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

类型:Int32
Position:Named
默认值:30
必需:False
接受管道输入:False
接受通配符:False

-MaxSessionsPerRemoteNode

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

类型:Int32
Position:Named
默认值:5
必需:False
接受管道输入:False
接受通配符:False

-MaxSessionsPerWorkflow

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

类型:Int32
Position:Named
默认值:5
必需:False
接受管道输入:False
接受通配符:False

-OutOfProcessActivity

确定哪些允许的活动(由 AllowedActivities 参数指定)已用完进程。 默认值 InlineScript

类型:String[]
Position:Named
默认值:InlineScript
必需:False
接受管道输入:False
接受通配符:False

-PersistencePath

指定磁盘上存储工作流状态和数据的位置。 存储工作流状态和数据允许暂停和恢复工作流,以及从中断和网络故障中恢复。

默认值为 $Env:LOCALAPPDATA\Microsoft\Windows\PowerShell\WF\PS

类型:String
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-PersistWithEncryption

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

类型:SwitchParameter
Position:Named
默认值:$Env:LOCALAPPDATA\Microsoft\Windows\PowerShell\WF\PS
必需:False
接受管道输入:False
接受通配符:False

-RemoteNodeSessionIdleTimeoutSec

指定连接到远程节点(目标计算机)的会话在空闲时保持多长时间。

以秒为单位输入值。 默认值为 60。

类型:Int32
Position:Named
默认值:60
必需:False
接受管道输入:False
接受通配符:False

-SessionThrottleLimit

指定创建多少个作以支持会话中启动的所有工作流。 默认值为 100。

类型:Int32
Position:Named
默认值:100
必需:False
接受管道输入:False
接受通配符:False

-WorkflowShutdownTimeoutMSec

指定会话在会话中的所有工作流强行挂起后保持会话的时长。 当超时到期时,即使所有工作流尚未暂停,Windows PowerShell 也会关闭会话。

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

类型:Int32
Position:Named
默认值:500
必需:False
接受管道输入:False
接受通配符:False

输入

None

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

输出

PSWorkflowExecutionOption

备注

如果超出选项设置的最大值,则会话中创建另一个实例的命令将失败,除非在参数说明中指出。 例如,如果 MaxConnectedSessions 的值为 100。 创建与远程节点(目标计算机)的第 101 个会话的命令失败。

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

具体而言,包含 PSWorkflowExecutionOptions 对象的会话配置的属性因工作流选项值而异。 例如,如果会话配置包含 PSWorkflowExecutionOptions 对象,该对象为 SessionThrottleLimit 属性设置非默认值,则会话配置具有 SessionThrottleLimit 属性。 否则,它不会。