शुरुआती लोगों के लिए पावरशेल ट्यूटोरियल: पावरशेल स्क्रिप्टिंग सीखें

आइये पावरशेल सीखना शुरू करें Lessसबसे पहले, हम सीखेंगे:

PowerShell क्या है?

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

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

यह पॉवरशेल स्क्रिप्टिंग मूल बातें के लिए एक पूर्ण गाइड है... चलिए शुरू करते हैं!

पॉवरशेल का उपयोग क्यों करें?

पावरशेल का उपयोग करने के कुछ महत्वपूर्ण कारण यहां दिए गए हैं:

  • पॉवरशेल ऑपरेशन सिस्टम के लिए एक अच्छी तरह से एकीकृत कमांड-लाइन अनुभव प्रदान करता है
  • PowerShell .NET फ्रेमवर्क में सभी प्रकारों तक पूर्ण पहुँच की अनुमति देता है
  • सिस्टम प्रशासकों द्वारा विश्वसनीय.
  • PowerShell सर्वर और वर्कस्टेशन घटकों में हेरफेर करने का एक सरल तरीका है
  • यह अधिक आसान वाक्यविन्यास बनाकर सिस्टम प्रशासकों के लिए तैयार किया गया है
  • PowerShell चलाने से अधिक सुरक्षित है VBScript है या अन्य स्क्रिप्टिंग भाषाएँ

पावरशेल इतिहास

PowerShell का पहला संस्करण 1.0 2006 में जारी किया गया था। आज, PowerShell का संस्करण 7.2 है। वर्ष और संस्करण बीतने के साथ, PowerShell की क्षमताएँ और होस्टिंग वातावरण में उल्लेखनीय वृद्धि हुई है।

आइए देखें पावरशेल का संस्करणवार इतिहास:

  • PowerShell संस्करण 1 ने स्थानीय प्रशासन का समर्थन किया Windows सर्वर 2003
  • PowerShell 2.0 को एकीकृत किया गया Windows 7 और Windows सर्वर 2008 R2. यह संस्करण रिमोटिंग का समर्थन करता है और PowerShell की क्षमताओं को बढ़ाता है जैसे लेनदेन, पृष्ठभूमि कार्य, ईवेंट, डिबगिंग, आदि।
  • PowerShell 3.0 को आंतरिक भाग के रूप में जारी किया गया था Windows प्रबंधन ढांचा। इसे स्थापित किया गया था Windows 8 और Windows सर्वर 2012. आप कार्य जोड़ और शेड्यूल कर सकते हैं, सत्र कनेक्टिविटी, स्वचालित मॉड्यूल लोडिंग आदि कर सकते हैं।
  • PowerShell 4.0 के साथ भेजा गया था Windows 8.1 और Windows सर्वर 2012 R2. इस संस्करण में वांछित स्थिति कॉन्फ़िगरेशन, उन्नत डिबगिंग, नेटवर्क डायग्नोस्टिक्स के लिए समर्थन जोड़ा गया।
  • PowerShell 5.0 को आंतरिक भाग के रूप में जारी किया गया था Windows प्रबंधन ढांचा 5. इस संस्करण में रिमोट डिबगिंग, क्लास परिभाषाएँ, .NET गणनाएँ आदि सुविधाएँ प्रदान की गई हैं।
  • PowerShell 7.2 जारी किया गया। यह .NET 6.0 पर बनाया गया है। यह संस्करण नए ऑपरेटर, सरलीकृत और गतिशील त्रुटि दृश्य, स्वचालित नए संस्करण अधिसूचनाएँ आदि प्रदान करता है।

इस पॉवरशेल स्क्रिप्टिंग ट्यूटोरियल में आगे हम पॉवरशेल की विशेषताओं के बारे में जानेंगे।

