পাওয়ারশেল কীভাবে ব্যবহার করবেন ত্রুটিগুলি পরিচালনা করতে অবশেষে ক্যাচ করার চেষ্টা করুন

15 জুলাই, 2021 10258 ভিউ পাওয়ারশেল ট্রাই সম্পর্কে অন্যান্য গুরুত্বপূর্ণ তথ্য

একটি পাওয়ারশেল ধরার চেষ্টা কর ব্লকটি পাওয়ারশেল স্ক্রিপ্টিংয়ের ত্রুটিগুলি পরিচালনা করতে ব্যবহৃত হয়। পাওয়ারশেল ব্যবহার করার সময় ধরার চেষ্টা কর স্ক্রিপ্টিংয়ের জন্য ব্লক আপনি নিম্নলিখিত অর্জন করতে পারেন:





  1. একটি ত্রুটি সত্ত্বেও আপনার স্ক্রিপ্ট চলমান অবিরত পান
  2. ত্রুটি বার্তাগুলিকে আরও ভালভাবে প্রদর্শন এবং পরিচালনা করুন

এই গাইডে, আপনি শিখবেন কিভাবে Powershell ব্যবহার করতে হয় ধরার চেষ্টা কর PowerShell-এ সমাপ্ত ত্রুটি বার্তা পরিচালনা করতে ব্লক। উপরন্তু, আপনি কিভাবে অন্তর্ভুক্ত করতে শিখবেন অবশেষে একটি মধ্যে ব্লক ধরার চেষ্টা কর ব্লক



গাইড এর সিনট্যাক্স দিয়ে শুরু হয় ধরার চেষ্টা কর ব্লক

পোস্ট বিষয় ব্রাউজ করুন



শক্তির উৎস ধরার চেষ্টা কর বাক্য গঠন

পাওয়ারশেল ক্যাচ সিনট্যাক্স ব্যবহার করে দেখুন

PowerShell এর সিনট্যাক্স ধরার চেষ্টা কর হয়…



|_+_|

দ্য চেষ্টা করুন আপনি পাওয়ারশেলকে ত্রুটির জন্য নিরীক্ষণ করতে চান এমন ব্লকের অংশ। এটি মূল স্ক্রিপ্ট সহ ব্লক যা একটি সমাপ্ত ত্রুটি ফিরিয়ে দিতে পারে।

যখন ট্রাই ব্লকে একটি ত্রুটি দেখা দেয়, তখন পাওয়ারশেল $Error স্বয়ংক্রিয় ভেরিয়েবলের ত্রুটিটি সংরক্ষণ করে (পরে এটি সম্পর্কে আরও)।



অন্যদিকে, টি তিনি ধরা পাওয়ারশেলের বিবৃতি ধরার চেষ্টা কর ব্লক চেষ্টা ব্লকে উত্পন্ন ত্রুটিগুলি পরিচালনা করে। আপনি এর মধ্যে পরিচালনা করা ত্রুটির প্রকারগুলিও নির্দিষ্ট করতে পারেন ধরা বিবৃতি ব্লক।



দ্য অবশেষে ব্লকটি স্ক্রিপ্টের আর প্রয়োজন নেই এমন কোনও সংস্থান খালি করতে ব্যবহার করা যেতে পারে।

PowerShell-এ ব্যতিক্রম ত্রুটির সাধারণ প্রকার ধরার চেষ্টা কর

পাওয়ারশেলের ত্রুটির ধরন ক্যাচ করার চেষ্টা করুন

আপনি পাওয়ারশেল ট্রাই ক্যাচ ব্লকে বিভিন্ন ধরণের ত্রুটি পরিচালনা করতে পারেন। উদাহরণস্বরূপ, আপনি নির্দিষ্ট ত্রুটিগুলি পরিচালনা করতে পারেন।

উপরন্তু, আপনি জেনেরিক ত্রুটি বার্তা পরিচালনা করতে পারেন. যাইহোক, নির্দিষ্ট ধরণের ত্রুটিগুলি পরিচালনা করতে, আপনাকে ত্রুটির ধরণটি জানতে হবে।

পরে এই নির্দেশিকাটিতে, আপনি শিখবেন যে ত্রুটি বার্তাগুলি $error স্বয়ংক্রিয় ভেরিয়েবলে সংরক্ষিত হয়। উপরন্তু, ত্রুটিগুলি $_ পাইপলাইন ভেরিয়েবলেও সংরক্ষণ করা যেতে পারে।

তাছাড়া, $error স্বয়ংক্রিয় ভেরিয়েবলে সংরক্ষিত ত্রুটিগুলি একটি অ্যারেতে সংরক্ষিত হয়। এটি ব্যাখ্যা করতে সাহায্য করার জন্য, আসুন একটি কমান্ড চালাই যা একটি সমাপ্ত ত্রুটি বার্তা প্রদান করে:

পূর্বে সংরক্ষিত সমস্ত ত্রুটি মুছে ফেলার জন্য $ত্রুটি স্বয়ংক্রিয় পরিবর্তনশীল, আপনি নীচের কমান্ডটি চালানোর আগে, প্রথমে, চালান $error.Clear() আদেশ |_+_| সিস্টার নামে কোন ইভেন্ট লগ নেই, তাই ট্রাই ব্লকের কমান্ডটি একটি ত্রুটি বার্তা দেবে।

