Technical Anshu
Tutorials Blog
पॉवरशेल से EXE गाइड

PS2EXE के साथ पावरशेल स्क्रिप्ट को EXE में कनवर्ट करें संपूर्ण गाइड

आपने एक स्क्रिप्ट लिखी है जो किसी समस्या को दस सेकंड में ठीक कर देती है - लेकिन जिन लोगों को इसकी आवश्यकता है वे पावरशेल नहीं खोलेंगे, निष्पादन नीति नहीं बदलेंगे, और टेक्स्ट फ़ाइल नहीं चलाएंगे। इसे एक EXE में बदलें, वे डबल-क्लिक कर सकते हैं। यहां पूर्ण रूपांतरण है, जो सही ढंग से किया गया है, इसकी सीमाएं स्पष्ट रूप से बताई गई हैं।

By Technical AnshuWindows 10 / 116 minute read
स्क्रिप्ट को चरण दर चरण रूपांतरित और स्क्रीन पर चलता हुआ देखने के लिए वीडियो देखें

प्रत्येक विंडोज़ एडमिन के पास शानदार छोटी स्क्रिप्ट्स का एक फ़ोल्डर होता है जिसका उपयोग कोई और नहीं कर सकता। स्क्रिप्ट ठीक है; पैकेजिंग समस्या है. .ps1 फ़ाइल डबल-क्लिक करने पर नोटपैड में खुलती है, चलने पर नीति चेतावनियाँ ट्रिगर करती है, और गैर-तकनीकी उपयोगकर्ता को वायरस की तरह दिखती है। इसे निःशुल्क PS2EXE मॉड्यूल के साथ EXE में परिवर्तित करने से पैकेजिंग लगभग एक मिनट में ठीक हो जाती है। यह पृष्ठ संपूर्ण कार्य को क्रमबद्ध करता है: रूपांतरण वास्तव में क्या करता है, इंस्टॉल, कमांड, महत्वपूर्ण विकल्प, और परीक्षण जो आपको ईमानदार रखता है।

Windows PowerShell - converting a script
PS C:\Scripts> Install-Module -Name ps2exe PS C:\Scripts> Invoke-PS2EXE -inputFile ".\DiskCleanup.ps1" -outputFile ".\DiskCleanup.exe" PS C:\Scripts> .\DiskCleanup.exe
संपूर्ण रूपांतरण तीन पंक्तियों में - एक बार निःशुल्क PS2EXE मॉड्यूल स्थापित करें, कनवर्ट करें, चलाएँ। दिखाया गया कमांड आउटपुट एक उदाहरण है।
1

रूपांतरण वास्तव में क्या करता है

पॉवरशेल स्क्रिप्ट एक टेक्स्ट फ़ाइल है। इसे खोलने के लिए PowerShell, इसे चलाने के लिए सही निष्पादन नीति और एक ऐसे उपयोगकर्ता की आवश्यकता है जो टेक्स्ट से भरी नीली विंडो से नहीं डरता हो। एक परिवर्तित EXE सभी तीन बाधाओं को दूर करता है: उपयोगकर्ता एक फ़ाइल पर डबल-क्लिक करता है, बिल्कुल किसी अन्य प्रोग्राम की तरह।

इस बारे में स्पष्ट रहें कि उपकरण हुड के नीचे क्या करता है। PS2EXE, इस गाइड द्वारा उपयोग किया जाने वाला निःशुल्क मॉड्यूल, आपकी स्क्रिप्ट को एक छोटे .NET प्रोग्राम के अंदर लपेटता है। स्क्रिप्ट टेक्स्ट एन्कोडेड रूप में EXE के अंदर जाता है, और जब EXE चलता है, तो यह उस स्क्रिप्ट को विंडोज़ में निर्मित पावरशेल इंजन को सौंप देता है। मशीन कोड में कुछ भी संकलित नहीं किया गया है, और स्क्रिप्ट को रहस्य में नहीं बदला गया है - इस सेट में एक बाद का पृष्ठ उस सीमा को पूरी तरह से कवर करता है।

वह रैपर अभी भी वास्तव में उपयोगी है। किसी सहकर्मी को छह निर्देशों वाली एक टेक्स्ट फ़ाइल भेजने और उन्हें एक बटन भेजने के बीच यह अंतर है जो काम करता है।