पॉवरशेल की विशेषताएं

  • पावरशेल रिमोटिंग: PowerShell स्क्रिप्ट और cmdlets को दूरस्थ मशीन पर लागू करने की अनुमति देता है।
  • पृष्ठभूमि नौकरियां: यह आपको स्क्रिप्ट या पाइपलाइन को एसिंक्रोनस रूप से लागू करने में मदद करता है। आप अपनी जॉब्स को स्थानीय मशीन या कई रिमोटली ऑपरेटेड मशीनों पर चला सकते हैं।
  • लेनदेन: cmdlet सक्षम करें और डेवलपर्स को प्रदर्शन करने की अनुमति दें
  • शाम: यह आदेश आपको प्रबंधन और सिस्टम घटनाओं को सुनने, अग्रेषित करने और उन पर कार्रवाई करने में मदद करता है।
  • नेटवर्क फ़ाइल स्थानांतरण: पॉवरशेल बैकग्राउंड इंटेलिजेंट ट्रांसफर सर्विस (BITS) तकनीक का उपयोग करके मशीनों के बीच प्राथमिकता वाले, अतुल्यकालिक, थ्रॉटल, फ़ाइलों के स्थानांतरण के लिए मूल समर्थन प्रदान करता है।

PowerShell कैसे लॉन्च करें

अब इस पॉवरशेल स्क्रिप्ट ट्यूटोरियल में, हम सीखेंगे कि पॉवरशेल को कैसे लॉन्च किया जाए Windows ओएस।

PowerShell सभी नवीनतम संस्करणों में पहले से इंस्टॉल है Windowsहमें PowerShell लॉन्च करने की आवश्यकता है, इसके लिए हमें दिए गए चरणों का पालन करना होगा:

चरण 1) PowerShell को इसमें खोजें Windows. चुनें और क्लिक करें

PowerShell लॉन्च करें

चरण 2) पावर शेल विंडो खुलती है

PowerShell लॉन्च करें

पावरशेल कमांडलेट

एक cmdlet जिसे Command let भी कहा जाता है, एक हल्का कमांड है जिसका उपयोग विंडो आधारित PowerShell वातावरण में किया जाता है। PowerShell इन cmdlets को कमांड प्रॉम्प्ट में आमंत्रित करता है। आप PowerShell APIS का उपयोग करके cmdlets कमांड बना और आमंत्रित कर सकते हैं।

Cmdlet बनाम कमांड

Cmdlets अन्य कमांड-शेल वातावरणों में कमांड से निम्नलिखित तरीकों से भिन्न हैं?

  • Cmdlets हैं . नेट ढाँचा क्लास ऑब्जेक्ट्स इसे अलग से निष्पादित नहीं किया जा सकता
  • कमांडलेट को कोड की मात्र एक दर्जन पंक्तियों से बनाया जा सकता है
  • पार्सिंग, आउटपुट फ़ॉर्मेटिंग और त्रुटि प्रस्तुति को cmdlets द्वारा नियंत्रित नहीं किया जाता है
  • Cmdlets प्रक्रिया ऑब्जेक्ट पर काम करती है। इसलिए टेक्स्ट स्ट्रीम और ऑब्जेक्ट को पाइपलाइनिंग के लिए आउटपुट के रूप में पास नहीं किया जा सकता
  • कमांडलेट रिकॉर्ड-आधारित होते हैं, इसलिए यह एक समय में एक ही ऑब्जेक्ट को प्रोसेस करता है

PowerShell की अधिकांश कार्यक्षमता Cmdlet से आती है जो हमेशा क्रिया-संज्ञा प्रारूप में होती है, न कि बहुवचन में। इसके अलावा, Cmdlet टेक्स्ट नहीं बल्कि ऑब्जेक्ट लौटाता है। एक cmdlet कमांड की एक श्रृंखला है, जो एक से अधिक पंक्तियों की होती है, जिसे .ps1 एक्सटेंशन वाली टेक्स्ट फ़ाइल में संग्रहीत किया जाता है।

एक cmdlet में हमेशा एक क्रिया और एक संज्ञा होती है, जो एक हाइफ़न से अलग होती है। PowerShell सीखने के लिए आपके द्वारा उपयोग की जाने वाली कुछ क्रियाएँ हैं:

  • - कुछ पाना
  • प्रारंभ — कुछ चलाने के लिए
  • बाहर — कुछ आउटपुट करने के लिए
  • रुकें — चलती हुई किसी चीज़ को रोकना
  • सेट — किसी चीज़ को परिभाषित करना
  • नया — कुछ बनाना

