शुरुआती लोगों के लिए पावरशेल ट्यूटोरियल
⚡ स्मार्ट सारांश
पॉवरशेल स्क्रिप्टिंग एक ऑब्जेक्ट-ओरिएंटेड ऑटोमेशन इंजन है जो .NET फ्रेमवर्क पर आधारित है। यह आईटी प्रशासकों को स्वचालन में सहायता करने के लिए कमांडलेट, स्क्रिप्ट और एक स्क्रिप्टिंग भाषा को जोड़ता है। Windowsएक ही कमांड लाइन से सेवाओं का प्रबंधन करें और दूरस्थ मशीनों से कनेक्ट करें।

PowerShell क्या है?
Windows PowerShell का यह एक ऑब्जेक्ट-ओरिएंटेड ऑटोमेशन इंजन और स्क्रिप्टिंग भाषा है। इसे आईटी पेशेवरों और सिस्टम प्रशासकों के लिए डिज़ाइन किया गया है जिन्हें सिस्टम प्रशासन को नियंत्रित और स्वचालित करने की आवश्यकता होती है। Windows और अन्य अनुप्रयोग। पॉवरशेल में सीखे गए सिद्धांतों का विस्तार किया गया है। Windows कमांड प्रॉम्प्ट और Windows नए ऑब्जेक्ट, कमांडलेट और एक शक्तिशाली पाइपलाइन के साथ स्क्रिप्ट होस्ट।
यह स्क्रिप्टिंग की लचीलता, कमांड लाइन की गति और ग्राफिकल यूजर इंटरफेस (GUI) एडमिन टूल की व्यापकता को एक साथ लाता है। इसकी मदद से प्रशासक समस्याओं को कुशलतापूर्वक हल कर सकते हैं और घंटों के मैन्युअल काम को बचा सकते हैं। यह ट्यूटोरियल आपको पॉवरशेल को शुरू से सीखने के लिए आवश्यक बुनियादी बातों से अवगत कराता है।
पॉवरशेल का उपयोग क्यों करें?
पॉवरशेल का उपयोग करने के सबसे महत्वपूर्ण कारण निम्नलिखित हैं:
- यह ऑपरेटिंग सिस्टम के लिए एक सुव्यवस्थित कमांड-लाइन अनुभव प्रदान करता है।
- यह .NET फ्रेमवर्क में मौजूद हर प्रकार के टूल तक पूर्ण पहुंच प्रदान करता है।
- विभिन्न उद्यमों के सिस्टम प्रशासकों द्वारा विश्वसनीय।
- यह आपको कुछ ही पंक्तियों में सर्वर और वर्कस्टेशन घटकों को नियंत्रित करने की सुविधा देता है।
- स्पष्ट क्रिया-संज्ञा वाक्य संरचना के साथ सिस्टम प्रशासकों को ध्यान में रखकर बनाया गया है।
- दौड़ने से ज्यादा सुरक्षित VBScript है या अन्य पुरानी स्क्रिप्टिंग भाषाओं का उपयोग।
पावरशेल इतिहास
पॉवरशेल 1.0 पहली बार 2006 में जारी किया गया था। पॉवरशेल अब संस्करण 7.2 और उससे आगे के संस्करणों में है। जैसे-जैसे नए संस्करण जारी होते गए, इसकी क्षमताएं और होस्टिंग वातावरण काफी विकसित होते गए।
पॉवरशेल का संस्करणवार इतिहास:
- पॉवरशेल 1.0 स्थानीय प्रशासन का समर्थन किया Windows 2003 सर्वर।
- पॉवरशेल 2.0 - साथ एकीकृत Windows 7 और Windows सर्वर 2008 R2। रिमोटिंग, लेनदेन, बैकग्राउंड जॉब, इवेंट और डिबगिंग की सुविधा जोड़ी गई।
- पॉवरशेल 3.0 — के साथ भेजा गया Windows 8 और Windows सर्वर 2012 के भाग के रूप में Windows प्रबंधन ढांचा। निर्धारित कार्य, सत्र कनेक्टिविटी और स्वचालित मॉड्यूल लोडिंग को जोड़ा गया।
- पॉवरशेल 4.0 — के साथ भेजा गया Windows 8.1 और Windows सर्वर 2012 R2। वांछित स्थिति कॉन्फ़िगरेशन, उन्नत डिबगिंग और नेटवर्क डायग्नोस्टिक्स को जोड़ा गया।
- पॉवरशेल 5.0 - का हिस्सा Windows मैनेजमेंट फ्रेमवर्क 5 में रिमोट डीबगिंग, क्लास परिभाषाएँ और .NET एन्यूमरेशन जोड़े गए हैं।
- पॉवरशेल 7.2 — .NET 6.0 पर आधारित। इसमें नए ऑपरेटर, डायनामिक एरर व्यू और स्वचालित संस्करण सूचनाएं जोड़ी गई हैं।
पॉवरशेल की विशेषताएं
- पॉवरशेल रिमोटिंग: किसी रिमोट मशीन पर स्क्रिप्ट और कमांडलेट को लागू करें।
- पृष्ठभूमि संबंधी नौकरियां: स्थानीय मशीन या कई रिमोट मशीनों पर स्क्रिप्ट या पाइपलाइन को अतुल्यकालिक रूप से चलाएं।
- लेन-देन: कमांडलेट और डेवलपर्स को समूहबद्ध ऑपरेशन करने की अनुमति दें जिन्हें एक साथ कमिट या रोलबैक किया जा सकता है।
- आयोजन: प्रबंधन और सिस्टम से संबंधित घटनाओं को सुनें, आगे भेजें और उन पर कार्रवाई करें।
- नेटवर्क फ़ाइल स्थानांतरण: बैकग्राउंड इंटेलिजेंट ट्रांसफर सर्विस (BITS) के माध्यम से मशीनों के बीच प्राथमिकता के आधार पर, अतुल्यकालिक, नियंत्रित फ़ाइल स्थानांतरण के लिए मूल समर्थन।
पॉवरशेल कैसे लॉन्च करें
पॉवरशेल हर हालिया संस्करण में पहले से ही स्थापित है। Windowsइसे निम्नानुसार लॉन्च करें।
चरण 1) PowerShell को इसमें खोजें Windowsफिर उसे चुनें और क्लिक करें।
चरण 2) पॉवरशेल विंडो खुल जाती है।
Cmdlet बनाम कमांड
A सीएमडीलेट (उच्चारण “कमांड-लेट”) पॉवरशेल वातावरण में उपयोग किया जाने वाला एक हल्का कमांड है। पॉवरशेल प्रॉम्प्ट पर कमांडलेट को कॉल करता है, और आप पॉवरशेल API का उपयोग करके अपना खुद का कमांडलेट बना सकते हैं। कमांडलेट पारंपरिक शेल कमांड से निम्नलिखित तरीकों से भिन्न होते हैं:
- Cmdlets हैं . नेट ढाँचा क्लास ऑब्जेक्ट; इन्हें स्टैंडअलोन एक्जीक्यूटेबल के रूप में निष्पादित नहीं किया जा सकता है।
- कमांडलेट को कोड की मात्र एक दर्जन पंक्तियों में लिखा जा सकता है।
- पार्सिंग, आउटपुट फॉर्मेटिंग और त्रुटि प्रस्तुति का प्रबंधन रनटाइम द्वारा किया जाता है, न कि स्वयं कमांडलेट द्वारा।
- कमांडलेट ऑब्जेक्ट के साथ काम करते हैं, इसलिए टेक्स्ट स्ट्रीम और ऑब्जेक्ट दोनों पाइपलाइन के माध्यम से प्रवाहित हो सकते हैं।
- कमांडलेट रिकॉर्ड-आधारित होते हैं और एक समय में एक ही ऑब्जेक्ट को प्रोसेस करते हैं।
पॉवरशेल की अधिकांश कार्यक्षमता कमांडलेट के माध्यम से प्रदान की जाती है, जो हमेशा क्रिया-संज्ञा नामकरण पैटर्न (हमेशा एकवचन) का उपयोग करते हैं। कमांडलेट ऑब्जेक्ट लौटाते हैं, टेक्स्ट नहीं। लिपि कमांडलेट से भिन्न, यह एक टेक्स्ट फ़ाइल में संग्रहीत कमांडों की एक श्रृंखला है। .ps1 विस्तार।
पॉवरशेल सीखने के लिए आप जिन सामान्य क्रियाओं का उपयोग करेंगे उनमें शामिल हैं:
- — कुछ पुनः प्राप्त करना।
- प्रारंभ — कुछ चलाओ।
- बाहर — कुछ आउटपुट करें।
- रुकें — चल रही किसी चीज को रोकें।
- सेट किसी चीज को परिभाषित करना।
- नया — कुछ बनाएं।
महत्वपूर्ण पॉवरशेल कमांड
मदद लें: पॉवरशेल कमांड और विषयों के लिए सहायता देखें।
उदाहरण: इसके लिए सहायता प्रदर्शित करें Format-Table आदेश।
Get-Help Format-Table
आदेश प्राप्त करें: किसी भी ऐसी चीज के बारे में जानकारी प्राप्त करें जिसे लागू किया जा सकता है।
उदाहरण: मशीन पर स्थापित कमांडलेट और फ़ंक्शन की सूची तैयार करना।
Get-Command
सेवा प्राप्त करें: मशीन पर मौजूद सभी सेवाओं का पता लगाता है।
उदाहरण: उन सभी सेवाओं को प्राप्त करें जिनका नाम "vm" से शुरू होता है।
Get-Service "vm*"
सदस्य प्राप्त करें: किसी वस्तु के साथ क्या किया जा सकता है, उसे दर्शाएं।
उदाहरण: Get-Service द्वारा लौटाए गए vm सेवाओं के सदस्यों की सूची बनाएं।
Get-Service "vm*" | Get-Member
अन्य उपयोगी कमांडलेट:
Get-Module— कमांड के स्थापित पैकेज दिखाएँ।Get-Content— किसी फाइल को पढ़ना और उसकी सामग्री को संसाधित करना।Get-*वाइल्डकार्ड — उन सभी कमांडलेट को सूचीबद्ध करें जो “Get-“ से शुरू होते हैं।
उदाहरण: एक फ़ोल्डर बनाएँ।
New-Item -Path 'X:\Guru99' -ItemType Directory
आउटपुट:
पॉवरशेल डेटा प्रकार
पॉवरशेल मानक .NET डेटा प्रकारों का समर्थन करता है, इसलिए आप किसी भी मान को एक चर में साफ-सुथरे तरीके से संग्रहीत कर सकते हैं।
विशेष चर
पॉवरशेल में कई अंतर्निहित विशेष चर उपलब्ध हैं। इनमें से सबसे उपयोगी चर नीचे सूचीबद्ध हैं।
| विशेष चर | विवरण |
|---|---|
| $त्रुटि | हाल ही में हुई त्रुटियों को दर्शाने वाले त्रुटि ऑब्जेक्टों का एक ऐरे। |
| $होस्ट | वर्तमान होस्टिंग एप्लिकेशन का नाम प्रदर्शित करता है। |
| $प्रोफ़ाइल | डिफ़ॉल्ट शेल के लिए उपयोगकर्ता प्रोफ़ाइल का पूरा पथ संग्रहीत करता है। |
| $पीआईडी | प्रक्रिया पहचानकर्ता को संग्रहीत करता है। |
| $PSUICulture | इसमें वर्तमान यूआई संस्कृति का नाम निहित है। |
| $शून्य | इसमें खाली या शून्य मान होता है। |
| $झूठ | इसमें बूलियन मान FALSE शामिल है। |
| $सत्य | इसमें बूलियन TRUE मान होता है। |
पॉवरशेल स्क्रिप्ट्स
पॉवरशेल स्क्रिप्ट इसमें संग्रहीत हैं .ps1 फ़ाइलें। डिफ़ॉल्ट रूप से, आप किसी स्क्रिप्ट को उस पर डबल-क्लिक करके नहीं चला सकते हैं — यह सुरक्षा उपाय सिस्टम को आकस्मिक नुकसान से बचाता है। किसी स्क्रिप्ट को चलाने के लिए, उस पर राइट-क्लिक करें और चुनें पॉवरशेल के साथ चलाएँ.
एक निष्पादन नीति यह नियंत्रित करती है कि किन स्क्रिप्ट को चलाने की अनुमति है। वर्तमान नीति देखने के लिए यहां क्लिक करें। Get-ExecutionPolicyसंभावित मानों में शामिल हैं:
- वर्जित स्क्रिप्ट की अनुमति नहीं है। यह डिफ़ॉल्ट सेटिंग है।
- सभी हस्ताक्षर — केवल विश्वसनीय डेवलपर द्वारा हस्ताक्षरित स्क्रिप्ट ही चलती हैं, और प्रत्येक के लिए पुष्टि की आवश्यकता होती है।
- RemoteSigned — आपकी अपनी स्क्रिप्ट के साथ-साथ विश्वसनीय स्रोतों से हस्ताक्षरित स्क्रिप्ट भी चलती हैं।
- अप्रतिबंधित — कोई भी स्क्रिप्ट चलाई जा सकती है (लेकिन इसका प्रयोग संयम से करें)।
निष्पादन नीति बदलने के चरण:
चरण 1) पॉवरशेल पर राइट-क्लिक करके और चयन करके एक एलिवेटेड पॉवरशेल प्रॉम्प्ट खोलें। प्रशासक के रूप में चलाएँ.
चरण 2) नीचे दिए गए कमांड चलाएं।
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- दर्ज
Yपुष्टि के संकेत पर। Get-ExecutionPolicy
पहली PowerShell स्क्रिप्ट
नोटपैड खोलें और टाइप करें:
Write-Host "Hello, Guru99!"
फ़ाइल को सेव करें .ps1 विस्तार — उदाहरण के लिए, FirstScript.ps1.
पॉवरशेल में, स्क्रिप्ट को निम्न प्रकार से चलाएँ:
& "X:\FirstScript.ps1"
पावरशेल ISE क्या है?
RSI Windows PowerShell एकीकृत स्क्रिप्टिंग वातावरण (ISE) ISE पॉवरशेल का डिफ़ॉल्ट एडिटर है। ISE में आप ग्राफिकल, विंडो-आधारित वातावरण में कमांड चला सकते हैं, टेस्ट लिख सकते हैं और स्क्रिप्ट को डीबग कर सकते हैं। यह मल्टी-लाइन एडिटिंग, सिंटैक्स कलरिंग, टैब कंप्लीशन, सेलेक्टिव एग्जीक्यूशन और अन्य सुविधाओं को सपोर्ट करता है।
PowerShell ISE में एक कंसोल फलक भी होता है जो सीधे कमांड चलाता है, जबकि साइड फलक आपके स्क्रिप्ट के स्रोत और ISE में प्लग किए गए किसी भी टूल को प्रदर्शित करते हैं। आप एक साथ कई स्क्रिप्ट विंडो खोल सकते हैं - यह उन स्क्रिप्ट को डीबग करने में उपयोगी है जो अन्य स्क्रिप्ट या मॉड्यूल में परिभाषित कार्यों पर निर्भर करती हैं।
ISE में पहले वाली स्क्रिप्ट को दोबारा बनाएं:
- कोड को एडिटर में पेस्ट करें।
- स्क्रिप्ट को सेव करें।
- इसे चलाने के लिए F5 दबाएं।
- कंसोल फलक में आउटपुट देखें।
नमूना 2: निम्नलिखित स्क्रिप्ट मुफ्त प्रदर्शित करती है आभासी स्मृति मशीन पर.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell का Concepts
निम्नलिखित अवधारणाएँ पॉवरशेल के रोजमर्रा के कार्यों की शब्दावली का निर्माण करती हैं।
| संकल्पना | विवरण |
|---|---|
| सीएमडीलेट्स | VB या C# जैसी .NET भाषाओं में लिखे गए अंतर्निहित कमांड। डेवलपर पॉवरशेल स्नैप-इन लोड करके या लिखकर इस सेट का विस्तार करते हैं। |
| कार्य | पॉवरशेल भाषा में लिखे गए कमांड, किसी IDE की आवश्यकता के बिना। विजुअल स्टूडियो. |
| लिपियों | डिस्क पर मौजूद टेक्स्ट फ़ाइलें .ps1 विस्तार। |
| अनुप्रयोगों | मौजूदा Windows शेल से संचालित प्रोग्राम। |
| क्या हो अगर | यह कमांडलेट को निष्पादित न करने के लिए कहता है, लेकिन यह वर्णन करने के लिए कहता है कि यदि यह निष्पादित होता है तो क्या होगा। |
| पुष्टि करें | कमांडलेट को निष्पादन से पहले प्रॉम्प्ट करने का निर्देश देता है। |
| वाचाल | यह परिचालन संबंधी अधिक विस्तृत जानकारी प्रदान करता है। |
| डीबग करें | कमांडलेट को डिबगिंग जानकारी उत्सर्जित करने का निर्देश देता है। |
| त्रुटिक्रिया | यह परिभाषित करता है कि त्रुटि होने पर कमांडलेट क्या करता है। अनुमत मान: continue, stop, silentlycontinue, inquire। |
| त्रुटिचर | त्रुटि की जानकारी रखने वाले वेरिएबल का नाम बताता है। |
| आउटवेरिएबल | कमांडलेट को निर्देश देता है कि वह अपने आउटपुट को एक विशिष्ट वेरिएबल में स्टोर करे। |
| बाहरBuffer | पाइपलाइन में भेजने से पहले यह एक निश्चित संख्या में वस्तुओं को अपने पास रखता है। |
पॉवरशेल स्क्रिप्ट का उपयोग करने के लाभ
- पॉवरशेल स्क्रिप्ट शक्तिशाली और संक्षिप्त होती हैं - आप कुछ ही पंक्तियों में बहुत कुछ हासिल कर सकते हैं।
- वेरिएबल्स को इस प्रकार घोषित किया जाता है:
$<variable>वाक्य - विन्यास। - वेरिएबल कमांड आउटपुट, ऑब्जेक्ट और प्रिमिटिव वैल्यू को स्टोर कर सकते हैं।
- वेरिएबल के प्रकार को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता नहीं है।
पॉवरशेल बनाम कमांड प्रॉम्प्ट
| PowerShell का | कमान के तत्काल |
|---|---|
| गहराई से एकीकृत Windowsयह एक इंटरैक्टिव कमांड लाइन और पूर्ण स्क्रिप्टिंग भाषा प्रदान करता है। | डिफ़ॉल्ट कमांड लाइन इंटरफ़ेस द्वारा प्रदान किया गया Microsoftएक सरल Win32 एप्लिकेशन जो अन्य Win32 ऑब्जेक्ट्स से संवाद करता है। |
| यह उन कमांडलेट का उपयोग करता है जिन्हें इंटरैक्टिव रूप से या ऑटोमेशन स्क्रिप्ट के माध्यम से लागू किया जा सकता है। | कोई कमांडलेट नहीं। |
| यह आउटपुट को ऑब्जेक्ट के रूप में मानता है ताकि यह पाइपलाइन के माध्यम से किसी अन्य कमांडलेट में प्रवाहित हो सके। | आउटपुट एक साधारण टेक्स्ट स्ट्रीम है, ऑब्जेक्ट नहीं। |
| विशेषताओं, क्षमताओं और आंतरिक संरचना के मामले में उन्नत। | बेसिक शेल, जो पुराने बैच कार्यों के लिए उपयुक्त है। |
पॉवरशेल के अनुप्रयोग
पॉवरशेल आईटी प्रशासकों के लिए एक मानक विकल्प बन गया है क्योंकि यह बड़े कॉर्पोरेट नेटवर्क में काम के बोझ को काफी कम कर देता है। कल्पना कीजिए कि आपको चार सौ से अधिक सर्वरों का प्रबंधन करना है और एक नया सुरक्षा समाधान लागू करना है जो प्रत्येक होस्ट पर चलने वाली एक विशिष्ट सेवा पर निर्भर करता है।
प्रत्येक सर्वर में मैन्युअल रूप से लॉग इन करना धीमा और त्रुटिपूर्ण होता है। एक सिंगल पॉवरशेल स्क्रिप्ट कुछ ही मिनटों में सभी सर्वरों का सर्वेक्षण कर सकती है, यह बता सकती है कि किन होस्ट पर पहले से ही सेवा चल रही है, और बाकी पर भी इसे सक्षम कर सकती है। स्क्रिप्ट एक बार उद्देश्य को कैप्चर करती है और इसे पूरे नेटवर्क में विश्वसनीय रूप से लागू करती है।
















