पावरशेल का उपयोग कैसे करें त्रुटियों को संभालने के लिए अंत में पकड़ने का प्रयास करें
एक पावरशेल पकड़ने की कोशिश ब्लॉक का उपयोग पॉवरशेल स्क्रिप्टिंग में त्रुटियों को संभालने के लिए किया जाता है। पावरशेल का उपयोग करते समय पकड़ने की कोशिश स्क्रिप्टिंग के लिए ब्लॉक आप निम्न प्राप्त कर सकते हैं:
- एक त्रुटि के बावजूद अपनी स्क्रिप्ट को चालू रखने के लिए प्राप्त करें
- त्रुटि संदेशों को बेहतर ढंग से प्रदर्शित और प्रबंधित करें
इस गाइड में, आप सीखेंगे कि पॉवरशेल का उपयोग कैसे करें पकड़ने की कोशिश पावरशेल में त्रुटि संदेशों को समाप्त करने को संभालने के लिए ब्लॉक। इसके अतिरिक्त, आप सीखेंगे कि कैसे शामिल किया जाए आखिरकार में ब्लॉक करें पकड़ने की कोशिश खंड मैथा।
गाइड के वाक्य रचना के साथ शुरू होता है पकड़ने की कोशिश खंड मैथा।
पोस्ट विषय ब्राउज़ करें
- पावरशेल कैच सिंटेक्स का प्रयास करें
- पॉवरशेल में सामान्य प्रकार की अपवाद त्रुटियाँ पकड़ने का प्रयास करें
- पावरशेल के साथ विशिष्ट अपवादों को कैसे कैप्चर करें पकड़ने का प्रयास करें
- पावरशेल को अंत में ब्लॉक कैसे शामिल करें कैच स्टेटमेंट का प्रयास करें
- पावरशेल के बारे में अतिरिक्त उपयोगी जानकारी कैच का प्रयास करें
- PowerShell को कैसे साफ़ करें $Error स्वचालित चर पकड़ने का प्रयास करें
- पावरशेल में एक कस्टम त्रुटि संदेश कैसे प्रदर्शित करें कैच ब्लॉक का प्रयास करें
- पावरशेल में त्रुटि श्रेणी की जानकारी कैसे प्राप्त करें पकड़ने का प्रयास करें
- पावरशेल में त्रुटि संदेश प्रदर्शित करने के लिए राइट-होस्ट का उपयोग कैसे करें कैच का प्रयास करें
- पावरशेल में हैशटेबल कैसे बनाएं कैच ब्लॉक का प्रयास करें
- पावरशेल कैच उदाहरण आज़माएं
- PowerShell का उपयोग कैसे करें Get-Childitem . के साथ पकड़ने का प्रयास करें
- पावरशेल का उपयोग कैसे करें निर्यात-सीएसवी के साथ Get-WMIObject त्रुटियों को निर्यात करने के लिए पकड़ने का प्रयास करें
- पावरशेल के साथ गेट-प्रोसेस त्रुटियों को कैसे पकड़ें कैच स्टेटमेंट का प्रयास करें
- पावरशेल के साथ गेट-मेलबॉक्स त्रुटियों को कैसे पकड़ें कैच स्टेटमेंट का प्रयास करें
- संदर्भ और आगे पढ़ना
पावरशेल पकड़ने की कोशिश वाक्य - विन्यास
पावरशेल का सिंटैक्स पकड़ने की कोशिश है…
|_+_|
कोशिश ब्लॉक का वह हिस्सा है जिसे आप चाहते हैं कि PowerShell त्रुटियों की निगरानी करे। यह मूल स्क्रिप्ट वाला ब्लॉक है जो एक समाप्ति त्रुटि लौटा सकता है।
जब प्रयास ब्लॉक में कोई त्रुटि होती है, तो PowerShell त्रुटि को $Error स्वचालित चर (इस पर बाद में और अधिक) में सहेजता है।
दूसरी ओर, टी वह पकड़ पावरशेल का बयान पकड़ने की कोशिश ब्लॉक कोशिश ब्लॉक में उत्पन्न त्रुटियों को संभालता है। आप उन त्रुटियों के प्रकार भी निर्दिष्ट कर सकते हैं जिन्हें के भीतर नियंत्रित किया जाता है पकड़ स्टेटमेंट ब्लॉक।
आखिरकार ब्लॉक का उपयोग किसी भी संसाधन को मुक्त करने के लिए किया जा सकता है जिसकी अब स्क्रिप्ट की आवश्यकता नहीं है।
PowerShell में सामान्य प्रकार की अपवाद त्रुटियाँ पकड़ने की कोशिश
आप पावरशेल ट्राई कैच ब्लॉक में विभिन्न प्रकार की त्रुटियों को संभाल सकते हैं। उदाहरण के लिए, आप विशिष्ट त्रुटियों को संभाल सकते हैं।
साथ ही, आप सामान्य त्रुटि संदेशों को संभाल सकते हैं। हालांकि, विशिष्ट प्रकार की त्रुटियों को संभालने के लिए, आपको त्रुटि के प्रकार को जानना होगा।
बाद में इस गाइड में, आप सीखेंगे कि त्रुटि संदेश $error स्वचालित चर में सहेजे जाते हैं। इसके अतिरिक्त, त्रुटियाँ $_ पाइपलाइन चर में भी सहेजी जा सकती हैं।
इसके अलावा, $error स्वचालित चर में सहेजी गई त्रुटियां एक सरणी में सहेजी जाती हैं। इसे समझाने में मदद के लिए, आइए एक कमांड चलाते हैं जो एक टर्मिनेटिंग एरर मैसेज देता है:
पूर्व में सहेजी गई सभी त्रुटियों को दूर करने के लिए $त्रुटि स्वचालित चर, नीचे दिए गए आदेश को चलाने से पहले, पहले, चलाएं $ त्रुटि। साफ़ करें () आदेश। |_+_| Systerr नाम का कोई इवेंट लॉग नहीं है, इसलिए ट्राई ब्लॉक में कमांड एक त्रुटि संदेश देगा।आश्चर्यजनक रूप से, कमांड ने कोई त्रुटि संदेश प्रदर्शित नहीं किया। तो, त्रुटि संदेश का क्या हुआ?
यह $error स्वचालित चर में सहेजा गया है! अंतिम कमांड से त्रुटि प्रदर्शित करने के लिए, $error चर में सहेजा गया, कमांड चलाएँ…
|_+_|आदेश का परिणाम $error स्वचालित चर में सहेजे गए त्रुटि विवरण प्रदर्शित करता है। त्रुटि जानकारी में एक अनुभाग होता है जिसे कहा जाता है पूरी तरह से योग्य त्रुटि आईडी .
इस विशिष्ट त्रुटि के लिए, पूरी तरह से योग्य त्रुटि आईडी जानकारी के दो सेट हैं - System.InvalidOperationException तथा Microsoft.PowerShell.Commands.GetEventLogCommand .
जिस जानकारी में हम रुचि रखते हैं वह है System.InvalidOperationException . यह एक प्रकार की त्रुटि है जो आप कर सकते हैं पकड़ पावरशेल में कैच ब्लॉक का प्रयास करें।
इस PowerShell अपवाद का नाम प्राप्त करने के लिए, नीचे दी गई कमांड चलाएँ:
|_+_|वहाँ है, System.InvalidOperationException !
अगले कुछ उप-अनुभागों में, मैं सामान्य पॉवरशेल ट्राई कैच एक्सेप्शन एरर्स पर चर्चा करूंगा।
पावरशेल कैच का प्रयास करें कमांड नॉटफाउंड अपवाद त्रुटि
यदि आप कोई ऐसा आदेश चलाते हैं जो PowerShell या Microsoft कमांड प्रॉम्प्ट में मौजूद नहीं है, तो आपको एक त्रुटि संदेश प्राप्त होगा। उदाहरण के लिए, यदि आप चलाते हैं दस्तावेज लें आदेश, आपको एक त्रुटि संदेश प्राप्त होगा क्योंकि यह आदेश एक मान्य PowerShell Cmdlet नहीं है।
यहाँ PowerShell में कमांड के परिणाम का स्क्रीनशॉट है…
जैसा कि आप स्क्रीनशॉट से देख सकते हैं, अपवाद का प्रकार (FulyQualifiedErrorId ) है कमांड नॉटफाउंड अपवाद .
चूंकि यह एक टर्मिनेटिंग एरर है, यह आपकी स्क्रिप्ट को जारी रखने से रोकेगा। इस त्रुटि को आपकी स्क्रिप्ट को समाप्त करने से रोकने के लिए, कमांड को a . में लपेटें पकड़ने की कोशिश खंड मैथा।
यदि हम इस त्रुटि को पावरशेल ट्राई कैच ब्लॉक में लपेटते हैं, तो पावरशेल त्रुटि को दबा देगा। इसके अलावा, यह आपकी स्क्रिप्ट को समाप्त करने से रोक देगा।
हालाँकि, भले ही त्रुटि को दबा दिया गया हो, यह $error चर में सहेजा गया है। हमेशा की तरह, नीचे दिए गए आदेश को चलाने से पहले, पहले $error चर में सहेजी गई त्रुटियों को साफ़ करें।
|_+_|यदि आप PowerShell ISE के बजाय PowerShell में कमांड चलाना चाहते हैं, तो कमांड को एक पंक्ति में टाइप करें जैसा कि नीचे दिखाया गया है:
|_+_|फिर, त्रुटि प्रदर्शित करने के लिए, चलाएँ…
|_+_|
जैसा कि मैंने इस खंड के मुख्य परिचय में उल्लेख किया है, इस त्रुटि के लिए अपवाद आईडी प्रदर्शित करने के लिए, नीचे दी गई कमांड चलाएँ:
|_+_|अपवाद का पूरा नाम है System.Management.Automation.CommandNotFoundException .
पावरशेल कैच का प्रयास करें ManagementObjectNotFoundException त्रुटि
जब आप दूरस्थ PS सत्र में गलत जानकारी के साथ कोई आदेश चलाते हैं, तो PowerShell वापस आ जाता है ManagementObjectNotFoundException त्रुटि।
एक सामान्य परिदृश्य तब होता है जब आप Office 365 को PowerShell के साथ कनेक्ट करते हैं। फिर, गेट-यूज़र कमांड चलाएँ लेकिन गलत उपयोगकर्ता की आपूर्ति करें पहचान .
पावरशेल ट्राई कैच के साथ इस त्रुटि को पकड़ने के लिए, नीचे दिए गए कमांड के समान कमांड का उपयोग करें:
|_+_| पकड़ना ManagementObjectNotFoundException पावरशेल ट्राई के साथ त्रुटि, कैच विशेष रूप से मुश्किल है। आपको का उपयोग करना होगा त्रुटिकार्रवाई पैरामीटर और निर्दिष्ट करें विराम . अन्यथा, कोशिश करें, पकड़ें के साथ भी, त्रुटि अभी भी प्रदर्शित होगी।अंत में, अपवाद का नाम प्राप्त करने के लिए, नीचे दिए गए आदेश का उपयोग करें:
|_+_|कमांड अपवाद के प्रकार को इस प्रकार लौटाता है: System.Management.Automation.RemoteException . तो क्या है ManagementObjectNotFoundException ?
ManagementObjectNotFoundException अपवाद का कारण नीचे दिए गए आदेश द्वारा पुष्टि की गई है:
|_+_|
पावरशेल कैच का प्रयास करें अनधिकृत एक्सेस अपवाद त्रुटि
एक अन्य सामान्य पावरशेल अपवाद त्रुटि है अनधिकृत एक्सेस अपवाद . इस प्रकार की त्रुटि तब होती है जब आप किसी ऐसे आइटम तक पहुँचने का प्रयास करते हैं जिसके पास कम से कम पढ़ने की अनुमति नहीं होती है।
इस उदाहरण को स्पष्ट करने के लिए, मैंने प्रमाणित उपयोगकर्ताओं को अपने कंप्यूटर पर एक विशिष्ट फ़ाइल तक पहुंच से वंचित कर दिया।
अब, अगर मैं Get-Content कमांड के साथ फ़ाइल तक पहुंचने का प्रयास करता हूं, तो मुझे एक एक्सेस अस्वीकृत संदेश प्राप्त होता है।
|_+_|
इस त्रुटि को प्रदर्शित होने से रोकने के लिए, नीचे दिखाए अनुसार पावरशेल ट्राई कैच ब्लॉक के भीतर कमांड चलाएँ…
|_+_|दुर्भाग्य से, उपरोक्त आदेश त्रुटि प्रदर्शित होने से नहीं रोकता है। कारण यह है कि यह एक समाप्ति त्रुटि नहीं है।
प्रदर्शित होने में त्रुटि को रोकने के लिए, शामिल करें त्रुटिकार्रवाई पैरामीटर और निर्दिष्ट करें विराम .
|_+_|अब, आदेश त्रुटि को दबा देता है। अपवाद के प्रकार को प्रदर्शित करने के लिए, नीचे दी गई कमांड चलाएँ…
|_+_|अपवाद का प्रकार है System.UnauthorizedAccessException .
इस खंड में शामिल की गई त्रुटियों की तुलना में अधिक प्रकार की अपवाद त्रुटियां हैं। मैंने केवल सबसे सामान्य प्रकार के अपवादों को कवर किया है।पावरशेल के साथ विशिष्ट अपवादों को कैसे कैप्चर करें पकड़ने का प्रयास करें
पिछले खंड में सामान्य पावरशेल अपवादों और अपवाद के प्रकार को खोजने के तरीके पर चर्चा की गई थी। यह खंड विशिष्ट प्रकार के त्रुटि संदेशों को कैप्चर करने के लिए उस जानकारी का उपयोग करने के तरीके को कवर करेगा।
इस गाइड के सिंटैक्स सेक्शन में, मैंने कहा कि पावरशेल ट्राई कैच का सामान्य सिंटैक्स अंत में है…
|_+_|सिंटैक्स के कैच ब्लॉक में, आप [त्रुटि प्रकार] देख सकते हैं। यह वह जगह है जहाँ आप निर्दिष्ट करते हैं कि आप इस ब्लॉक में किस प्रकार की त्रुटि को पकड़ना चाहते हैं।
उदाहरण के लिए, UnauthorizedAccessException त्रुटियों को पकड़ने के लिए, नीचे दिए गए कथनों का उपयोग करें…
|_+_|PowerShell में आदेश चलाने के लिए, कथनों को एक पंक्ति में निर्दिष्ट करें। कथन का पहला भाग - $error.Clear() - $error चर में सहेजी गई किसी भी त्रुटि को साफ़ करता है।
|_+_|एकाधिक कैसे जोड़ें पकड़ एक पावरशेल में ब्लॉक पकड़ने की कोशिश कथन
इस खंड के परिचय में, मैंने आपको दिखाया कि कैसे एक विशिष्ट प्रकार के अपवाद को पकड़ा जाए पकड़ खंड मैथा। आप एकाधिक निर्दिष्ट कर सकते हैं
यहाँ एक उदाहरण है…
|_+_|इस उदाहरण में, पहला पकड़ ब्लॉक निर्दिष्ट प्रकार के अपवादों को संभालता है। इसके अलावा, दूसरा पकड़ ब्लॉक हैंडल सामान्य त्रुटियों को संभालता है।
पावरशेल के साथ त्रुटि अपवाद कैसे निकालें कैच का प्रयास करें
अंतिम उपखंड में विभिन्न प्रकार के अपवादों को संभालने के लिए एकाधिक कैच ब्लॉक निर्दिष्ट करने का तरीका शामिल है। इस उपधारा में, आप सीखेंगे कि अपवाद में त्रुटि विवरण कैसे निकाला जाए।
इसे स्पष्ट करने के लिए, मैं एक उदाहरण का उपयोग करूंगा जिसका मैंने पहले उपयोग किया था। इस PowerShell कथन को PowerShell में चलाएँ।
|_+_|अब $error अकेले चलाएँ…
|_+_|हालांकि कई जानकारी $error वेरिएबल में सहेजी जाती है, वास्तविक त्रुटि संदेश नीचे स्क्रीनशॉट में हाइलाइट किया गया है।
यदि आप इस त्रुटि को टेक्स्ट फ़ाइल में लॉग करना चाहते हैं, तो आपको केवल वास्तविक त्रुटि विवरण लॉग करना होगा। इस त्रुटि को निकालने के लिए, नीचे दिए गए आदेश का उपयोग करें:
|_+_|कमांड वास्तविक त्रुटि संदेश को निकालता है 'D:PS-Tutorialfolder-names.txt' पथ तक पहुंच से इनकार किया जाता है।
आप इस त्रुटि संदेश को एक लॉग फ़ाइल में शामिल करके लिख सकते हैं a बाहर फ़ाइल कैच ब्लॉक में कमांड।
|_+_| मैंने शामिल किया संलग्न में पैरामीटर बाहर फ़ाइल पिछली प्रविष्टियों को अधिलेखित किए बिना एकाधिक प्रविष्टियों को लॉग करने की अनुमति देने का आदेश।अंतिम कमांड को समझना आसान बनाने के लिए, मैं इसे नीचे दिए गए स्क्रिप्ट प्रारूप में फिर से लिखूंगा…
|_+_|A . कैसे शामिल करें आखिरकार पावरशेल को ब्लॉक करें पकड़ने की कोशिश कथन
आप शामिल कर सकते हैं a आखिरकार पावरशेल को ब्लॉक करें पकड़ने की कोशिश कथन। वाक्य रचना है
विंडोज़ 10 अनुकूलन उपकरण|_+_|
आखिरकार ब्लॉक का उपयोग किसी भी संसाधन को मुक्त करने के लिए किया जा सकता है जिसकी अब स्क्रिप्ट की आवश्यकता नहीं है।
यदि आप स्क्रिप्ट को रोकने के लिए CTRL+C का उपयोग करते हैं तो भी अंत में ब्लॉक चलता है। यदि एक एक्जिट कीवर्ड स्क्रिप्ट को कैच ब्लॉक के भीतर से रोकता है तो ब्लॉक भी चलेगा।पिछले उदाहरण में, मेरे पास वह कथन था जो त्रुटि लॉग को टेक्स्ट फ़ाइल में लिखता है पकड़ खंड मैथा। हालाँकि, उस कथन के लिए सबसे अच्छी जगह a . में है आखिरकार खंड मैथा।
नीचे संशोधित स्क्रिप्ट देखें…
|_+_|पावरशेल के बारे में अतिरिक्त उपयोगी जानकारी कैच का प्रयास करें
इस खंड में मैं पावरशेल ट्राई कैच के बारे में कुछ सरल लेकिन उपयोगी जानकारी साझा करूंगा।
PowerShell को कैसे साफ़ करें $Error स्वचालित चर पकड़ने का प्रयास करें
$error स्वचालित चर में a . है स्पष्ट तरीका। आप इस विधि का उपयोग $error स्वचालित चर में सहेजी गई सभी त्रुटियों को दूर करने के लिए कर सकते हैं।
वर्तमान पावरशेल सत्र के लिए $error स्वचालित चर में सहेजी गई सभी त्रुटियों को साफ़ करने के लिए, नीचे दिए गए आदेश को चलाएँ।
|_+_|पावरशेल में एक कस्टम त्रुटि संदेश कैसे प्रदर्शित करें कैच ब्लॉक का प्रयास करें
पावरशेल ट्राई कैच ब्लॉक में एक कस्टम त्रुटि संदेश प्रदर्शित करने के लिए, थ्रो शब्द का उपयोग करें। यहाँ एक उदाहरण है…
|_+_|PowerShell ISE में इस स्क्रिप्ट का परिणाम यहां दिया गया है।
पावरशेल में त्रुटि श्रेणी की जानकारी कैसे प्राप्त करें पकड़ने का प्रयास करें
$ त्रुटि स्वचालित चर में श्रेणीइन्फो नामक एक संपत्ति होती है। इस गुण और अन्य गुणों और विधियों को देखने के लिए, नीचे दी गई कमांड चलाएँ…
|_+_|अंतिम कमांड द्वारा लौटाए गए गुणों में से एक को कहा जाता है श्रेणीजानकारी .
इस जानकारी तक पहुँचने के लिए, नीचे दी गई कमांड चलाएँ।
|_+_|यह आदेश कई उप-गुण देता है।
इन उप-गुणों में से प्रत्येक को एक अवधि के बाद उप-गुणों का नाम जोड़कर पहुँचा जा सकता है। उदाहरण के लिए, कारण उप-गुण प्रदर्शित करने के लिए, नीचे दिए गए आदेश को चलाएँ।
|_+_|
पावरशेल में त्रुटि संदेश प्रदर्शित करने के लिए राइट-होस्ट का उपयोग कैसे करें कैच का प्रयास करें
पिछले उप-अनुभाग में श्रेणीइन्फो संपत्ति की तरह, $ त्रुटि स्वचालित चर में भी एक संपत्ति होती है जिसे कहा जाता है अपवाद . किसी त्रुटि में अपवाद प्रदर्शित करने के लिए, नीचे दी गई कमांड चलाएँ:
|_+_|
दुर्भाग्य से, यदि आप इस जानकारी को राइट-होस्ट कमांड के साथ प्रदर्शित करने का प्रयास करते हैं, तो यह अपेक्षा के अनुरूप काम नहीं करता है।
|_+_|यहाँ PowerShell में इस आदेश का परिणाम है…
जैसा कि आप देख सकते हैं, कमांड अन्य सूचनाओं का एक गुच्छा प्रदर्शित करता है। अच्छी खबर यह है कि $त्रुटि।अपवाद एक और संपत्ति है जिसे कहा जाता है संदेश .
आप इस उप-संपत्ति को इसमें जोड़कर कॉल कर सकते हैं $त्रुटि।अपवाद , इस तरह…
|_+_|इसके अतिरिक्त, आप उपयोग कर सकते हैं राइट-होस्ट इस त्रुटि जानकारी को प्रदर्शित करने के लिए आदेश…
|_+_|अंतिम आदेश अब वास्तविक त्रुटि संदेश प्रदर्शित करता है ...
सिवाय इसके कि उपयोग करने का एक विशिष्ट कारण है राइट-होस्ट जैसा कि अंतिम कमांड में दिखाया गया है, आप बस उसी त्रुटि संदेश को प्रदर्शित कर सकते हैं $त्रुटि।अपवाद आदेश।पावरशेल में हैशटेबल कैसे बनाएं कैच ब्लॉक का प्रयास करें
आप दो सामान्य तरीके बना सकते हैं a पावरशेल हैशटेबल ट्राई कैच ब्लॉक में।
- आप कोशिश ब्लॉक के भीतर कई कुंजी/मूल्य जोड़े के साथ हैशटेबल बना सकते हैं
- वैकल्पिक रूप से, आप के साथ एक एकल कुंजी/मान हैशटेबल बना सकते हैं चाभी के बाहर Catc . का प्रयास करें h ब्लॉक और के भीतर का मान Catc . का प्रयास करें एच ब्लॉक।
यहाँ पहली विधि का एक उदाहरण है…
|_+_|जैसा कि आप देख सकते हैं जल्दबाजी में है Catc . का प्रयास करें एच ब्लॉक…
दूसरी ओर, आप एक हैशटेबल कुंजी बना सकते हैं, जिसका मान a . में परिभाषित किया गया है Catc . का प्रयास करें एच ब्लॉक। यहाँ एक उदाहरण है…
|_+_|यह पुष्टि करने के लिए कि अंतिम स्क्रिप्ट एक PowerShell हैशटेबल उत्पन्न करती है, स्क्रिप्ट चलाने के बाद, मैंने $hashtable चर में सहेजे गए मानों को कॉल किया।
जैसा कि आप अंतिम कमांड के परिणाम से देख सकते हैं, इसमें एक नाम/मूल्य जोड़ी है!
पावरशेल कैच उदाहरण आज़माएं
इस अंतिम खंड में, मैं पावरशेल ट्राई कैच के अनुप्रयोग के कई उदाहरणों को कवर करूंगा।
पावरशेल का उपयोग कैसे करें पकड़ने की कोशिश Get-Childitem . के साथ
Get-Childitem कमांड कई त्रुटियाँ लौटा सकता है। दो सामान्य त्रुटियों को स्पष्ट करने के लिए, मैं नीचे दिए गए दो आदेशों का उपयोग करूंगा:
|_+_|अंतिम कमांड में प्रयुक्त टेक्स्ट फ़ाइल का सही पथ D:PS-Tutorialfilelist.txt है।
हालाँकि, पहले कमांड में मैंने D:PS-ट्यूटोरियल के बाद एक स्पेस शामिल किया। इसके परिणामस्वरूप एक त्रुटि हुई (हम शीघ्र ही त्रुटि विवरण निर्धारित करेंगे)।
साथ ही, दूसरे कमांड में, मैंने सही पथ निर्दिष्ट किया लेकिन गलत फ़ाइल नाम का उपयोग किया। इसके परिणामस्वरूप त्रुटि हुई।
|_+_|
आगे बढ़ते हुए, इन त्रुटियों के बारे में अधिक जानकारी प्राप्त करने के लिए, मैं एक PowerShell में कमांड चलाऊंगा पकड़ने की कोशिश खंड मैथा।
|_+_|हमारा पहला काम कमांड द्वारा लौटाए गए एरर के प्रकार को निर्धारित करना है। यह जानकारी प्राप्त करने के लिए, नीचे दिए गए आदेश चलाएँ…
|_+_|यहाँ आदेशों के परिणाम हैं ...
$error स्वचालित चर में सहेजी गई त्रुटियां PowerShell सरणी में संग्रहीत की जाती हैं। ऐरे में प्रत्येक ऑब्जेक्ट को ऐरे के अंत में [0], [1] जोड़कर एक्सेस किया जाता है। 0 सरणी में पहले आइटम का प्रतिनिधित्व करता है जबकि 1 दूसरे आइटम का प्रतिनिधित्व करता है और इसी तरह।द्वारा फेंकी गई त्रुटियों के बारे में अधिक जानकारी प्राप्त करने के लिए वापस Get-Childitem कमांड, त्रुटि प्रकारों के आधार पर, हम इन 2 प्रकार की त्रुटियों को पकड़ने के लिए अपने कैच ब्लॉक को संशोधित कर सकते हैं ...
|_+_|हमारा दूसरा कार्य वास्तविक त्रुटि संदेशों को प्रदर्शित करना है। यह आदेश काम करेगा:
|_+_|आदेश दो त्रुटि संदेशों को प्रदर्शित करता है ...
पावरशेल का उपयोग कैसे करें पकड़ने की कोशिश निर्यात-सीएसवी के साथ Get-WMIObject त्रुटियों को निर्यात करने के लिए
इस उप-अनुभाग में, मैं दौड़ते समय उत्पन्न त्रुटियों को निर्यात करूंगा प्राप्त करें-WMIObject के साथ एक दूरस्थ कंप्यूटर पर CSV फ़ाइल में निर्यात-सीएसवी आदेश।
सबसे पहले, जब आप किसी ऑफ़लाइन दूरस्थ कंप्यूटर से कनेक्ट करने का प्रयास करते हैं तो उत्पन्न त्रुटि विवरण देखें प्राप्त करें-WMIObject . इसे स्पष्ट करने के लिए नीचे दी गई कमांड चलाएँ…
|_+_|कमांड ने एक त्रुटि संदेश उत्पन्न किया क्योंकि संगणक वैध पीसी नाम नहीं है।
आगे बढ़ते हुए, त्रुटि को प्रबंधित करने के लिए, मैं कमांड के भीतर चलाऊंगा कोशिश ए का खंड पकड़ने की कोशिश बयान।
|_+_|की पहली पंक्ति में कोशिश ब्लॉक, मैंने $ComputerName चर परिभाषित किया है। फिर, दूसरी पंक्ति में, मैंने दौड़ा प्राप्त-WmiObject आदेश।
इसके अलावा, में पकड़ ब्लॉक, मैंने त्रुटि विवरण बनाया है, इसे CSV फ़ाइल में निर्यात किया है निर्यात-सीएसवी .
यहाँ स्क्रिप्ट का विस्तृत विवरण दिया गया है कोशिश खंड मैथा:
- लाइन 1 में, मैंने एक $path वेरिएबल बनाया जो निर्दिष्ट करता है कि मैं CSV फ़ाइल को कहाँ सहेजना चाहता हूँ
- फिर, लाइन 2 में मैंने CSV फ़ाइल के लिए फ़ाइल नाम बनाने के लिए Get-Date कमांड का उपयोग किया। फ़ाइल का नाम प्रारूप में है, yyyyMMdd_HHmmss.csv
- पंक्ति 3 में, मैंने $data . नामक एक चर में सहेजी गई एक खाली वस्तु बनाई है
- फिर, पंक्ति 4 में मैंने पंक्ति 3 में बनाई गई वस्तु में 'कंप्यूटर नाम' कॉलम जोड़ा। कॉलम $ComputerName चर लेता है
- पंक्ति 5 में, मैंने 'त्रुटि संदेश' वॉल्यूम जोड़ा है जो त्रुटि संदेशों को बचाएगा, $त्रुटि।अपवाद।संदेश
- फिर, पंक्ति 6 में, मैंने एक $csvfilepath चर बनाया जो $path और $csvfilename चरों को मिलाकर CSV फ़ाइल का पूर्ण पथ बनाता है
- अंत में, लाइन 7 में, मैंने $data वेरिएबल ($ComputerName और $error.Exception.Message) में सहेजी गई जानकारी को पाइप में डाला निर्यात-सीएसवी और फ़ाइल को $csvfilepath . में सहेजा
नीचे दिया गया स्क्रीनशॉट स्क्रिप्ट द्वारा बनाए गए CSV को दिखाता है…
पावरशेल के साथ गेट-प्रोसेस त्रुटियों को कैसे पकड़ें पकड़ने की कोशिश कथन
यदि आप एक ऐसी प्रक्रिया आईडी के साथ गेट-प्रोसेस कमांड चलाते हैं जो मौजूद नहीं है, तो यह वापस आ जाएगी Microsoft.PowerShell.Commands.ProcessCommandException त्रुटि।
इस विशिष्ट प्रकार के अपवाद को पकड़ने के लिए, नीचे दिए गए जैसा कमांड चलाएँ:
|_+_|यहाँ PowerShell ISE में स्क्रिप्ट का परिणाम है।
वैकल्पिक रूप से, आप नीचे दिखाए गए अनुसार स्क्रिप्ट को संशोधित करके एक कस्टम त्रुटि संदेश को परिभाषित कर सकते हैं…
|_+_|अब स्क्रिप्ट कस्टम त्रुटि संदेश लौटाती है ...
पावरशेल के साथ गेट-मेलबॉक्स त्रुटियों को कैसे पकड़ें पकड़ने की कोशिश कथन
यदि आप Office 365 PowerShell से कनेक्ट होते हैं और इसे चलाते हैं Get-मेलबॉक्स एक ऐसे उपयोगकर्ता के खिलाफ जो मौजूद नहीं है, आपको एक त्रुटि संदेश मिलेगा। कुछ उपयोगकर्ताओं ने त्रुटि संदेश को कैप्चर करने में समस्या होने की सूचना दी है Get-मेलबॉक्स आदेश।
इस परिदृश्य का परीक्षण करने के लिए, हमारे . से जुड़ने के बाद ऑफिस 365 अकाउंट पावरशेल के माध्यम से, मैंने नीचे स्क्रिप्ट चलाई:
|_+_| उपयोगकर्ता, पायस हमारे कार्यालय 365 खाते में मौजूद नहीं है।स्क्रिप्ट ने त्रुटि संदेश लौटा दिया कार्रवाई नहीं की जा सकी क्योंकि 'AM6PR05A05DC002.EURPR05A005.PROD.OUTLOOK.COM' पर 'Pius' ऑब्जेक्ट नहीं मिला। '।
ये रहा स्क्रीनशॉट…
हालांकि, यदि पकड़ने की कोशिश त्रुटि पकड़ता है, अपवाद प्रकार जोड़ने का प्रयास करें जैसा कि नीचे संशोधित आदेश में दिखाया गया है:
|_+_|बस इतना ही – पावरशेल के बारे में हमारी व्यापक और अद्यतन मार्गदर्शिका कैच फाइनल का प्रयास करें ली! मुझे आशा है कि आपको यह मददगार लगा?
अगर आपको यह मददगार लगा, तो कृपया वोट करें हां के लिए क्या यह पोस्ट नीचे उपयोगी प्रश्न था।
वैकल्पिक रूप से, आप एक प्रश्न पूछ सकते हैं, एक टिप्पणी छोड़ सकते हैं या इस पृष्ठ के अंत में एक उत्तर दें फ़ॉर्म के साथ अधिक प्रतिक्रिया प्रदान कर सकते हैं।
अंत में, अधिक पावरशेल टेक एस जोन के लिए, हमारे विंडोज पावरशेल हाउ-टू गाइड पेज पर जाएं। आपको हमारा वर्क फ्रॉम होम पेज भी बहुत मददगार लग सकता है।
संदर्भ और आगे पढ़ना
- ट्राई कैच के बारे में अंत में
- Trap . के बारे में
- पावरशेल ऐरे और ऐरे में जोड़ें: अनुप्रयोग और उदाहरण
- लूप के लिए पॉवरशेल समझाया गया: सिंटेक्स और उदाहरण

