PowerShell
पॉवरशेल वर्कफ़्लोज़
खोज…
परिचय
PowerShell वर्कफ़्लो एक विशेषता है जिसे PowerShell संस्करण 3.0 के साथ शुरू किया गया था। वर्कफ़्लो परिभाषाएँ PowerShell फ़ंक्शन परिभाषाओं से बहुत मिलती-जुलती लगती हैं, हालाँकि वे सीधे PowerShell इंजन के बजाय Windows वर्कफ़्लो फ़ाउंडेशन वातावरण में निष्पादित होती हैं।
कई अनोखे "आउट ऑफ बॉक्स" फीचर्स वर्कफ्लो इंजन के साथ शामिल किए गए हैं, विशेष रूप से, नौकरी की दृढ़ता।
टिप्पणियों
PowerShell डेस्कटॉप संस्करण के अंतर्गत PowerShell वर्कफ़्लो सुविधा Microsoft Windows प्लेटफ़ॉर्म पर विशेष रूप से समर्थित है। PowerShell Core Edition, जो Linux, Mac और Windows पर समर्थित है, PowerShell वर्कफ़्लो सुविधा का समर्थन नहीं करता है।
PowerShell वर्कफ़्लो को लिखते समय, ध्यान रखें कि वर्कफ़्लोज़ गतिविधियों को कॉल करते हैं, cmdlets को नहीं। आप अभी भी एक PowerShell वर्कफ़्लो से cmdlets को कॉल कर सकते हैं, लेकिन वर्कफ़्लो इंजन InlineScript
गतिविधि में cmdlet InlineScript
में लपेट देगा। आप InlineScript
गतिविधि के अंदर स्पष्ट रूप से कोड लपेट सकते हैं, जो InlineScript
कोड निष्पादित करता है; डिफ़ॉल्ट रूप से InlineScript
गतिविधि एक अलग प्रक्रिया में चलती है, और परिणाम को कॉलिंग वर्कफ़्लो में लौटाती है।
सरल वर्कफ़्लो उदाहरण
workflow DoSomeWork {
Get-Process -Name notepad | Stop-Process
}
यह एक PowerShell वर्कफ़्लो परिभाषा का एक मूल उदाहरण है।
इनपुट पैरामीटर्स के साथ वर्कफ़्लो
PowerShell फ़ंक्शन की तरह, वर्कफ़्लो इनपुट पैरामीटर को स्वीकार कर सकता है। इनपुट पैरामीटर वैकल्पिक रूप से एक विशिष्ट डेटा प्रकार के लिए बाध्य हो सकते हैं, जैसे कि स्ट्रिंग, पूर्णांक, आदि वर्कफ़्लो घोषणा के बाद सीधे इनपुट मापदंडों के एक ब्लॉक को परिभाषित करने के लिए मानक param
कीवर्ड का उपयोग करें।
workflow DoSomeWork {
param (
[string[]] $ComputerName
)
Get-Process -ComputerName $ComputerName
}
DoSomeWork -ComputerName server01, server02, server03
वर्कफ़्लो को बैकग्राउंड जॉब के रूप में चलाएं
PowerShell वर्कफ़्लोज़ स्वाभाविक रूप से एक पृष्ठभूमि नौकरी के रूप में चलाने की क्षमता से लैस हैं। वर्कफ़्लो को PowerShell बैकग्राउंड जॉब के रूप में कॉल करने के लिए, वर्कफ़्लो लागू करते समय -AsJob
पैरामीटर का उपयोग करें।
workflow DoSomeWork {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
DoSomeWork -AsJob
किसी वर्कफ़्लो में एक समानांतर ब्लॉक जोड़ें
workflow DoSomeWork {
parallel {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
}
पॉवरशेल वर्कफ़्लो की अनूठी विशेषताओं में से एक गतिविधियों के एक ब्लॉक को समानांतर के रूप में परिभाषित करने की क्षमता है। इस सुविधा का उपयोग करने के लिए, अपने वर्कफ़्लो के अंदर parallel
कीवर्ड का उपयोग करें।
समानांतर में वर्कफ़्लो गतिविधियों को कॉल करने से आपके वर्कफ़्लो के प्रदर्शन को बेहतर बनाने में मदद मिल सकती है।