गीक स्कूल: पावरशेल में नौकरियों का उपयोग कैसे करें सीखें

विषयसूची:

गीक स्कूल: पावरशेल में नौकरियों का उपयोग कैसे करें सीखें
गीक स्कूल: पावरशेल में नौकरियों का उपयोग कैसे करें सीखें

वीडियो: गीक स्कूल: पावरशेल में नौकरियों का उपयोग कैसे करें सीखें

वीडियो: गीक स्कूल: पावरशेल में नौकरियों का उपयोग कैसे करें सीखें
वीडियो: Arc Welder - Smoother, Faster, Better 3D Prints! Its like magic to improve your 3D Print quality. - YouTube 2024, मई
Anonim
पावरशेल में चार प्रकार की नौकरियां हैं - पृष्ठभूमि जॉब्स, रिमोट जॉब्स, डब्लूएमआई जॉब्स और अनुसूचित नौकरियां। हमसे जुड़ें क्योंकि हम यह पता लगाते हैं कि वे क्या हैं और हम उनका उपयोग कैसे कर सकते हैं।
पावरशेल में चार प्रकार की नौकरियां हैं - पृष्ठभूमि जॉब्स, रिमोट जॉब्स, डब्लूएमआई जॉब्स और अनुसूचित नौकरियां। हमसे जुड़ें क्योंकि हम यह पता लगाते हैं कि वे क्या हैं और हम उनका उपयोग कैसे कर सकते हैं।

श्रृंखला में पिछले लेखों को पढ़ना सुनिश्चित करें:

  • PowerShell के साथ विंडोज स्वचालित करने के लिए जानें
  • PowerShell में Cmdlets का उपयोग करना सीखना
  • PowerShell में ऑब्जेक्ट्स का उपयोग कैसे करें सीखना
  • PowerShell में स्वरूपण, फ़िल्टरिंग और तुलना करना सीखना
  • PowerShell में रिमोटिंग का उपयोग करना सीखें
  • कंप्यूटर जानकारी प्राप्त करने के लिए PowerShell का उपयोग करना
  • PowerShell में संग्रह के साथ काम करना

और पूरे सप्ताह श्रृंखला के बाकी हिस्सों के लिए देखते रहें।

पृष्ठभूमि नौकरियां

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

Start-Job –Name GetFileList –Scriptblock {Get-ChildItem C: –Recurse}

अब हम शैल के भीतर जो कुछ भी चाहते हैं उसे करने के लिए स्वतंत्र हैं जबकि उस स्क्रिप्ट ब्लॉक पृष्ठभूमि में निष्पादित करता है।
अब हम शैल के भीतर जो कुछ भी चाहते हैं उसे करने के लिए स्वतंत्र हैं जबकि उस स्क्रिप्ट ब्लॉक पृष्ठभूमि में निष्पादित करता है।
जब आप एक नई नौकरी निकाल देते हैं, तो पावरशेल एक नई नौकरी वस्तु बनाता है जो उस नौकरी का प्रतिनिधित्व करता है। गेट-जॉब सेमीडलेट चलाकर आप किसी भी समय सभी नौकरियों की एक सूची प्राप्त कर सकते हैं।
जब आप एक नई नौकरी निकाल देते हैं, तो पावरशेल एक नई नौकरी वस्तु बनाता है जो उस नौकरी का प्रतिनिधित्व करता है। गेट-जॉब सेमीडलेट चलाकर आप किसी भी समय सभी नौकरियों की एक सूची प्राप्त कर सकते हैं।
नौकरी की वस्तुएं आपको नौकरियों की स्थिति के बारे में बताती हैं। उदाहरण के लिए, उपर्युक्त स्क्रीनशॉट में हम देख सकते हैं कि हमारे पास GetJileList नामक पृष्ठभूमि पृष्ठभूमि है जो अभी भी चल रहा है, लेकिन पहले से ही डेटा लौटाना शुरू कर दिया है। यदि किसी भी समय आप यह तय करते हैं कि नौकरी बहुत लंबे समय से चल रही है, तो आप इसे स्टॉप-जॉब पर पाइप करके आसानी से रोक सकते हैं।
नौकरी की वस्तुएं आपको नौकरियों की स्थिति के बारे में बताती हैं। उदाहरण के लिए, उपर्युक्त स्क्रीनशॉट में हम देख सकते हैं कि हमारे पास GetJileList नामक पृष्ठभूमि पृष्ठभूमि है जो अभी भी चल रहा है, लेकिन पहले से ही डेटा लौटाना शुरू कर दिया है। यदि किसी भी समय आप यह तय करते हैं कि नौकरी बहुत लंबे समय से चल रही है, तो आप इसे स्टॉप-जॉब पर पाइप करके आसानी से रोक सकते हैं।

