Geek स्कूल PowerShell में रिमोट का उपयोग करना सीखें
PowerShell ऑफ़र की सबसे अच्छी विशेषताओं में से एक आपके सर्वर को दूरस्थ रूप से प्रबंधित करने की क्षमता है। यहां तक कि यह आपको एक बार में उनमें से एक गुच्छा का प्रबंधन करने देता है.
श्रृंखला के पिछले लेखों को अवश्य पढ़ें:
- PowerShell के साथ विंडोज को स्वचालित करने का तरीका जानें
- PowerShell में Cmdlets का उपयोग करना सीखना
- सीखना कैसे PowerShell में वस्तुओं का उपयोग करने के लिए
- PowerShell में लर्निंग फॉर्मेटिंग, फ़िल्टरिंग और तुलना
और पूरे सप्ताह बाकी श्रृंखला के लिए बने रहें.
रिमोटिंग क्या है?
आपके सर्वर का थोक प्रबंधन थकाऊ हो सकता है, और यदि आपको पहले 50 वेबसर्वरों पर IIS कॉन्फ़िगरेशन परिवर्तन करना पड़ा है, तो आपको पता चल जाएगा कि मेरा क्या मतलब है। ये ऐसे प्रकार हैं जब पावरशेल रेमोटिंग और भाषा की स्क्रिप्टिंग क्षमताएं बचाव में आ सकती हैं। HTTP या अधिक सुरक्षित HTTPS का उपयोग करके, PowerShell Remoting आपको नेटवर्क पर एक दूरस्थ मशीन को कमांड भेजने की अनुमति देता है। मशीन तब कमांड चलाता है और आउटपुट को आपके पास वापस भेजता है, जो आपकी स्क्रीन पर प्रदर्शित होता है.
चलो तकनीकी हो जाओ
PowerShell Remoting के मूल में एक एकल Windows सेवा, Windows दूरस्थ प्रबंधन या WinRM सेवा निहित है, जैसा कि यह ज्ञात है। WinRM का उपयोग करके, आप एक या अधिक सत्र कॉन्फ़िगरेशन (जिसे समापन बिंदु के रूप में भी जाना जाता है) सेट कर सकते हैं, जो मूल रूप से ऐसी फ़ाइलें हैं जिनमें आपके दूरस्थ PowerShell इंस्टेंस से कनेक्ट होने वाले व्यक्ति को प्रदान किए गए अनुभव के बारे में जानकारी होती है। अधिक विशेष रूप से, आप यह निर्धारित करने के लिए सत्र कॉन्फ़िगरेशन फ़ाइलों का उपयोग कर सकते हैं कि कौन कौन कर सकता है और कौन से उदाहरण से कनेक्ट नहीं हो सकता है, वे कौन से cmdlets और स्क्रिप्ट चला सकते हैं, साथ ही साथ किस सुरक्षा संदर्भ के तहत सत्र चलाना चाहिए। WinRM सेवा का उपयोग करते हुए, आप "श्रोता" भी सेट करते हैं, जो आने वाले PowerShell अनुरोधों को सुनते हैं। ये "श्रोता" या तो एचटीटीपी या एचटीटीपीएस हो सकते हैं और आपकी मशीन पर एकल आईपी पते के लिए बाध्य हो सकते हैं। जब आप किसी अन्य मशीन के लिए एक PowerShell कनेक्शन खोलते हैं (तकनीकी रूप से यह WS-MAN प्रोटोकॉल का उपयोग करके किया जाता है, जो HTTP पर आधारित है), तो कनेक्शन इन "श्रोताओं" में से एक को बांधता है। "श्रोता" तब उचित सत्र कॉन्फ़िगरेशन फ़ाइल के साथ जुड़े एप्लिकेशन को ट्रैफ़िक भेजने के प्रभारी होते हैं; अनुप्रयोग (सामान्य रूप से PowerShell लेकिन यदि आप चाहें तो अन्य होस्टिंग अनुप्रयोग हो सकते हैं) तो कमांड चलाता है और परिणाम पूरे नेटवर्क में "श्रोता" के माध्यम से और आपकी मशीन पर वापस फीड करता है.
मुझे दिखाओ कि कैसे
पहली चीज जो आपको करने की आवश्यकता है वह उस मशीन पर रीमोटिंग को सक्षम करना है जिसे आप कनेक्ट करना चाहते हैं। यह निम्नलिखित चलाकर किया जा सकता है:
सक्षम करें-PSRemoting
फिर आपको सभी संकेतों का जवाब देने की आवश्यकता होगी। जब आप Enable-PSRemoting चलाते हैं, तो आपके पीसी में कुछ बदलाव किए जाते हैं:
- WinRM सेवा शुरू होती है.
- WinRM सेवा मैन्युअल स्टार्टअप मोड से स्वचालित में बदल जाती है.
- यह एक HTTP श्रोता बनाता है जो आपके सभी नेटवर्क कार्ड से जुड़ा होता है.
- यह WS-MAN प्रोटोकॉल के लिए एक इनबाउंड फ़ायरवॉल अपवाद भी बनाता है.
- कुछ डिफ़ॉल्ट सत्र कॉन्फ़िगरेशन बनाए जाते हैं
यदि आप Windows 7 चला रहे हैं और आपके नेटवर्क कार्ड का स्थान सार्वजनिक पर सेट है, तो PowerShell रीमोटिंग सक्षम करना विफल हो जाएगा। इसे ठीक करने के लिए, बस होम या वर्क नेटवर्क लोकेशन पर जाएँ। वैकल्पिक रूप से, आप निम्नलिखित का उपयोग करके नेटवर्क जांच को छोड़ सकते हैं:
सक्षम करें- PSRemoting -SkipNetworkProfileCheck
हालाँकि, हम आपको अपना नेटवर्क स्थान बदलने की सलाह देते हैं.
PowerShell का उपयोग करके किसी अन्य मशीन से कनेक्ट करने के दो तरीके हैं। एक से एक विधि है, जो SSH का उपयोग करने के समान है, और फिर एक से कई विधि है.
PowerShell सत्र का उपयोग करना
PowerShell का उपयोग करके रिमोट मशीन से कनेक्ट करने का पहला तरीका PowerShell सत्र नामक कुछ का उपयोग कर रहा है। सीधे शब्दों में कहें तो एक सत्र में आप रिमोट मशीन पर कमांडों को इंटरएक्टिव तरीके से चला सकते हैं। एक सत्र खोलने के लिए बस निम्नलिखित टाइप करें:
Enter-PSSession -ComputerName "दरला"
प्रॉम्प्ट एक उपसर्ग प्राप्त करेगा जो उस मशीन को दर्शाता है जिसे आप cmdlets के विरुद्ध चला रहे हैं.
यहाँ से आप वास्तव में प्रॉम्प्ट का इलाज कर सकते हैं जैसे कि आप रिमोट मशीन पर बैठे थे। उदाहरण के लिए, यदि आप C: \ ड्राइव पर सभी फ़ाइलें देखना चाहते हैं, तो आप एक सरल कार्य कर सकते हैं:
Get-ChildItem -Path C: \
यदि आप एक लिनक्स बैकग्राउंड से आते हैं, तो आप SSH के लिए पॉवरशेल विकल्प के रूप में इसे रीमोट करने की एक से एक विधि का उपयोग करने के बारे में सोच सकते हैं.
Invoke-Command का उपयोग करना
दूसरा तरीका जिसे आप रिमोट मशीन पर PowerShell का उपयोग कर सकते हैं, वह Invoke-Command का उपयोग करके है। Invoke-Command का उपयोग करने का लाभ इस तथ्य से आता है कि आप एक ही कमांड को एक साथ कई मशीनों पर निष्पादित कर सकते हैं। जैसा कि आप कल्पना कर सकते हैं, यह विशेष रूप से उपयोगी है जब आप कुछ करना चाहते हैं जैसे कि आपके सर्वर से इवेंट लॉग इकट्ठा करना। इनवोक-कमांड निम्नलिखित सिंटैक्स का अनुसरण करता है:
आह्वान-कमान -कंप्यूटरनाम दरला, लोकलहोस्ट -स्क्रिप्टब्लॉक EventLog एप्लिकेशन -नएस्टेस्ट
चूंकि कमांड को सभी मशीनों के समानांतर में निष्पादित किया जाता है, इसलिए आपको यह देखने के लिए कुछ तरीके की आवश्यकता होगी कि पीसी किस दिए गए परिणाम से आया है। आप PSComputerName प्रॉपर्टी को देखकर ऐसा कर सकते हैं.
जब आप Invoke-Command का उपयोग करते हैं, तो आपके पास अब वे ऑब्जेक्ट नहीं होते हैं जिनकी आप पाइपलाइन में अपेक्षा कर सकते हैं। आप देखते हैं, पॉवरशेल के लिए रिमोट मशीन से अपनी मशीन पर जानकारी प्राप्त करने के लिए, उन्हें उन वस्तुओं का प्रतिनिधित्व करने के कुछ तरीके की आवश्यकता होती है, जो कमांड आप रिमोट मशीन आउटपुट पर चलाते थे। इन दिनों यह एक पदानुक्रमित डेटा संरचना का प्रतिनिधित्व करने के लिए चुना हुआ तरीका लगता है कि XML का उपयोग करना है, जिसका अर्थ है कि जब आप इनवोक-कमांड का उपयोग करके एक आदेश जारी करते हैं, तो परिणाम पहले XML में आपके मशीन पर वापस भेजे जाने से पहले क्रमबद्ध होते हैं। एक बार जब वे आपकी मशीन में वापस आ जाते हैं, तो उन्हें एक वस्तु में वापस दे दिया जाता है; गोटचा यहाँ है कि जब वे deserialized हैं, सभी तरीकों को छोड़कर, ToString () विधि से, कि ऑब्जेक्ट को उससे छीन लिया गया था.
नोट: इस नियम के कुछ अपवाद हैं, उदाहरण के लिए पूर्णांक जैसे अधिकांश आदिम प्रकार इसके तरीकों के साथ deserialized हो सकते हैं। रिहाइड्रेशन नामक एक प्रक्रिया भी होती है, जिसमें कुछ तरीकों को डीएरिएलाइज्ड ऑब्जेक्ट में वापस जोड़ा जा सकता है। तो बस सावधान रहें और याद रखें कि गेट-मेंबर आपका दोस्त है.
घर का पाठ
- डॉन जोन्स द्वारा पॉवरशेल रेमोटिंग ईबुक के रहस्य को पढ़ें.