আশ্চর্যজনকভাবে, কমান্ডটি কোনো ত্রুটি বার্তা প্রদর্শন করেনি। সুতরাং, ত্রুটি বার্তা কি ঘটেছে?

এটি $error স্বয়ংক্রিয় ভেরিয়েবলে সংরক্ষিত হয়! শেষ কমান্ড থেকে ত্রুটি প্রদর্শন করতে, $error ভেরিয়েবলে সংরক্ষিত, কমান্ডটি চালান...

|_+_|

কমান্ডের ফলাফল $error স্বয়ংক্রিয় ভেরিয়েবলে সংরক্ষিত ত্রুটির বিবরণ প্রদর্শন করে। ত্রুটি তথ্য একটি অধ্যায় বলা আছে সম্পূর্ণরূপে যোগ্য ত্রুটি আইডি .

এই নির্দিষ্ট ত্রুটির জন্য, সম্পূর্ণরূপে যোগ্য ত্রুটি আইডি তথ্য দুটি সেট আছে - System.InvalidOperationException এবং Microsoft.PowerShell.Commands.GetEventLogCommand .

আমরা আগ্রহী তথ্য হল System.InvalidOperationException . এটি আপনি করতে পারেন ত্রুটি একটি ধরনের ধরা PowerShell-এ ক্যাচ ব্লক ব্যবহার করে দেখুন।

এই PowerShell ব্যতিক্রমটির নাম পেতে, নীচের কমান্ডটি চালান:

|_+_|

এটা আছে, System.InvalidOperationException !

পরবর্তী কয়েকটি উপ-বিভাগে, আমি সাধারণ পাওয়ারশেল ট্রাই ক্যাচ ব্যতিক্রম ত্রুটিগুলি নিয়ে আলোচনা করব।

পাওয়ারশেল ক্যাচ চেষ্টা করুন CommandNotFoundException ত্রুটি

আপনি যদি এমন একটি কমান্ড চালান যা PowerShell বা Microsoft কমান্ড প্রম্পটে বিদ্যমান নেই, আপনি একটি ত্রুটি বার্তা পাবেন। উদাহরণস্বরূপ, যদি আপনি চালান নথিভুক্ত কর কমান্ড, আপনি একটি ত্রুটি বার্তা পাবেন কারণ এই কমান্ডটি একটি বৈধ PowerShell Cmdlet নয়।

PowerShell-এ কমান্ডের ফলাফলের একটি স্ক্রিনশট এখানে...

PowerShell চেষ্টা করুন ক্যাচ CommandNotFoundException ত্রুটি

আপনি স্ক্রিনশট থেকে দেখতে পাচ্ছেন, ব্যতিক্রমের ধরন (FullyQualifiedErrorId) হল CommandNotFoundException .

যেহেতু এটি একটি সমাপ্তি ত্রুটি, এটি আপনার স্ক্রিপ্টটি চালিয়ে যাওয়া বন্ধ করবে৷ আপনার স্ক্রিপ্টটি বন্ধ করা থেকে এই ত্রুটিটি বন্ধ করতে, একটি কমান্ডটি মোড়ানো করুন ধরার চেষ্টা কর ব্লক

যদি আমরা এই ত্রুটিটিকে একটি পাওয়ারশেল ট্রাই ক্যাচ ব্লকে মোড়ানো করি তবে পাওয়ারশেল ত্রুটিটি দমন করবে। তাছাড়া, এটি আপনার স্ক্রিপ্টটি বন্ধ করে দেবে।

যাইহোক, ত্রুটি দমন করা হলেও এটি $error ভেরিয়েবলে সংরক্ষিত হয়। যথারীতি, আপনি নীচের কমান্ডটি চালানোর আগে, প্রথমে $error ভেরিয়েবলে সংরক্ষিত ত্রুটিগুলি পরিষ্কার করুন।

|_+_|

আপনি যদি PowerShell ISE-এর পরিবর্তে PowerShell-এ কমান্ড চালাতে চান, তাহলে নিচের মতো একটি লাইনে কমান্ড টাইপ করুন:

|_+_|

তারপরে, ত্রুটি প্রদর্শন করতে, চালান...

ইউটিউব প্রচুর পরিমাণে বাফার করছে
|_+_|

যেমন আমি এই বিভাগের প্রধান ভূমিকায় উল্লেখ করেছি, এই ত্রুটির জন্য ব্যতিক্রম আইডি প্রদর্শন করতে, নীচের কমান্ডটি চালান:

|_+_|

ব্যতিক্রমের পুরো নাম সিস্টেম।ব্যবস্থাপনা।অটোমেশন।কমান্ডনটফাউন্ডএক্সেপশন .

পাওয়ারশেল ক্যাচ চেষ্টা করুন ManagementObjectNotFoundException ত্রুটি

আপনি যখন একটি দূরবর্তী PS সেশনে ভুল তথ্য দিয়ে একটি কমান্ড চালান, তখন PowerShell একটি প্রদান করে ManagementObjectNotFoundException ত্রুটি.