Get-Job –Name GetFileList | Stop-Job

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

Get-Job –Name GetFileList | Receive-Job –Keep

Image
Image

एक बार जब आप नौकरी के साथ समाप्त हो जाते हैं, तो इसे हटाने का सबसे अच्छा अभ्यास है। नौकरी को हटाने के लिए, इसे निकालें-जॉब cmdlet पर बस पाइप करें।

Get-Job –Name GetFileList | Remove-Job

यह इसे जॉब-जॉब द्वारा लौटाई गई नौकरियों की सूची से हटा देगा।

Image
Image

रिमोट जॉब्स

कुछ सबक पहले, हमने देखा कि हम Invoke-Command का उपयोग कर रिमोट मशीन पर PowerShell कमांड निष्पादित करने के लिए रिमोटिंग का उपयोग कैसे कर सकते हैं, लेकिन क्या आप जानते थे कि आप पृष्ठभूमि में रिमोटिंग जॉब को बंद करने के लिए Invoke-Command का भी उपयोग कर सकते हैं? ऐसा करने के लिए, बस अपने आदेश के अंत में -AsJob पैरामीटर जोड़ें:

Invoke-Command -ComputerName Flash,Viper -Credential administrator -ScriptBlock {gci} –AsJob

यह एक साधारण कमांड था और अब तक निष्पादन समाप्त करना चाहिए था इसलिए चलिए अपनी नौकरियों की स्थिति देखें।
यह एक साधारण कमांड था और अब तक निष्पादन समाप्त करना चाहिए था इसलिए चलिए अपनी नौकरियों की स्थिति देखें।
हम्म, ऐसा लगता है कि यह असफल रहा। यह मुझे नौकरियों के साथ अपने पहले गोचा में लाता है। जब आप PowerShell में किसी भी प्रकार का नया काम करते हैं, तो यह आपके द्वारा नौकरी चलाने वाले प्रत्येक कंप्यूटर के लिए एक बच्चे की नौकरी के अतिरिक्त एक मूल नौकरी बनाता है। जब आप गेट-जॉब cmdlet का उपयोग करते हैं, तो यह केवल आपको मूल नौकरियां दिखाता है, और राज्य की संपत्ति सबसे खराब स्थिति परिदृश्य है, जिसका अर्थ है कि यदि आदेश केवल सौ कंप्यूटरों में से किसी एक पर चलाने में विफल रहा है, तो मूल नौकरियां राज्य कहेंगे अनुत्तीर्ण होना। बाल नौकरियों की एक सूची देखने के लिए आपको IncludeChildJob पैरामीटर का उपयोग करने की आवश्यकता है।
हम्म, ऐसा लगता है कि यह असफल रहा। यह मुझे नौकरियों के साथ अपने पहले गोचा में लाता है। जब आप PowerShell में किसी भी प्रकार का नया काम करते हैं, तो यह आपके द्वारा नौकरी चलाने वाले प्रत्येक कंप्यूटर के लिए एक बच्चे की नौकरी के अतिरिक्त एक मूल नौकरी बनाता है। जब आप गेट-जॉब cmdlet का उपयोग करते हैं, तो यह केवल आपको मूल नौकरियां दिखाता है, और राज्य की संपत्ति सबसे खराब स्थिति परिदृश्य है, जिसका अर्थ है कि यदि आदेश केवल सौ कंप्यूटरों में से किसी एक पर चलाने में विफल रहा है, तो मूल नौकरियां राज्य कहेंगे अनुत्तीर्ण होना। बाल नौकरियों की एक सूची देखने के लिए आपको IncludeChildJob पैरामीटर का उपयोग करने की आवश्यकता है।
यदि आप करीब दिखते हैं, तो आप देखेंगे कि नौकरी वास्तव में केवल एक कंप्यूटर पर विफल रही है, जो हमें अगले गोचा में लाती है। जब आप नौकरी के नतीजों को आज़माते हैं और प्राप्त करते हैं, यदि आप माता-पिता का जॉब नाम या आईडी निर्दिष्ट करते हैं, तो पावरशेल सभी बाल नौकरियों से डेटा वापस कर देगा। समस्या यह है कि अगर किसी बच्चे की नौकरियों में कोई त्रुटि हुई है, तो हमें कुछ लाल पाठ के साथ छोड़ा जा रहा है।
यदि आप करीब दिखते हैं, तो आप देखेंगे कि नौकरी वास्तव में केवल एक कंप्यूटर पर विफल रही है, जो हमें अगले गोचा में लाती है। जब आप नौकरी के नतीजों को आज़माते हैं और प्राप्त करते हैं, यदि आप माता-पिता का जॉब नाम या आईडी निर्दिष्ट करते हैं, तो पावरशेल सभी बाल नौकरियों से डेटा वापस कर देगा। समस्या यह है कि अगर किसी बच्चे की नौकरियों में कोई त्रुटि हुई है, तो हमें कुछ लाल पाठ के साथ छोड़ा जा रहा है।
इस के आसपास होने के दो तरीके हैं। सबसे पहले, यदि आप जानते हैं कि आप किस कंप्यूटर के लिए परिणाम चाहते हैं, तो आप केवल Recieve -Job cmdlet के ComputerName पैरामीटर का उपयोग कर सकते हैं।
इस के आसपास होने के दो तरीके हैं। सबसे पहले, यदि आप जानते हैं कि आप किस कंप्यूटर के लिए परिणाम चाहते हैं, तो आप केवल Recieve -Job cmdlet के ComputerName पैरामीटर का उपयोग कर सकते हैं।

