श्रृंखला में पिछले लेखों को पढ़ना सुनिश्चित करें:
- PowerShell के साथ विंडोज स्वचालित करने के लिए जानें
- PowerShell में Cmdlets का उपयोग करना सीखना
और पूरे सप्ताह श्रृंखला के बाकी हिस्सों के लिए देखते रहें।
वस्तुओं
क्या आपने कभी सोचा है कि PowerShell को पारंपरिक लिनक्स शैल के अलावा बैश, या यहां तक कि विरासत कमांड प्रॉम्प्ट के अलावा सेट करता है? जवाब वास्तव में सरल है: परंपरागत गोले आउटपुट टेक्स्ट, जो फ़ॉर्मेटिंग और फ़िल्टरिंग जैसी चीजों को करना मुश्किल बनाता है। निस्संदेह, नौकरी पाने में आपकी मदद करने के लिए उपकरण हैं (sed और grep दिमाग में आते हैं), लेकिन दिन के अंत में, यदि आप किसी भी तरह का भारी टेक्स्ट पार्सिंग करना चाहते हैं, तो आपको नियमित अभिव्यक्तियों को जानना होगा अपने हाथ की पीठ
पावरशेल अंतर्निहित.NET ढांचे का लाभ उठाता है और पाठ के बजाय वस्तुओं का उपयोग करके एक अलग दृष्टिकोण लेता है। ऑब्जेक्ट्स केवल कुछ का प्रतिनिधित्व है। वे उन्हें उपयोग करने के लिए भागों और कार्यों का संग्रह हैं। आइए साइकिल के कुछ हिस्सों पर नज़र डालें और हम उनका उपयोग कैसे कर सकते हैं।
नेट में ऑब्जेक्ट्स दो छोटे अंतरों को छोड़कर बहुत समान हैं: "पार्ट्स" कहा जाता है गुण और "निर्देश" कहा जाता है तरीकों । अगर हम किसी ऑब्जेक्ट के रूप में विंडोज सेवा का प्रतिनिधित्व करना चाहते हैं, तो हम यह तय कर सकते हैं कि तीन गुणों का उपयोग करके इसका वर्णन करना उचित है: सेवा का नाम, राज्य और विवरण। हमें सेवा से बातचीत करने की भी आवश्यकता है, इसलिए हम ऑब्जेक्ट को स्टार्ट, स्टॉप और पॉज़ विधि दे सकते हैं।
पाइपलाइन
पाइपलाइन के साथ बहुत से लिनक्स शैल हैं, जिससे आप उस पाठ को भेज सकते हैं जो एक कमांड पाइपलाइन में अगले कमांड में इनपुट के रूप में आउटपुट करता है। पावरशेल इसे अगले स्तर पर ले जाता है जिससे आप उन ऑब्जेक्ट्स को ले जा सकते हैं जो एक cmdlet आउटपुट करते हैं और पाइपलाइन में अगले cmdlet में इनपुट के रूप में उन्हें पास करते हैं। चाल यह जानती है कि सीएमडीलेट रिटर्न किस प्रकार की वस्तु है, जो गेट-सदस्य सेमीडलेट का उपयोग करते समय वास्तव में आसान है।
Get-Service | Get-Member
इस आलेख के दायरे से परे कारणों के लिए, गुणों और विधियों को संयुक्त रूप से कक्षा के सदस्य कहा जाता है, जो बताते हैं कि आप किसी ऑब्जेक्ट की सभी विधियों और गुणों की सूची प्राप्त करने के लिए गेट-सदस्य cmdlet का उपयोग क्यों करते हैं। हालांकि, गेट-सदस्य cmdlet भी जानकारी का एक और महत्वपूर्ण टुकड़ा, अंतर्निहित वस्तु प्रकार देता है। उपरोक्त स्क्रीनशॉट में, हम देख सकते हैं कि गेट-सेवा प्रकार की वस्तुएं लौटाती है:
System.ServiceProcess.ServiceController
चूंकि पावरशेल ऑब्जेक्ट्स से संबंधित है और पाठ नहीं, पाइपलाइन [1] का उपयोग करके सभी cmdlets को एक साथ जोड़ा जा सकता है। इसका मतलब है कि हमें एक cmdlet खोजने की आवश्यकता है जो पाइपलाइन से System.ServiceProcess.ServiceController ऑब्जेक्ट को स्वीकार करने की तलाश में है।
Get-Command -ParameterType System.ServiceProcess.ServiceController
Get-Help –Name Stop-Service
Get-Help -Name Stop-Service –Full
- गेट-सर्विस सर्विस कंट्रोलर ऑब्जेक्ट देता है
- स्टॉप-सर्विस में इनपुट ऑब्जेक्ट नामक एक पैरामीटर है जो एक या अधिक सर्विस कंट्रोलर इनपुट के रूप में स्वीकार करता है।
- इनपुट ऑब्जेक्ट पैरामीटर पाइपलाइन इनपुट स्वीकार करता है।
इस जानकारी का उपयोग करके हम निम्नलिखित कर सकते हैं:
Get-Service -Name ‘Apple Mobile Device’ | Stop-Service
घर का पाठ
ऑब्जेक्ट पाइपलाइन पर पढ़ें
यदि आपके कोई प्रश्न हैं तो आप मुझे @taybgibb ट्वीट कर सकते हैं, या बस एक टिप्पणी छोड़ सकते हैं।