PowerShell工作流学习-6-向脚本工作流添加检查点

关键点:

a)检查点是工作流当前状态的快照,其中包括变量的当前值以及在该点生成的任何输出,这些信息保存在磁盘。

b)检查点数据保存在托管工作流会话的计算机的硬盘上的用户配置文件中。

c)当工作流通用参数PSPersist为$True时,除了工作流中指定的检查点,还在工作流的开头和结尾处以及每个活动之后添加一个检查点。

d)Checkpoint-Workflow 将立即使用一个检查点,可多次使用 ,并将它置于命令或表达式之后,不能使用任何参数,且不能在InlineScript 脚本块中使用。

e)$PSPersistPreference 首选项变量为$True时,遵循变量定义的每个活动之后使用一个检查点,这等同于针对所有后续活动将 PSPersist 活动参数的值设置为 $true,若要停止添加检查点,请将 $PSPersistPreference 首选项变量的值设置为 $False。此变量仅适用于工作流

f)管道、并行、顺序脚本中的检查点:管道-管道完成之前不使用检查点;并行(Parallel )-在所有目标计算机上运行完 Parallel 脚本块之前不使用检查点;顺序-每台目标计算机上的每个活动完成后都会使用检查点


例c:
$True
除了工作流中指定的检查点,还在工作流的开头和结尾处以及每个活动之后添加一个检查点。
$False
不在工作流的开头和结尾处添加检查点。 仅当在工作流中指定了检查点时,才使用检查点。

Workflow Test-Workflow 
{
  Get-Process -Name wsmprovhost -PSPersist $True
}

PS C:\>Test-Workflow -PSPersist $True PS C:\>Test-Workflow -PSPersist $False

 

 

例d:

Workflow Test-Workflow
{
    $p = Get-Process
    $s = Get-Service
    Checkpoint-Workflow
}

 

例e:

$True
除了工作流中指定的检查点,还在每个活动之后使用一个检查点。 此值会影响工作流中的所有后续活动。
$False
停止添加额外的检查点。 仅当在工作流中指定了检查点时,才使用检查点。

$PSPersistPreference=$True 和 $PSPersistPreference=$False 之间的所有活动添加检查点

Workflow Test-Workflow { $WinRm = Get-Service Winrm $PSPersistPreference = $true $Assets = InlineScript {\\Server\Share\Get-AssetData.ps1} ... $PSPersistPreference = $false Parallel { ... }

 

posted @ 2017-07-11 15:27  万寿宫主  阅读(360)  评论(0编辑  收藏  举报