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


42

আমি একাধিক সার্ভারে কোনও প্রক্রিয়া চলছে কিনা তা দেখার চেষ্টা করছি এবং তারপরে এটিকে একটি টেবিলের মধ্যে ফর্ম্যাট করব।

get-process -ComputerName server1,server2,server3 -name explorer | Select-Object processname,machinename

সহজ অংশটি নির্ধারণ করে - যখন প্রক্রিয়াটি বিদ্যমান না থাকে বা সার্ভার অনুপলব্ধ থাকে, পাওয়ারশেল একটি বড় কুরুচিপূর্ণ ত্রুটি আউটপুট দেয়, টেবিলটি গণ্ডগোল করে দেয় এবং চালিয়ে যায় না। উদাহরণ

Get-Process : Couldn't connect to remote machine.At line:1 char:12 + get-process <<<<  -ComputerName server1,server2,server3 -name explorer | format-table processname,machinename
+ CategoryInfo          : NotSpecified: (:) [Get-Process], InvalidOperatio   nException    + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Power   Shell.Commands.GetProcessCommand

আমি কিভাবে এই কাছাকাছি পেতে পারি? প্রক্রিয়াটি উপলভ্য না হলে বা চলমান থাকলে আমি যদি বিজ্ঞপ্তি পেতে চাই।

উত্তর:


46

-ErrorAction SilentlyContinueআপনার কমান্ড যোগ করুন ।

যখন এটি কোনও ত্রুটি নয়, তবে একটি -EV Err -EA SilentlyContinueঅপ্রত্যাশিত ব্যতিক্রম, ব্যতিক্রমটি ধরার জন্য আপনার যুক্ত করা উচিত । (এর EAজন্য একটি নাম ErrorAction)

তারপরে আপনি নিজের স্ক্রিপ্টের ত্রুটিটি একবার দেখে দেখে নিতে পারেন $Err[0]


আমি ভয় করি যে এটি কাজ করে না যদি না আমি এটি ভুল জায়গায় চাপাই না। get-প্রক্রিয়া -কম্পিউটারনেম সার্ভার 1, সার্ভার 2, সার্ভার 3-নাম এক্সপ্লোরার-এরর অ্যাকশন সাইলেন্টলি কনটিনিউ | সিলেক্ট-অবজেক্ট প্রসেসনাম, মেশিননেম
জ্যাক

এটিতে যুক্ত করুন get-processবা উপরে আমার আপডেট হওয়া উত্তরটি একবার দেখুন।
বার্ট ডি ভোস

13

সংক্ষিপ্ত উত্তর:$ErrorActionPreference = 'SilentlyContinue' আপনার কোডের শুরুতে যুক্ত করুন যাতে আপনার -ErrorAction SilentlyContinueপ্রতিটি কমান্ডে যোগ করার প্রয়োজন হয় না

দীর্ঘ উত্তর: https://www.gitbook.com/book/devopscollective/the-big-book-of-powershell-error-andling/details


1
পার্থক্যটি দ্রষ্টব্য: 'চালিয়ে যান' (ডিফল্ট সেটিংস) কার্যকর করা চালিয়ে যায়, তবে কনসোলে ত্রুটিগুলি লিখে দেয় (যা আমি তাকে সঠিকভাবে পড়ি তবে অপসারণ থেকে মুক্তি পেতে চায়)। 'সাইলেন্টলি কনটিনিউ' সমস্ত ত্রুটি-বার্তা সম্পূর্ণরূপে দমন করে।
ফ্রেডেরিক স্ট্রাক-শুকিং


"আপনার কোডের শুরুতে $ ত্রুটিঅ্যাকশনপ্রিফারেন্স = 'সাইলেন্টলি কনটিনিউ' যুক্ত করুন" ---> এটি সত্যই আপনাকে সাহায্য করেছে এবং এটি ইন্টারনেটে উপলব্ধ করার জন্য আপনাকে অনেক ধন্যবাদ।
নিশান্ত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.