একটি সাধারণ দৃশ্য হল যখন আপনি PowerShell এর সাথে Office 365 এর সাথে সংযোগ করেন৷ তারপর, Get-User কমান্ড চালান কিন্তু ভুল ব্যবহারকারী সরবরাহ করুন পরিচয় .

PowerShell ক্যাচ ManagementObjectNotFoundException ত্রুটি চেষ্টা করুন

পাওয়ারশেল ট্রাই ক্যাচের সাথে এই ত্রুটিটি ধরতে, নীচের মতো একটি কমান্ড ব্যবহার করুন:

|_+_| ধরা ManagementObjectNotFoundException পাওয়ারশেল ট্রাই এর সাথে ত্রুটি, ক্যাচ বিশেষভাবে কঠিন। আপনি ব্যবহার করতে হবে ErrorAction পরামিতি এবং নির্দিষ্ট করুন থামুন . অন্যথায়, এমনকি চেষ্টা করুন, ক্যাচ দিয়েও, ত্রুটিটি প্রদর্শিত হবে।

অবশেষে, ব্যতিক্রমের নাম পেতে, নীচের কমান্ডটি ব্যবহার করুন:

|_+_|

কমান্ডটি ব্যতিক্রমের ধরন হিসাবে প্রদান করে সিস্টেম।ব্যবস্থাপনা।অটোমেশন।রিমোট ব্যতিক্রম . তাই, কি ManagementObjectNotFoundException ?

ManagementObjectNotFoundException নীচের কমান্ড দ্বারা নিশ্চিত করা ব্যতিক্রমের কারণ হল:

|_+_|

পাওয়ারশেল ক্যাচ চেষ্টা করুন অননুমোদিত অ্যাক্সেস ব্যতিক্রম ত্রুটি

আরেকটি সাধারণ PowerShell ব্যতিক্রম ত্রুটি হল অননুমোদিত অ্যাক্সেস ব্যতিক্রম . এই ধরনের ত্রুটি নিক্ষিপ্ত হয় যখন আপনি একটি আইটেম অ্যাক্সেস করার চেষ্টা করেন আপনার কাছে অন্তত একটি পড়ার অনুমতি নেই।

এই উদাহরণটি ব্যাখ্যা করার জন্য, আমি আমার কম্পিউটারে একটি নির্দিষ্ট ফাইলে প্রমাণীকৃত ব্যবহারকারীদের অ্যাক্সেস অস্বীকার করেছি।

পাওয়ারশেল অননুমোদিত অ্যাক্সেস এক্সেপশন ত্রুটি ধরার চেষ্টা করুন

এখন, যদি আমি Get-Content কমান্ড দিয়ে ফাইলটি অ্যাক্সেস করার চেষ্টা করি, আমি একটি অ্যাক্সেস অস্বীকার বার্তা পাই।

|_+_|

এই ত্রুটি প্রদর্শন বন্ধ করতে, নীচে দেখানো হিসাবে পাওয়ারশেল ট্রাই ক্যাচ ব্লকের মধ্যে কমান্ডটি চালান…

কিভাবে mee6 এর সাথে চ্যাট সাফ করবেন
|_+_|

দুর্ভাগ্যবশত, উপরের কমান্ড ত্রুটি প্রদর্শন বন্ধ করে না। কারণ হল এটি একটি সমাপ্ত ত্রুটি নয়।

ত্রুটি প্রদর্শন বন্ধ করতে, অন্তর্ভুক্ত করুন ErrorAction পরামিতি এবং নির্দিষ্ট করুন থামুন .

|_+_|

এখন, কমান্ড ত্রুটিটি দমন করে। ব্যতিক্রমের ধরণ প্রদর্শন করতে, নীচের কমান্ডটি চালান...

|_+_|

ব্যতিক্রম এর ধরন সিস্টেম।অনুমোদিত অ্যাক্সেস ব্যতিক্রম .

এই বিভাগে যা কভার করা হয়েছে তার চেয়ে বেশি ধরনের ব্যতিক্রম ত্রুটি রয়েছে। আমি শুধুমাত্র সবচেয়ে সাধারণ ধরনের ব্যতিক্রমগুলি কভার করেছি৷

PowerShell দিয়ে কিভাবে নির্দিষ্ট ব্যতিক্রম ক্যাপচার করতে হয় ক্যাচ চেষ্টা করুন

PowerShell দিয়ে কিভাবে নির্দিষ্ট ব্যতিক্রম ক্যাপচার করতে হয় ক্যাচ চেষ্টা করুন

শেষ বিভাগে সাধারণ PowerShell ব্যতিক্রম এবং কিভাবে ব্যতিক্রমের ধরন খুঁজে বের করা যায় তা নিয়ে আলোচনা করা হয়েছে। নির্দিষ্ট ধরনের ত্রুটি বার্তা ক্যাপচার করতে সেই তথ্যটি কীভাবে ব্যবহার করবেন তা এই বিভাগে কভার করবে।

