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