PowerShell आदेश

महत्वपूर्ण PowerShell कमांडों की सूची निम्नलिखित है:

मदद लें: PowerShell कमांड और विषयों के बारे में सहायता

उदाहरण: Format-Table कमांड के बारे में सहायता जानकारी प्रदर्शित करें

Get-Help Format-Table

Cmdlet बनाम कमांड

आदेश प्राप्त करें: किसी भी ऐसी चीज़ के बारे में जानकारी प्राप्त करें जिसका उपयोग किया जा सकता है

पॉवरशेल स्क्रिप्ट उदाहरण: आपके मशीन में स्थापित cmdlets, फ़ंक्शन की सूची बनाने के लिए

Get-Command

Cmdlet बनाम कमांड

सेवा प्राप्त करें: 'service' शब्द वाले सभी cmdlets को ढूंढता है.

उदाहरण: “vm” से शुरू होने वाली सभी सेवाएँ प्राप्त करें

Get-Service "vm*"

Cmdlet बनाम कमांड

सदस्य प्राप्त करें: दिखाएँ कि किसी वस्तु के साथ क्या किया जा सकता है

उदाहरण: vm प्रक्रियाओं के सदस्य प्राप्त करें।

Get-Service "vm*" | Get-Member

Cmdlet बनाम कमांड

अन्य आदेश:

  • गेट मॉड्यूल कमांड के पैकेज दिखाता है
  • सामग्री प्राप्त करें यह cmdlet एक फ़ाइल ले सकता है और इसकी सामग्री को संसाधित कर सकता है और इसके साथ कुछ कर सकता है
  • Get- get 'get-' शब्द से शुरू होने वाले सभी cmdlets को ढूँढता है

उदाहरण: एक फ़ोल्डर बनाएँ

New-Item -Path 'X:\Guru99' -ItemType Directory

आउटपुट:

Cmdlet बनाम कमांड

पॉवरशेल डेटा प्रकार

पॉवरशेल डेटा प्रकार
पॉवरशेल डेटा प्रकार

विशेष चर

विशेष चर विवरण
$त्रुटि त्रुटि ऑब्जेक्ट्स की एक सरणी जो नवीनतम त्रुटियों को प्रदर्शित करती है
$होस्ट वर्तमान होस्टिंग एप्लिकेशन का नाम प्रदर्शित करें
$प्रोफ़ाइल डिफ़ॉल्ट शेल के लिए उपयोगकर्ता प्रोफ़ाइल का संपूर्ण पथ संग्रहीत करता है
$पीआईडी प्रक्रिया पहचानकर्ता संग्रहीत करता है
$PSUICulture यह वर्तमान यूआई संस्कृति का नाम रखता है।
$शून्य रिक्त या NULL मान समाहित है.
$झूठ इसमें FALSE मान शामिल है
$सत्य इसमें TRUE मान शामिल है

पॉवरशेल स्क्रिप्ट्स

पॉवरशेल स्क्रिप्ट .ps1 फ़ाइल में संग्रहीत होती हैं। डिफ़ॉल्ट रूप से, आप किसी फ़ाइल पर सिर्फ़ डबल-क्लिक करके स्क्रिप्ट नहीं चला सकते। यह आपके सिस्टम को आकस्मिक नुकसान से बचाता है। स्क्रिप्ट निष्पादित करने के लिए:

चरण 1: उस पर राइट-क्लिक करें और “Run with PowerShell” पर क्लिक करें।

पॉवरशेल स्क्रिप्ट्स

इसके अलावा, एक नीति है जो स्क्रिप्ट निष्पादन को प्रतिबंधित करती है। आप Get-ExecutionPolicy कमांड चलाकर इस नीति को देख सकते हैं।