Get-Job –Id 3 | Receive-Job –Keep –ComputerName Viper

Image
Image

वैकल्पिक रूप से, आप अपने नौकरी आईडी का उपयोग कर एक विशिष्ट बाल नौकरी से परिणाम प्राप्त कर सकते हैं।

Get-Job -Id 3 –IncludeChildJob

Image
Image

Get-Job -Id 5 | Receive-Job –Keep

Image
Image

डब्ल्यूएमआई नौकरियां

डब्लूएमआई जॉब्स रिमोट जॉब्स के समान ही हैं, केवल Get-WmiObject cmdlet में जोड़े जाने के लिए -AsJob पैरामीटर की आवश्यकता होती है।

Image
Image
दुर्भाग्यवश, इसका मतलब यह है कि वे रिमोट जॉब्स अनुभाग में उल्लिखित एक ही गठिया के अधीन भी हैं।
दुर्भाग्यवश, इसका मतलब यह है कि वे रिमोट जॉब्स अनुभाग में उल्लिखित एक ही गठिया के अधीन भी हैं।

अनुसूचित नौकरियां

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

Register-ScheduledJob -Name GetEventLogs -ScriptBlock {Get-EventLog -LogName Security -Newest 100} -Trigger (New-JobTrigger -Daily -At 5pm) -ScheduledJobOption (New-ScheduledJobOption -RunElevated)

उस आदेश में काफी कुछ चल रहा है, तो चलो इसे तोड़ दें।

  • सबसे पहले, हम अपने अनुसूचित नौकरी को GetEventLogs का नाम देते हैं।
  • हम तब यह कहते हैं कि जब ट्रिगर होता है, हम चाहते हैं कि यह निर्दिष्ट स्क्रिप्ट ब्लॉक की सामग्री को चलाए, जो मूल रूप से सुरक्षा ईवेंट लॉग की नवीनतम 100 प्रविष्टियां प्राप्त करता है।
  • अगला, हम एक ट्रिगर निर्दिष्ट करते हैं। चूंकि ट्रिगर पैरामीटर इनपुट के रूप में एक ट्रिगर ऑब्जेक्ट लेता है, इसलिए हमने एक ट्रिगर उत्पन्न करने के लिए एक मूलभूत आदेश का उपयोग किया जो हर दिन 5 पीएम पर बंद हो जाएगा।
  • चूंकि हम ईवेंट लॉग से निपट रहे हैं, इसलिए हमें एक व्यवस्थापक के रूप में चलाने की आवश्यकता है, जिसे हम एक नया शेड्यूल्ड जॉब ऑप्शन ऑब्जेक्ट बनाकर और शेड्यूल किए गए जॉबऑप्शन पैरामीटर में भेजकर निर्दिष्ट कर सकते हैं।
चूंकि यह एक अलग प्रकार की नौकरी है, इसलिए आपको मशीन पर सभी अनुसूचित नौकरियों की एक सूची पुनर्प्राप्त करने के लिए एक अलग आदेश का उपयोग करने की भी आवश्यकता होगी।
चूंकि यह एक अलग प्रकार की नौकरी है, इसलिए आपको मशीन पर सभी अनुसूचित नौकरियों की एक सूची पुनर्प्राप्त करने के लिए एक अलग आदेश का उपयोग करने की भी आवश्यकता होगी।

Get-ScheduledJob

सिफारिश की: