উইন্ডোজ: নির্দিষ্ট বন্দরে চলমান প্রক্রিয়াটি হত্যার দ্রুততম উপায়


11

আমি অনেকবার এই প্রক্রিয়াটি অতিক্রম করছি। আমাকে উইন্ডোজ মেশিনে একটি প্রক্রিয়াটি মেরে ফেলতে হবে এবং আমি কেবল তার বন্দরটি জানি। সাধারণত পদক্ষেপগুলি নীচের মতো থাকে: বন্দরগুলি দেখে পিআইডি সন্ধান করুন (উদাহরণস্বরূপ পোর্ট ৮০৮৪) পোর্টগুলিতে চলমান প্রক্রিয়াগুলি তালিকাভুক্ত করুন

netstat -a -o -n

এবং তারপরে নীচের কমান্ডটি দিয়ে সেই বন্দরে প্রক্রিয়াটি মেরে ফেলুন

taskkill /F /PID <pid>

পাইপ বা অনুরূপ কোনও জিনিস আছে যা আমি উইন্ডোজ ওএসে এই কমান্ডটি এক লাইনে চালাতে ব্যবহার করতে পারি !?


1
আমি দুঃখিত যে আমি এখনই একটি পূর্ণ উত্তর লিখতে পারি না, তবে findstr(উইন্ডোজ grep) একবার দেখুন at উদাহরণস্বরূপ: netstat -a -o -n | findstr "LISTENING" | findstr ":135"। হতে পারে এটি আপনাকে আরও এক ধাপ কাছে নিয়ে যায়;)
ডের হচস্টাপলার

@ অলিভারসালজবার্গের সেই ২ য় সতর্কতা অবলম্বন করা দরকার findstr: স্থানীয় বা দূরবর্তী পোর্ট সংখ্যার সাথে মেলে। (এটি স্বীকার করে যে প্রশ্নটি কোনটি নির্দিষ্ট করে না))
রিচার্ড

উত্তর:


10

পাইপ বা অনুরূপ কোনও জিনিস আছে যা আমি উইন্ডোজ ওএসে এই লাইনটি এক লাইনে চালাতে ব্যবহার করতে পারি?

উভয় cmd.exeএবং পাওয়ারশেল পাইপগুলিকে এক কমান্ড থেকে অন্য কমান্ড সমর্থন করে। পাওয়ারশেলের মধ্যে এমন কিছু (এটি কমান্ড লাইনের একক লাইনে হওয়া উচিত, বা script কোনও স্ক্রিপ্টে নিউলাইনগুলি এড়াতে use ব্যবহার করুন):

netstat -ano
 | select -skip 4 
 | % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} 
 | ? {$_.Fields[1] -match '15120$'}
 | % {taskkill /F /PID $_.Fields[4] }

কোথায়:

  • Select -skip 4প্রথম চারটি শিরোনাম লাইন এড়িয়ে যায়। ( বস্তুর প্রকল্পগুলির মতো এসকিউএল নির্বাচন নির্বাচন করার Selectজন্য Select-Objectব্যবহৃত সংক্ষিপ্ত) ।
  • %সংক্ষিপ্ত Foreach-Objectযার জন্য $_পাইপলাইনে প্রতিটি বস্তুর ( ) স্ক্রিপ্ট ব্লক সম্পাদন করে এবং স্ক্রিপ্ট ব্লকের ফলাফলগুলি পাইপলাইনে আউটপুট করে। এখানে এটি প্রথমে ক্ষেত্রগুলির অ্যারেতে ইনপুটটি ভেঙে ফেলা হচ্ছে এবং তারপরে Originalস্ট্রিং netstatএবং Fieldsঅ্যারেটি তৈরি করা দুটি বৈশিষ্ট্য সহ একটি নতুন আইটেম তৈরি করছে।
  • ?Where-Objectকোনও স্ক্রিপ্ট ব্লকের ফলাফলের ভিত্তিতে ফিল্টারগুলি সংক্ষিপ্ত । এখানে দ্বিতীয় ক্ষেত্রের শেষে একটি রেজেক্সের সাথে মিল রয়েছে (সমস্ত পাওয়ারশেলের ধারকগুলি একটি শূন্য ভিত্তিক)।

(সর্বশেষ উপাদান ব্যতীত সমস্ত পরীক্ষিত: আমি হত্যা প্রক্রিয়া শুরু করতে চাই না :-))।

অনুশীলনে আমি এটি সরল করব, উদাহরণস্বরূপ। প্রথম থেকে মাত্র 0 বা পিআইডি ফিরিয়ে দেওয়া foreach(যা শিরোনামকে উপেক্ষা করার জন্য ডিজাইন করা হবে) এবং কল করার আগে শূন্য নয় এমন মানগুলিতে ফিল্টার করুন taskkill। এটি টাইপ করা দ্রুত তবে পাওয়ারশেল না জেনে অনুসরণ করা আরও শক্ত।


কিছু কারণে আমার পাওয়ার শেল নির্বাচনকে স্বীকৃতি দেয় না! উইন্ডোজ 7 চলমান "ডের বেফেল" নির্বাচন করুন "আইটি এনটিউইডার ফালসচ ইজেচারিবেন ওডার কোন্টে নিচ জিফুডেন ওয়ার্ডেন" " "সিলেক্ট-অবজেক্ট" এর জন্য একই
আরমান্ড

এটি আমার পক্ষে কাজ করেছে, তবে প্রক্রিয়াটি দু'বার পাওয়া গেছে, আমি বিশ্বাস করি যে আইপিভি 4 এবং আইপিভি 6 সংস্করণ তালিকাভুক্ত হয়েছে netstat। এটির (সম্ভবত ক্ষতিহীন) ত্রুটির দিকে পরিচালিত করে ERROR: The process "12345" not found.
স্কট ওয়েলডন

আমি মনে করি এখানে গুরুত্বপূর্ণ গ্রহণযোগ্যতা taskkill /F /PID [PID]। এটির সাহায্যে, কেউ পিআইডি পাওয়ার উপায় থাকার কারণে ম্যানুয়ালি কোনও কাজগুলিকে হত্যা করতে পারে।
সাওয়াতায়টিস

1

কমান্ড প্রম্পট ওপেন করুন:

for /f "tokens=5" %a in ('netstat -aon ^| find "8080"') do taskkill /f /pid %a

আপনি যদি এটি .bat এ করতে চান তবে % a কে %% a এর জন্য প্রতিস্থাপন করুন ।

আপনি যদি কেবল সেই বন্দুকটিতে যা শুনতে পাচ্ছেন তাকে হত্যা করতে চান তবে অন্য অনুসন্ধানের শেষে ("|" তালিকাভুক্তি করুন ") সন্ধান করুন।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.