आपको निम्न में से कोई एक आउटपुट मिलेगा:

  • वर्जित— कोई स्क्रिप्ट की अनुमति नहीं है। यह डिफ़ॉल्ट सेटिंग है, इसलिए जब आप कमांड चलाएँगे तो यह पहली बार प्रदर्शित होगी।
  • सभी हस्ताक्षर— आप किसी विश्वसनीय डेवलपर द्वारा हस्ताक्षरित स्क्रिप्ट चला सकते हैं। इस सेटिंग की मदद से, स्क्रिप्ट निष्पादित करने से पहले आपसे पुष्टि मांगेगी कि आप इसे चलाना चाहते हैं।
  • RemoteSigned— आप अपनी या किसी विश्वसनीय डेवलपर द्वारा हस्ताक्षरित स्क्रिप्ट चला सकते हैं।
  • अप्रतिबंधित— आप कोई भी स्क्रिप्ट चला सकते हैं जिसे आप चलाना चाहते हैं

निष्पादन नीति बदलने के चरण

चरण 1) एक उन्नत PowerShell प्रॉम्प्ट खोलें। PowerShell पर राइट क्लिक करें और “Run as Administrator” चुनें

पॉवरशेल स्क्रिप्ट्स

चरण 2) निम्नलिखित आदेश दर्ज करें

  1. Get-ExecutionPolicy
  2. सेट-एक्सिक्यूशनपॉलिसी अप्रतिबंधित
  3. प्रॉम्प्ट में Y दर्ज करें
  4. Get-ExecutionPolicy

पॉवरशेल स्क्रिप्ट्स

पहली PowerShell स्क्रिप्ट

नोटपैड में निम्नलिखित कमांड लिखें

Write-Host "Hello, Guru99!"

PowerShell स्क्रिप्ट का एक्सटेंशन ps1 है। फ़ाइल को FirstScript.ps1 के रूप में सहेजें

पहली PowerShell स्क्रिप्ट

पॉवरशेल में, कमांड का उपयोग करके स्क्रिप्ट को कॉल करें

& "X:\FirstScript.ps1"

पहली PowerShell स्क्रिप्ट

पावरशेल ISE ​​क्या है?

RSI Windows PowerShell एकीकृत स्क्रिप्टिंग वातावरण (ISE) इसके लिए डिफ़ॉल्ट संपादक है Windows PowerShell. इस ISE में, आप विंडो आधारित GUI वातावरण में कमांड चला सकते हैं, राइटर टेस्ट कर सकते हैं और स्क्रिप्ट डीबग कर सकते हैं। आप मल्टीलाइन एडिटिंग, सिंटैक्स कलरिंग, टैब कम्पलीशन, सेलेक्टिव एक्जीक्यूशन और बहुत सी अन्य चीजें कर सकते हैं।

Windows PowerShell ISE आपको कंसोल पैन में कमांड चलाने की भी अनुमति देता है। हालाँकि, यह उन पैन का भी समर्थन करता है जिनका उपयोग आप अपनी स्क्रिप्ट के स्रोत कोड और अन्य टूल को एक साथ देखने के लिए कर सकते हैं जिन्हें आप ISE में प्लग कर सकते हैं।

आप एक ही समय में कई स्क्रिप्ट विंडो भी खोल सकते हैं। यह विशेष रूप से तब उपयोगी होता है जब आप किसी स्क्रिप्ट को डीबग कर रहे हों जो अन्य स्क्रिप्ट या मॉड्यूल में परिभाषित फ़ंक्शन का उपयोग करती है।

पॉवरशेल ISE

पॉवरशेल ISE

वही स्क्रिप्ट जो हमने नोटपैड में बनाई थी, उसे ISE में भी बनाया जा सकता है

  1. संपादक में कोड पेस्ट करें
  2. स्क्रिप्ट सहेजें
  3. स्क्रिप्ट चलाने के लिए F5 का उपयोग करें
  4. कंसोल में आउटपुट देखें

पॉवरशेल ISE

नमूना 2:

निम्नलिखित कोड नि:शुल्क देगा वर्चुअल मेमोरी आपकी मशीन में

Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost |
Select-Object -Property CSName,FreeVirtualMemory 