2

चरण 1 - PS1 का परीक्षण तब तक करें जब तक यह उबाऊ न हो जाए

कभी भी किसी परीक्षण न की गई स्क्रिप्ट को कनवर्ट न करें. EXE कंसोल और त्रुटि स्ट्रीम को इस तरह से छुपाता है जिससे डिबगिंग धीमी हो जाती है, इसलिए प्रत्येक बग को ढूंढना होगा जबकि स्क्रिप्ट अभी भी एक सादा .ps1 है।

  1. स्क्रिप्ट को एक सामान्य उपयोगकर्ता और एक व्यवस्थापक के रूप में चलाएँ
  2. यदि आप कर सकते हैं तो इसे ऐसी मशीन पर चलाएँ जो आपकी नहीं है - पथ और ड्राइव भिन्न-भिन्न हैं
  3. इसे एक बार जानबूझकर गलत इनपुट दें और देखें कि यह क्या करता है
  4. जब यह हर बार एक जैसा व्यवहार करे तभी इसे परिवर्तित करें
3

चरण 2 - PS2EXE मॉड्यूल को एक बार स्थापित करें

PS2EXE को इसके लेखक मार्कस शोल्ट्स द्वारा पावरशेल गैलरी पर प्रकाशित किया गया है और यह मुफ़्त है। आप इसे एक बार अपने पीसी पर इंस्टॉल करें; जो लोग EXE प्राप्त करते हैं वे कुछ भी इंस्टॉल नहीं करते हैं।

  1. PowerShell खोलें और Install-Module -Name ps2exe चलाएँ
  2. पहली बार, PowerShell आपसे PSGallery रिपॉजिटरी पर भरोसा करने के लिए कह सकता है - यदि आपने स्वयं इंस्टॉल शुरू किया है तो हां में उत्तर दें
  3. यदि मॉड्यूल इंस्टॉल अवरुद्ध हैं, तो उन्हें Set-ExecutionPolicy -Scope CurrentUser RemoteSigned के साथ अपने सत्र के लिए अनुमति दें और समझें कि आप केवल अपने खाते पर सुरक्षा सेटिंग बदल रहे हैं

एक ग्राफ़िकल फ्रंट एंड, Win-PS2EXE भी है, जो हर विकल्प को चेकबॉक्स और फ़ील्ड के रूप में दिखाता है। यह कमांड लाइन के समान ही EXE उत्पन्न करता है - जो भी आपको स्पष्ट लगे उसका उपयोग करें।

4

चरण 3 - रूपांतरण चलाएँ

मूल कमांड एक इनपुट स्क्रिप्ट और एक आउटपुट फ़ाइल को नाम देता है:

  1. Invoke-PS2EXE -inputFile ".\DiskCleanup.ps1" -outputFile ".\DiskCleanup.exe"
  2. छोटा उपनाम ps2exe समान पैरामीटर स्वीकार करता है
  3. यदि स्क्रिप्ट एक विंडो या फॉर्म दिखाती है तो -noConsole जोड़ें और आप इसके पीछे एक ब्लैक कंसोल विंडो नहीं चाहते हैं
  4. यदि स्क्रिप्ट सिस्टम सेटिंग्स बदलती है, तो -requireAdmin जोड़ें, इसलिए विंडोज़ स्क्रिप्ट के आधे रास्ते में विफल होने के बजाय लॉन्च के समय उन्नयन की मांग करता है
  5. यदि फ़ाइल साझा की जाएगी तो -iconFile ".\tool.ico" प्लस -title, -product, -company और -version जोड़ें - ये फ़ाइल गुणों के विवरण टैब को भरते हैं

इस पृष्ठ पर लिंक किया गया वीडियो स्क्रीन पर रूपांतरण के माध्यम से चलता है; ऊपर दिए गए विकल्प वही हैं जिनका वह उपयोग करता है, और इस गाइड सेट का बाकी हिस्सा उनमें से प्रत्येक को गहराई से समझाता है।

5

चरण 4 - एक अजनबी की तरह EXE का परीक्षण करें