এই গাইডের সিনট্যাক্স বিভাগে, আমি বলেছিলাম যে একটি পাওয়ারশেল ট্রাই ক্যাচের সাধারণ সিনট্যাক্স হল...

|_+_|

সিনট্যাক্সের ক্যাচ ব্লকে, আপনি [ত্রুটির প্রকার] দেখতে পারেন। আপনি এই ব্লকে যে ধরনের ত্রুটি ধরতে চান তা এখানেই উল্লেখ করুন।

উদাহরণস্বরূপ, UnauthorizedAccessException ত্রুটিগুলি ধরতে, নীচের বিবৃতিগুলি ব্যবহার করুন...

|_+_|

PowerShell-এ কমান্ড চালানোর জন্য, একটি একক লাইনে বিবৃতিগুলি নির্দিষ্ট করুন। বিবৃতির প্রথম অংশ – $error.Clear() – $error ভেরিয়েবলে সংরক্ষিত যেকোন ত্রুটি সাফ করে।

|_+_|

কিভাবে একাধিক যোগ করবেন ধরা একটি পাওয়ারশেলে ব্লক ধরার চেষ্টা কর বিবৃতি

এই বিভাগের ভূমিকায়, আমি আপনাকে দেখিয়েছি কীভাবে একটি নির্দিষ্ট ধরণের ব্যতিক্রম ধরতে হয় ধরা ব্লক আপনি একাধিক নির্দিষ্ট করতে পারেন

এখানে একটি উদাহরণ…

|_+_|

এই উদাহরণে, প্রথম ধরা ব্লক নির্দিষ্ট ধরনের ব্যতিক্রম পরিচালনা করে। তাছাড়া দ্বিতীয়টি ধরা ব্লক হ্যান্ডলগুলি জেনেরিক ত্রুটিগুলি পরিচালনা করে।

পাওয়ারশেল ট্রাই ক্যাচ দিয়ে কীভাবে ত্রুটি ব্যতিক্রম বের করবেন

শেষ উপধারাটি বিভিন্ন ধরণের ব্যতিক্রমগুলি পরিচালনা করতে একাধিক ক্যাচ ব্লক কীভাবে নির্দিষ্ট করতে হয় তা কভার করেছে। এই উপবিভাগে, আপনি শিখবেন কিভাবে একটি ব্যতিক্রমে ত্রুটির বিবরণ বের করতে হয়।

এটি ব্যাখ্যা করার জন্য, আমি একটি উদাহরণ ব্যবহার করব যা আমি আগে ব্যবহার করেছি। PowerShell-এ এই PowerShell স্টেটমেন্টটি চালান।

|_+_|

এখন $error একা চালান...

|_+_|

যদিও $error ভেরিয়েবলে একাধিক তথ্য সংরক্ষিত আছে, প্রকৃত ত্রুটি বার্তাটি নীচের স্ক্রিনশটে হাইলাইট করা হয়েছে।

পাওয়ারশেল দিয়ে কীভাবে ত্রুটির বিবরণ বের করবেন ক্যাচ চেষ্টা করুন

আপনি যদি এই ত্রুটিটি একটি পাঠ্য ফাইলে লগ করতে চান তবে আপনাকে শুধুমাত্র প্রকৃত ত্রুটির বিবরণ লগ করতে হবে৷ এই ত্রুটিটি বের করতে, নীচের কমান্ডটি ব্যবহার করুন:

|_+_|

কমান্ডটি প্রকৃত ত্রুটির বার্তা বের করে 'D:PS-Tutorialfolder-names.txt' পাথের অ্যাক্সেস অস্বীকৃত।

আপনি একটি লগ ফাইলে একটি অন্তর্ভুক্ত করে এই ত্রুটি বার্তাটি লিখতে পারেন আউট-ফাইল ক্যাচ ব্লকে কমান্ড দিন।

|_+_| আমি অন্তর্ভুক্ত যোগ করুন মধ্যে পরামিতি আউট-ফাইল পূর্ববর্তী এন্ট্রিগুলি ওভাররাইট না করে একাধিক এন্ট্রি লগিং করার অনুমতি দেওয়ার জন্য কমান্ড।

শেষ কমান্ডটি বোঝা সহজ করার জন্য, আমি নীচের স্ক্রিপ্ট বিন্যাসে এটি পুনরায় লিখব...

|_+_|

কিভাবে এ অন্তর্ভুক্ত করবেন অবশেষে PowerShell-এ ব্লক করুন ধরার চেষ্টা কর বিবৃতি

পাওয়ারশেল-এ অবশেষে একটি ব্লক কীভাবে অন্তর্ভুক্ত করবেন ক্যাচ স্টেটমেন্ট চেষ্টা করুন

আপনি একটি অন্তর্ভুক্ত করতে পারেন অবশেষে PowerShell এ ব্লক করুন ধরার চেষ্টা কর বিবৃতি। সিনট্যাক্স হল

|_+_|

দ্য অবশেষে ব্লকটি স্ক্রিপ্টের আর প্রয়োজন নেই এমন কোনও সংস্থান খালি করতে ব্যবহার করা যেতে পারে।