पॉवरशेल ISE

PowerShell का Concepts

अब इस शुरुआती ट्यूटोरियल के लिए पावरशेल में, हम महत्वपूर्ण पावरशेल अवधारणाओं के बारे में जानेंगे:

सीएमडीलेट्स Cmdlet बिल्ड-कमांड हैं जो VB या C# जैसी .net भाषाओं में लिखे जाते हैं। यह डेवलपर्स को PowerShell स्नेप-इन लोड करके और लिखकर cmdlets के सेट को विस्तारित करने की अनुमति देता है।
कार्य फंक्शन्स कमांड्स होते हैं जो PowerShell भाषा में लिखे जाते हैं। इसे अन्य IDE जैसे कि विजुअल स्टूडियो और देव.
लिपियों स्क्रिप्ट डिस्क पर .ps1 एक्सटेंशन वाली टेक्स्ट फ़ाइलें होती हैं
अनुप्रयोगों अनुप्रयोग (एप्लीकेशन) मौजूदा विंडोज़ प्रोग्राम हैं।
क्या हो अगर यह cmdlet को निष्पादित न करने के लिए कहता है, लेकिन आपको यह बताता है कि यदि cmdlet चलाया जाए तो क्या होगा।
पुष्टि करें आदेश निष्पादित करने से पहले cmdlet को संकेत देने का निर्देश दें.
वाचाल उच्च स्तर का विवरण देता है.
डीबग करें cmdlet को डिबगिंग जानकारी प्रदान करने का निर्देश देता है.
त्रुटिक्रिया जब कोई त्रुटि होती है तो cmdlet को एक विशिष्ट कार्रवाई करने का निर्देश देता है। अनुमत क्रियाएँ जारी रखें, रोकें, चुपचाप जारी रखें और पूछताछ करें।
त्रुटिचर यह उस चर को निर्दिष्ट करता है जो त्रुटि जानकारी रखता है।
आउटवेरिएबल आउटपुट जानकारी रखने के लिए cmdlet को एक विशिष्ट चर का उपयोग करने के लिए कहता है
बाहरBuffer पाइपलाइन में अगले cmdlet को कॉल करने से पहले ऑब्जेक्ट की विशिष्ट संख्या को होल्ड करने के लिए cmdlet को निर्देश देता है।

PowerShell स्क्रिप्ट का उपयोग करने के लाभ

  • पावरशेल स्क्रिप्ट वास्तव में शक्तिशाली हैं और कम पंक्तियों में बहुत सारा काम कर सकती हैं।
  • चर $ के रूप में घोषित किए जाते हैं
  • चरों का उपयोग कमांड, ऑब्जेक्ट और मानों के आउटपुट को धारण करने के लिए किया जा सकता है।
  • किसी चर का “प्रकार” निर्दिष्ट करना आवश्यक नहीं है।

पॉवरशेल बनाम कमांड प्रॉम्प्ट

PowerShell का कमान के तत्काल
PowerShell गहराई से एकीकृत करता है Windows ओएस. यह एक इंटरैक्टिव कमांड लाइन इंटरफ़ेस और स्क्रिप्टिंग भाषा प्रदान करता है। कमांड प्रॉम्प्ट एक डिफ़ॉल्ट कमांड लाइन इंटरफ़ेस है जो द्वारा प्रदान किया जाता है Microsoftयह एक सरल win32 अनुप्रयोग है जो किसी भी win32 ऑब्जेक्ट के साथ बातचीत और बातचीत कर सकता है। Windows ऑपरेटिंग सिस्टम।
PowerShell में cmdlets का इस्तेमाल किया जाता है। इसे रनटाइम एनवायरनमेंट या ऑटोमेशन स्क्रिप्ट में लागू किया जा सकता है। कमांड प्रॉम्प्ट द्वारा ऐसी कोई सुविधा उपलब्ध नहीं है।
PowerShell उन्हें ऑब्जेक्ट के रूप में मानता है। इसलिए आउटपुट को पाइपलाइन के माध्यम से अन्य cmdlets में इनपुट के रूप में पास किया जा सकता है। कमांड प्रॉम्प्ट या यहां तक ​​कि *nix शेल में, cmdlet से उत्पन्न आउटपुट केवल पाठ की एक धारा नहीं बल्कि वस्तुओं का एक संग्रह है।
पावरशेल सुविधाओं, क्षमताओं और आंतरिक कार्यप्रणाली के संबंध में बहुत उन्नत है। कमांड प्रॉम्प्ट बहुत ही बुनियादी है।