जहां तक विंडोज़ का सवाल है, परिवर्तित EXE एक नया प्रोग्राम है। इसका परीक्षण उसी प्रकार करें जैसे इसका वास्तविक उपयोगकर्ता इससे मिलेगा:

  1. इसे किसी भिन्न फ़ोल्डर में कॉपी करें और डबल-क्लिक करके चलाएं, अपनी पावरशेल विंडो से नहीं
  2. विफलता को ईमानदारी से देखने के लिए, पहले इसे व्यवस्थापक अधिकारों के बिना चलाएं, भले ही आपने इसे व्यवस्थापक कार्यों के लिए बनाया हो
  3. एंटीवायरस और स्मार्टस्क्रीन प्रतिक्रियाओं पर नज़र रखें और उन्हें ठीक से ठीक करें - इस सेट में उस पर एक पूरा पृष्ठ है
  4. .ps1 स्रोत रखें। EXE केवल एक बिल्ड आउटपुट है; प्रत्येक भविष्य का संपादन स्क्रिप्ट से शुरू होता है
प्रत्येक स्क्रिप्ट-टू-EXE टूल की दो ईमानदार सीमाएँ: EXE के अंदर के स्रोत को पर्याप्त रूप से निर्धारित किसी भी व्यक्ति द्वारा वापस पढ़ा जा सकता है, इसलिए कभी भी परिवर्तित स्क्रिप्ट में पासवर्ड न छिपाएँ; और एक ताज़ा अहस्ताक्षरित EXE अक्सर एंटीवायरस सॉफ़्टवेयर को परेशान करता है जब तक कि वह प्रतिष्ठा अर्जित नहीं कर लेता या हस्ताक्षरित नहीं हो जाता। इस सेट में दोनों विषयों की अपनी-अपनी पूर्ण मार्गदर्शिकाएँ हैं।

वीडियो में देखें पूरी प्रक्रिया

वीडियो में पूरा रूपांतरण देखें - मॉड्यूल इंस्टॉल, जीयूआई और कमांड रूट, और समाप्त EXE रनिंग।

Watch Full Video
अक्सर पूछे जाने वाले प्रश्न

क्या लक्ष्य पीसी को परिवर्तित EXE को चलाने के लिए PowerShell स्थापित करने की आवश्यकता है?

इसके लिए पॉवरशेल इंजन की आवश्यकता होती है जो विंडोज़ के अंदर ही आता है, जिसे विंडोज़ 10 और 11 डिफ़ॉल्ट रूप से ले जाते हैं। उपयोगकर्ता कुछ भी इंस्टॉल नहीं करता है और कभी भी PowerShell नहीं खोलता है - EXE पृष्ठभूमि में इंजन शुरू करता है और उसे आपकी स्क्रिप्ट सौंपता है।

क्या परिवर्तित EXE एक वास्तविक संकलित प्रोग्राम है?

सी या सी तीव्र अर्थ में नहीं. PS2EXE आपके स्क्रिप्ट टेक्स्ट को एक छोटे .NET होस्ट प्रोग्राम के अंदर एन्कोडेड लपेटता है। जब EXE चलता है, तो होस्ट आपकी स्क्रिप्ट को Windows PowerShell इंजन में फ़ीड करता है। व्यवहार .ps1 चलाने के समान है - पैकेजिंग ही बदलती है।

क्या मैं किसी स्क्रिप्ट को मुफ़्त में परिवर्तित कर सकता हूँ, या PS2EXE का भुगतान किया जाता है?

PS2EXE मुफ़्त है. यह मार्कस स्कोल्टेस द्वारा पॉवरशेल गैलरी पर प्रकाशित एक सामुदायिक मॉड्यूल है, जिसे इंस्टाल-मॉड्यूल -नाम ps2exe के साथ स्थापित किया गया है। वाणिज्यिक पैकेजर्स मौजूद हैं, लेकिन मानक रूपांतरण कार्य के लिए मुफ्त मॉड्यूल वीडियो और इस गाइड में उपयोग किया जाने वाला उपकरण है।

यह गाइड तकनीकी अंशू पावरशेल टू EXE वीडियो पर आधारित है - क्या आप किसी भी चरण पर अटके हुए हैं? वीडियो टिप्पणियों में पूछें और आपको वहां उत्तर मिलेगा।