আপনি স্ক্রিপ্ট বন্ধ করতে CTRL+C ব্যবহার করলেও শেষ পর্যন্ত ব্লক চলে। যদি একটি Exit কীওয়ার্ড একটি ক্যাচ ব্লকের মধ্যে থেকে স্ক্রিপ্টটিকে থামিয়ে দেয় তবে ব্লকটিও চলবে।

শেষ উদাহরণে, আমার কাছে একটি বিবৃতি ছিল যা একটি টেক্সট ফাইলে ত্রুটি লগ লিখে ধরা ব্লক যাইহোক, যে বিবৃতি আছে সর্বোত্তম জায়গা a অবশেষে ব্লক

নীচে পরিবর্তিত স্ক্রিপ্ট দেখুন...

|_+_|

পাওয়ারশেল ট্রাই ক্যাচ সম্পর্কে অতিরিক্ত দরকারী তথ্য

পাওয়ারশেল ট্রাই সম্পর্কে অন্যান্য গুরুত্বপূর্ণ তথ্য

এই বিভাগে আমি পাওয়ারশেল ট্রাই ক্যাচ সম্পর্কে কিছু সহজ কিন্তু দরকারী তথ্য শেয়ার করব।

কিভাবে PowerShell সাফ করবেন ক্যাচ $Error স্বয়ংক্রিয় ভেরিয়েবল চেষ্টা করুন

$error স্বয়ংক্রিয় পরিবর্তনশীল একটি আছে পরিষ্কার পদ্ধতি। আপনি $error স্বয়ংক্রিয় ভেরিয়েবলে সংরক্ষিত সমস্ত ত্রুটি সাফ করতে এই পদ্ধতিটি ব্যবহার করতে পারেন।

বর্তমান PowerShell সেশনের জন্য $error স্বয়ংক্রিয় ভেরিয়েবলে সংরক্ষিত সমস্ত ত্রুটি সাফ করতে, নীচের কমান্ডটি চালান।

|_+_|

পাওয়ারশেলে একটি কাস্টম ত্রুটি বার্তা কীভাবে প্রদর্শন করবেন ক্যাচ ব্লক চেষ্টা করুন

পাওয়ারশেল ট্রাই ক্যাচ ব্লকে একটি কাস্টম ত্রুটি বার্তা প্রদর্শন করতে, থ্রো শব্দটি ব্যবহার করুন। এখানে একটি উদাহরণ…

|_+_|

PowerShell ISE-তে এই স্ক্রিপ্টের ফলাফল এখানে।

পাওয়ারশেলে একটি কাস্টম ত্রুটি বার্তা কীভাবে প্রদর্শন করবেন ক্যাচ ব্লক চেষ্টা করুন

PowerShell-এ কিভাবে Error CategoryInfo তথ্য পেতে হয় Catch চেষ্টা করুন

$error স্বয়ংক্রিয় ভেরিয়েবলের CategoryInfo নামে একটি বৈশিষ্ট্য রয়েছে। এই সম্পত্তি এবং অন্যান্য বৈশিষ্ট্য এবং পদ্ধতিগুলি দেখতে, নীচের কমান্ডটি চালান...

|_+_|

শেষ কমান্ড দ্বারা প্রত্যাবর্তিত বৈশিষ্ট্যগুলির একটিকে বলা হয় ক্যাটাগরি ইনফো .

এই তথ্য অ্যাক্সেস করতে, নীচের কমান্ড চালান.

|_+_|

এই কমান্ড একাধিক উপ-বৈশিষ্ট্য প্রদান করে।

PowerShell-এ কিভাবে Error CategoryInfo তথ্য পেতে হয় Catch চেষ্টা করুন

এই উপ-বৈশিষ্ট্যগুলির প্রতিটি একটি নির্দিষ্ট সময়ের পরে উপ-সম্পত্তির নাম যোগ করে অ্যাক্সেস করা যেতে পারে। উদাহরণস্বরূপ, কারণ উপ-বৈশিষ্ট্য প্রদর্শন করতে, নীচের কমান্ডটি চালান।

|_+_|

পাওয়ারশেলে ত্রুটির বার্তা প্রদর্শনের জন্য কীভাবে রাইট-হোস্ট ব্যবহার করবেন ক্যাচ চেষ্টা করুন

শেষ উপ-বিভাগের CategoryInfo প্রপার্টির মত, $error স্বয়ংক্রিয় ভেরিয়েবলেরও একটি প্রপার্টি আছে যাকে বলা হয় ব্যতিক্রম . একটি ত্রুটিতে ব্যতিক্রম প্রদর্শন করতে, নীচের কমান্ডটি চালান:

কীভাবে স্ক্রিন ভাগ সক্ষম করবেন তা অস্বীকার করুন
|_+_|

দুর্ভাগ্যবশত, যদি আপনি Write-Host কমান্ডের সাহায্যে এই তথ্য প্রদর্শন করার চেষ্টা করেন, এটি প্রত্যাশিতভাবে কাজ করে না।

|_+_|

PowerShell-এ এই কমান্ডের ফলাফল এখানে...

পাওয়ারশেলে ত্রুটির বার্তা প্রদর্শনের জন্য কীভাবে রাইট-হোস্ট ব্যবহার করবেন ক্যাচ চেষ্টা করুন

