Doserv 发表于:13年09月29日 10:39 [翻译] DOIT.com.cn
工作流是Windows PowerShell 3.0中一个显著的新特征,它在Windows 7、Windows Server 2008、Windows Server 2008 R2、Windows 8和Windows Server 2012中均可用。尽管这样,人们仍对工作流的概念、作用和使用方法模糊不清。
我应该在什么时候使用PowerShell工作流呢?
一个PowerShell工作流类似一个增强的PowerShell功能。将命令输入工作流,告诉PowerShell开始运行该工作流。工作流的“强化”表现在支持一些PowerShell没有的特性,如并行运行多个任务。它也缺乏PowerShell中已有的功能,如支持交换机建设。
事实上,这些PowerShell工作流的附加功能并不在PowerShell中运行。相反,它是Windows工作流基础(WWF)的一个部分,最早存在于.NET Framework 3.5版本。
尽管使用PowerShell语法,但必须遵循WWF规则,因此学习曲线比较陡峭。可以使用的变量、命令以及命令之间的数据传输方式都有所改变。
但是该学习曲线很有价值。PowerShell工作流的内置功能能够让多个目标远程机器并行工作,前提是这些机器安装了PowerShell,并且远程功能可用。Windows Server 2012中这些都是默认的。
工作流中还有一些很棒的内置参数。工作流可以被打断和重新开始以适应断电、网络故障和其他临时故障。
当然,工作流并不是实现以上功能的唯一方法。例如向多个并行远程机器发送一个脚本时,需要额外的工作,而Invoke-Command在这方面做得很好。使用“正常”的PowerShell脚本可以避免学习所有的WWF规则和条例。
PowerShell工作流唯一一个真正独特的功能是,它能够中断和重新启动——有很多相关规则和注意事项。在某些情况下,你在PowerShell中编写工作流的方式甚至可能不允许任何中断/恢复能力。