पॉवरशेल के अनुप्रयोग

आज, PowerShell आईटी प्रशासकों के लिए एक आदर्श विकल्प बन गया है क्योंकि यह बड़े कॉर्पोरेट नेटवर्क में प्रबंधन संचालन और प्रयास को आसान बनाता है। उदाहरण के लिए, मान लें कि आप एक बड़े नेटवर्क का प्रबंधन कर रहे हैं जिसमें चार सौ से अधिक सर्वर हैं। अब आप एक नया सुरक्षा समाधान लागू करना चाहते हैं। यह सुरक्षा समाधान एक निश्चित सेवा पर निर्भर करता है जिसे उन सर्वरों पर चलाने की आवश्यकता होती है।

आप निश्चित रूप से प्रत्येक सर्वर पर लॉग इन करके देख सकते हैं कि उनके पास वह सेवा इंस्टॉल और चल रही है या नहीं। हालाँकि, इसमें निश्चित रूप से बहुत सारी मानवीय त्रुटियाँ होती हैं क्योंकि आपके कर्मचारियों को इस गैर-उत्पादक प्रक्रिया पर बहुत समय बिताना पड़ता है।

हालाँकि, यदि आप PowerShell का उपयोग करते हैं, तो आप यह कार्य कुछ ही मिनटों में पूरा कर सकते हैं। ऐसा इसलिए है क्योंकि पूरा ऑपरेशन एक ही स्क्रिप्ट के साथ किया जाता है जो सर्वर पर चल रही सेवाओं के बारे में जानकारी एकत्र करता है।

सारांश

  • Windows PowerShell ऑब्जेक्ट-ओरिएंटेड ऑटोमेशन इंजन और स्क्रिप्टिंग भाषा है
  • पॉवरशेल ऑपरेशन सिस्टम के लिए एक अच्छी तरह से एकीकृत कमांड-लाइन अनुभव प्रदान करता है
  • PowerShell का पहला संस्करण 1.0 2006 में जारी किया गया था
  • PowerShell स्क्रिप्ट और cmdlets को दूरस्थ मशीन पर लागू करने की अनुमति देता है
  • PowerShell सभी नवीनतम संस्करणों में पहले से इंस्टॉल है Windows
  • cmdlet एक हल्का कमांड है जिसका उपयोग विंडो आधारित PowerShell वातावरण में किया जाता है
  • गेट, स्टार्ट, आउट, स्टॉप, सेट, न्यू महत्वपूर्ण पॉवरशेल कमांड हैं
  • बूलियन, बाइट, चैट, दशमलव, दशमलव, लांग PowerShell के महत्वपूर्ण डेटा प्रकार हैं
  • $Error. $Host, $Profile, $PID, $PSUICulture, $NULL PowerShell में उपयोग किए जाने वाले कुछ विशेष चर हैं
  • RSI Windows PowerShell एकीकृत स्क्रिप्टिंग वातावरण (ISE) PowerShell के लिए डिफ़ॉल्ट संपादक है
  • PowerShell गहराई से एकीकृत करता है Windows ओएस जबकि कमांड प्रॉम्प्ट एक डिफ़ॉल्ट कमांड लाइन इंटरफ़ेस है जो द्वारा प्रदान किया जाता है Microsoft
  • PowerShell आईटी प्रशासकों के लिए एक आदर्श विकल्प बन गया है क्योंकि यह बड़े कॉर्पोरेट नेटवर्क में प्रबंधन संचालन और प्रयास को आसान बनाता है