আপনি দেখতে পাচ্ছেন, কমান্ডটি অন্যান্য তথ্যের একটি গুচ্ছ প্রদর্শন করে। সুখবর হল যে $ত্রুটি। ব্যতিক্রম নামক আরেকটি সম্পত্তি আছে বার্তা .

আপনি এটি যোগ করে এই উপ-সম্পত্তি কল করতে পারেন $ত্রুটি। ব্যতিক্রম , এটার মত…

|_+_|

উপরন্তু, আপনি ব্যবহার করতে পারেন লিখুন-হোস্ট এই ত্রুটি তথ্য প্রদর্শন করার জন্য কমান্ড...

|_+_|

শেষ কমান্ড এখন প্রকৃত ত্রুটি বার্তা প্রদর্শন করে...

তা ছাড়া ব্যবহার করার নির্দিষ্ট কারণ আছে লিখুন-হোস্ট শেষ কমান্ডে দেখানো হয়েছে, আপনি সহজভাবে একই ত্রুটি বার্তা প্রদর্শন করতে পারেন $ত্রুটি। ব্যতিক্রম আদেশ

পাওয়ারশেলে কীভাবে একটি হ্যাশটেবল তৈরি করবেন ক্যাচ ব্লক ব্যবহার করে দেখুন

আপনি তৈরি করতে পারেন দুটি সাধারণ উপায় আছে পাওয়ারশেল হ্যাশটেবল একটি ক্যাচ ব্লক চেষ্টা করুন.

  1. আপনি চেষ্টা ব্লকের মধ্যে একাধিক কী/মান জোড়া দিয়ে একটি হ্যাশটেবল তৈরি করতে পারেন
  2. বিকল্পভাবে, আপনি এর সাথে একটি একক কী/মান হ্যাশটেবল তৈরি করতে পারেন চাবি বাহিরে Catc চেষ্টা করুন h ব্লক এবং এর মধ্যে মান Catc চেষ্টা করুন h ব্লক।

এখানে প্রথম পদ্ধতির একটি উদাহরণ…

|_+_|

আপনি দেখতে পাচ্ছেন যে তাড়াহুড়োর মধ্যে রয়েছে Catc চেষ্টা করুন h ব্লক…

অন্যদিকে, আপনি a এর মধ্যে সংজ্ঞায়িত মান সহ একটি একক হ্যাশটেবল কী তৈরি করতে পারেন Catc চেষ্টা করুন h ব্লক। এখানে একটি উদাহরণ…

|_+_|

শেষ স্ক্রিপ্টটি একটি পাওয়ারশেল হ্যাশটেবল তৈরি করে তা নিশ্চিত করতে, স্ক্রিপ্টটি চালানোর পরে, আমি $hashtable ভেরিয়েবলে সংরক্ষিত মানগুলিকে কল করেছি।

আপনি শেষ কমান্ডের ফলাফল থেকে দেখতে পাচ্ছেন, এটির একটি নাম/মান জোড়া আছে!

পাওয়ারশেল ক্যাচ উদাহরণ চেষ্টা করুন

পাওয়ারশেল ক্যাচ উদাহরণ চেষ্টা করুন

এই চূড়ান্ত বিভাগে, আমি পাওয়ারশেল ট্রাই ক্যাচ প্রয়োগের একাধিক উদাহরণ কভার করব।

কিভাবে PowerShell ব্যবহার করবেন ধরার চেষ্টা কর গেট-চাইল্ডেমের সাথে

Get-Childitem কমান্ড একাধিক ত্রুটি ফিরিয়ে দিতে পারে। দুটি সাধারণ ত্রুটি চিত্রিত করতে, আমি নীচের দুটি কমান্ড ব্যবহার করব:

|_+_|

শেষ কমান্ডে ব্যবহৃত টেক্সট ফাইলের সঠিক পথ হল D:PS-Tutorialfilelist.txt।

উইন্ডোজ স্বয়ংক্রিয়ভাবে আইপি প্রোটোকল স্ট্যাককে আবদ্ধ করতে পারে না

যাইহোক, প্রথম কমান্ডে আমি D:PS-টিউটোরিয়ালের পরে একটি স্থান অন্তর্ভুক্ত করেছি। এর ফলে একটি ত্রুটি হয়েছে (আমরা শীঘ্রই ত্রুটির বিবরণ নির্ধারণ করব)।

এছাড়াও, দ্বিতীয় কমান্ডে, আমি সঠিক পথ উল্লেখ করেছি কিন্তু ভুল ফাইলের নাম ব্যবহার করেছি। এর ফলে একটি ত্রুটি হয়েছে।

|_+_| কিভাবে PowerShell ব্যবহার করবেন Get-Childitem এর সাথে ক্যাচ করে দেখুন

এই ত্রুটিগুলি সম্পর্কে আরও তথ্য পেতে, আমি একটি PowerShell-এ কমান্ড চালাব ধরার চেষ্টা কর ব্লক

|_+_|

