使用 Windows PowerShell 脚本创建工作流

可以通过编写Windows PowerShell脚本来创建工作流。 若要创建工作流,请在脚本正文之前使用工作流关键字后跟工作流的名称。 例如:


workflow Invoke-HelloWorld {"Hello World from workflow"}

以与任何其他Windows PowerShell命令相同的方式找到工作流。

实现并行和序列

Windows Workflow Foundation 支持并行执行活动。 若要在Windows PowerShell脚本中实现此功能,请使用parallel脚本块前面的关键字。 还可以使用构造 foreach -parallel 并行循环访问对象的集合。 若要在并行块中按顺序执行一组活动,请将该组活动括在脚本块中,并在块前面加上序列关键字。

将计算机加入域

以下脚本创建一个工作流,用于检查一组用户指定的计算机的域状态,如果尚未加入域,则将其加入域,然后再次检查状态。 这是使用Windows PowerShell活动创建工作流中所述的 XAML 工作流的脚本版本。

workflow Join-Domain
{
    param([string[]] $ComputerName, [PSCredential] $DomainCred, [PsCredential] $MachineCred)

    foreach -parallel($Computer in $ComputerName)
    {
        sequence {
        Get-WmiObject -PSComputerName $Computer -PSCredential $MachineCred
        Add-Computer -PSComputerName $Computer -PSCredential $DomainCred
        Restart-Computer -ComputerName $Computer -Credential $MachineCred -For PowerShell -Force -Wait -PSComputerName ""
        Get-WmiObject -PSComputerName $Computer -PSCredential $MachineCred
        }
    }
}