什么時候使用PowerShell工作流?
工作流是Windows PowerShell 3.0中一個顯著的新特征,它在Windows 7、Windows Server 2008、Windows Server 2008 R2、Windows 8和Windows Server 2012中均可用。盡管這樣,人們?nèi)詫ぷ髁鞯母拍睢⒆饔煤褪褂梅椒:磺濉?/p>
我應(yīng)該在什么時候使用PowerShell工作流呢?
一個PowerShell工作流類似一個增強的PowerShell功能。將命令輸入工作流,告訴PowerShell開始運行該工作流。工作流的“強化”表現(xiàn)在支持一些PowerShell沒有的特性,如并行運行多個任務(wù)。它也缺乏PowerShell中已有的功能,如支持交換機建設(shè)。
事實上,這些PowerShell工作流的附加功能并不在PowerShell中運行。相反,它是Windows工作流基礎(chǔ)(WWF)的一個部分,最早存在于.NET Framework 3.5版本。
盡管使用PowerShell語法,但必須遵循WWF規(guī)則,因此學(xué)習(xí)曲線比較陡峭??梢允褂玫淖兞?、命令以及命令之間的數(shù)據(jù)傳輸方式都有所改變。
但是該學(xué)習(xí)曲線很有價值。PowerShell工作流的內(nèi)置功能能夠讓多個目標遠程機器并行工作,前提是這些機器安裝了PowerShell,并且遠程功能可用。Windows Server 2012中這些都是默認的。
工作流中還有一些很棒的內(nèi)置參數(shù)。工作流可以被打斷和重新開始以適應(yīng)斷電、網(wǎng)絡(luò)故障和其他臨時故障。
當然,工作流并不是實現(xiàn)以上功能的唯一方法。例如向多個并行遠程機器發(fā)送一個腳本時,需要額外的工作,而Invoke-Command在這方面做得很好。使用“正常”的PowerShell腳本可以避免學(xué)習(xí)所有的WWF規(guī)則和條例。
PowerShell工作流唯一一個真正獨特的功能是,它能夠中斷和重新啟動——有很多相關(guān)規(guī)則和注意事項。在某些情況下,你在PowerShell中編寫工作流的方式甚至可能不允許任何中斷/恢復(fù)能力。


2012-07-23 10:36:46