আমাদের প্রথম কাজ হল কমান্ড দ্বারা প্রত্যাবর্তিত ত্রুটির ধরন নির্ধারণ করা। এই তথ্য পেতে, নীচের কমান্ড চালান...

|_+_|

এখানে কমান্ডের ফলাফল আছে...

এক্সপোর্ট-সিএসভি দিয়ে Get-WMIObject ত্রুটিগুলি এক্সপোর্ট করতে পাওয়ারশেল কীভাবে ব্যবহার করবেন$error স্বয়ংক্রিয় ভেরিয়েবলে সংরক্ষিত ত্রুটিগুলি একটি PowerShell অ্যারেতে সংরক্ষণ করা হয়। অ্যারের প্রতিটি অবজেক্ট অ্যারের শেষে একটি [0], [1] যোগ করে অ্যাক্সেস করা হয়। 0 অ্যারের প্রথম আইটেমকে প্রতিনিধিত্ব করে যখন 1 দ্বিতীয় আইটেমকে প্রতিনিধিত্ব করে ইত্যাদি।

দ্বারা নিক্ষিপ্ত ত্রুটি সম্পর্কে আরো তথ্য পেতে ফিরে Get-Childitem কমান্ড, ত্রুটির প্রকারের উপর ভিত্তি করে, আমরা এই 2 ধরনের ত্রুটি ক্যাপচার করতে আমাদের ট্রাই ক্যাচ ব্লক পরিবর্তন করতে পারি...

|_+_|

আমাদের দ্বিতীয় কাজ হল প্রকৃত ত্রুটি বার্তা প্রদর্শন করা। এই কমান্ড কাজ করবে:

|_+_|

কমান্ড দুটি ত্রুটি বার্তা প্রদর্শন করে...

কিভাবে PowerShell ব্যবহার করবেন ধরার চেষ্টা কর এক্সপোর্ট-সিএসভি দিয়ে Get-WMIObject ত্রুটি রপ্তানি করতে

এই উপ-বিভাগে, আমি চালানোর সময় উত্পন্ন ত্রুটিগুলি রপ্তানি করব Get-WMIObject এর সাথে একটি CSV ফাইলে একটি দূরবর্তী কম্পিউটারে এক্সপোর্ট-সিএসভি আদেশ

প্রথমে, আপনি যখন একটি অফলাইন রিমোট কম্পিউটারের সাথে সংযোগ করার চেষ্টা করেন তখন উত্পন্ন ত্রুটির বিবরণ দেখি Get-WMIObject . এটি ব্যাখ্যা করতে নীচের কমান্ডটি চালান...

|_+_|

কমান্ড একটি ত্রুটি বার্তা তৈরি করেছে কারণ কম্পিউটার একটি বৈধ পিসি নাম নয়।

পাওয়ারশেল দিয়ে কীভাবে গেট-প্রসেস ত্রুটি ধরা যায় ক্যাচ স্টেটমেন্ট ব্যবহার করে দেখুন

এগিয়ে চলুন, ত্রুটি পরিচালনা করতে, আমি কমান্ডটি চালাব চেষ্টা করুন একটি ব্লক ধরার চেষ্টা কর বিবৃতি

|_+_|

এর প্রথম লাইনে চেষ্টা করুন ব্লক, আমি $ComputerName ভেরিয়েবল সংজ্ঞায়িত করেছি। তারপর, দ্বিতীয় লাইনে, আমি দৌড়েছি Get-WmiObject আদেশ

উপরন্তু, মধ্যে ধরা ব্লক, আমি একটি CSV ফাইলে রপ্তানি করে ত্রুটির বিবরণ তৈরি করেছি এক্সপোর্ট-সিএসভি .

এখানে স্ক্রিপ্টের একটি বিশদ ব্যাখ্যা রয়েছে চেষ্টা করুন ব্লক:

  1. লাইন 1 এ, আমি একটি $পাথ ভেরিয়েবল তৈরি করেছি যা নির্দিষ্ট করে যে আমি CSV ফাইলটি কোথায় সংরক্ষণ করতে চাই
  2. তারপর, লাইন 2 এ আমি CSV ফাইলের জন্য একটি ফাইলের নাম তৈরি করতে Get-Date কমান্ড ব্যবহার করেছি। ফাইলের নাম ফরম্যাটে আছে, yyyyMMdd_HHmmss.csv
  3. লাইন 3 এ, আমি $data নামক একটি ভেরিয়েবলে সংরক্ষিত একটি খালি বস্তু তৈরি করেছি
  4. তারপর, লাইন 4-এ আমি 'কম্পিউটার নাম' কলামটি 3 লাইনে তৈরি করা বস্তুতে যোগ করেছি। কলামটি $ComputerName ভেরিয়েবল নেয়
  5. লাইন 5 এ, আমি 'ত্রুটি বার্তা' ভলিউম যোগ করেছি যা ত্রুটি বার্তাগুলি সংরক্ষণ করবে, $error.Exception.Message
  6. তারপর, লাইন 6-এ, আমি একটি $csvfilepath ভেরিয়েবল তৈরি করেছি যা $path এবং $csvfilename ভেরিয়েবলগুলিকে একত্রিত করে CSV ফাইলের একটি সম্পূর্ণ পথ তৈরি করে।
  7. অবশেষে, লাইন 7-এ, আমি $data ভেরিয়েবলে ($ComputerName এবং $error.Exception.Message) সংরক্ষিত তথ্য পাইপ করেছি এক্সপোর্ট-সিএসভি এবং ফাইলটিকে $csvfilepath-এ সেভ করেছে
দ্য টাইপ তথ্য নেই Export-csv কমান্ডের প্যারামিটার টাইপ তথ্য সরিয়ে দেয়। আরও জানতে, আমাদের গাইড পড়ুন, Powershell NoTypeInformation: অ্যাপ্লিকেশন এবং উদাহরণ

নীচের স্ক্রিনশটটি স্ক্রিপ্ট দ্বারা তৈরি CSV দেখায়...

পাওয়ারশেল দিয়ে কীভাবে গেট-প্রসেস ত্রুটি ধরা যায় ধরার চেষ্টা কর বিবৃতি

আপনি যদি একটি প্রসেস আইডি সহ গেট-প্রসেস কমান্ড চালান যা বিদ্যমান নেই, এটি একটি ফেরত দেবে Microsoft.PowerShell.Commands.ProcessCommandException ত্রুটি.

এই নির্দিষ্ট ধরণের ব্যতিক্রম ক্যাপচার করতে, নীচেরটির মতো একটি কমান্ড চালান:

|_+_|

PowerShell ISE-এ স্ক্রিপ্টের ফলাফল এখানে।

বিকল্পভাবে, আপনি নীচে দেখানো স্ক্রিপ্ট পরিবর্তন করে একটি কাস্টম ত্রুটি বার্তা সংজ্ঞায়িত করতে পারেন...

|_+_|

এখন স্ক্রিপ্ট কাস্টম ত্রুটি বার্তা ফেরত দেয়...

পাওয়ারশেল দিয়ে কিভাবে গেট-মেলবক্স ত্রুটি ধরা যায় ধরার চেষ্টা কর বিবৃতি

আপনি যদি অফিস 365 পাওয়ারশেলের সাথে সংযোগ করেন এবং চালান গেট-মেইলবক্স বিদ্যমান নেই এমন একটি ব্যবহারকারীর বিরুদ্ধে, আপনি একটি ত্রুটি বার্তা পাবেন। কিছু ব্যবহারকারী ত্রুটি বার্তাটি ক্যাপচার করতে সমস্যা হওয়ার কথা জানিয়েছেন৷ গেট-মেইলবক্স আদেশ

আমাদের সাথে সংযোগ করার পরে এই দৃশ্যটি পরীক্ষা করতে অফিস 365 অ্যাকাউন্ট পাওয়ারশেলের মাধ্যমে, আমি নীচের স্ক্রিপ্টটি চালিয়েছি:

|_+_| ব্যবহারকারী, Pius আমাদের Office 365 অ্যাকাউন্টে বিদ্যমান নেই।

স্ক্রিপ্ট ত্রুটি বার্তা ফেরত 'AM6PR05A05DC002.EURPR05A005.PROD.OUTLOOK.COM এ বস্তু 'Pius' খুঁজে পাওয়া যায়নি কারণ অপারেশনটি করা যায়নি '

এখানে স্ক্রিনশট…

যাইহোক, যদি ধরার চেষ্টা কর ত্রুটিটি ধরা পড়ে, নীচের সংশোধিত কমান্ডে দেখানো ব্যতিক্রমের ধরন যোগ করার চেষ্টা করুন:

|_+_|

এটাই হল – PowerShell সম্পর্কে আমাদের ব্যাপক এবং আপডেট গাইড ক্যাচ ফাইনাল চেষ্টা করুন ly আমি আশা করি আপনি এটি সহায়ক খুঁজে পেয়েছেন?

আপনি যদি এটি সহায়ক বলে মনে করেন, দয়া করে ভোট দিন হ্যাঁ নীচের এই পোস্ট সহায়ক প্রশ্ন ছিল.

বিকল্পভাবে, আপনি একটি প্রশ্ন জিজ্ঞাসা করতে পারেন, একটি মন্তব্য করতে পারেন বা এই পৃষ্ঠার শেষে পাওয়া একটি উত্তর ছেড়ে দিন ফর্মের সাথে আরও প্রতিক্রিয়া প্রদান করতে পারেন৷

অবশেষে, আরও PowerShell টেক এস জোনের জন্য, আমাদের Windows PowerShell হাউ-টু গাইড পৃষ্ঠা দেখুন। এছাড়াও আপনি হোম পেজ থেকে আমাদের কাজ খুব সহায়ক খুঁজে পেতে পারেন.

তথ্যসূত্র এবং আরও পড়া

  1. ট্রাই ক্যাচ ফিনালি সম্পর্কে
  2. ফাঁদ সম্পর্কে
  3. পাওয়ারশেল অ্যারে এবং অ্যারেতে যোগ করুন: অ্যাপ্লিকেশন এবং উদাহরণ
  4. লুপের জন্য পাওয়ারশেল ব্যাখ্যা করা হয়েছে: সিনট্যাক্স এবং উদাহরণ