কম্পিউটার

PowerShell দিয়ে উইন্ডোজ প্রসেস পরিচালনা করা

একটি স্থানীয় বা দূরবর্তী কম্পিউটারে প্রক্রিয়া পরিচালনা করার জন্য PowerShell-এর অনেক বৈশিষ্ট্য রয়েছে। PowerShell ব্যবহার করে, আপনি চলমান প্রক্রিয়াগুলির একটি তালিকা পেতে পারেন, একটি হ্যাং-আপ প্রক্রিয়া স্থগিত করতে পারেন, একটি উইন্ডোজ শিরোনাম দ্বারা একটি প্রক্রিয়া খুঁজে পেতে পারেন, একটি লুকানো বা ইন্টারেক্টিভ মোডে একটি নতুন প্রক্রিয়া চালাতে পারেন, ইত্যাদি৷

আপনি Windows 10-এ উপলব্ধ প্রসেস ম্যানেজমেন্ট cmdlet এর তালিকা নিম্নরূপ প্রদর্শন করতে পারেন:

Get-Command –Noun Process

PowerShell দিয়ে উইন্ডোজ প্রসেস পরিচালনা করা

  • গেট-প্রক্রিয়া - চলমান উইন্ডোজ প্রক্রিয়াগুলির একটি তালিকা পান;
  • শুরু-প্রক্রিয়া - একটি প্রক্রিয়া/প্রোগ্রাম শুরু করুন;
  • স্টপ-প্রসেস – জোরপূর্বক প্রক্রিয়াটি বন্ধ করুন (হত্যা করুন);
  • ডিবাগ-প্রক্রিয়া - একটি প্রক্রিয়া ডিবাগ করুন;
  • অপেক্ষা-প্রক্রিয়া - প্রক্রিয়া শেষ না হওয়া পর্যন্ত অপেক্ষা করুন।

গেট-প্রক্রিয়া:চলমান প্রক্রিয়াগুলির একটি তালিকা পাওয়া

Get-Process cmdlet একটি স্থানীয় কম্পিউটারে চলমান প্রক্রিয়াগুলির একটি তালিকা প্রদর্শন করে।

PowerShell দিয়ে উইন্ডোজ প্রসেস পরিচালনা করা

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

  • হ্যান্ডেল – এই প্রক্রিয়ার মাধ্যমে খোলা ইনপুট-আউটপুট ফাইল বর্ণনাকারীর সংখ্যা (হ্যান্ডলগুলি);
  • NPM(K) - একটি নন-পেজড মেমরি (নন-পেজড পুল)। এটি প্রক্রিয়া ডেটার আকার (কেবিতে) যা ডিস্কে কখনও পেজ করা হয় না;
  • PM(K) – প্রসেস মেমরির আকার যা পেজ করা হতে পারে;
  • WS(K) – প্রক্রিয়া দ্বারা ব্যবহৃত শারীরিক মেমরির আকার (কেবিতে) (ওয়ার্কিং সেট);
  • CPU(গুলি) – প্রক্রিয়া দ্বারা ব্যবহৃত একটি CPU সময় (সমস্ত CPU-তে সময় গণনা করা হয়);
  • আইডি – অনন্য প্রক্রিয়া শনাক্তকারী;
  • SI (সেশন আইডি) - হল প্রসেস সেশন আইডি (0 মানে সমস্ত সেশনের জন্য চলছে, 1- প্রথম লগ-অন ব্যবহারকারীর জন্য চলছে, 2 - দ্বিতীয় লগ-অন ব্যবহারকারীর জন্য চলছে, ইত্যাদি);
  • প্রক্রিয়ার নাম

একাধিক প্রক্রিয়ার সমস্ত বৈশিষ্ট্য তালিকাভুক্ত করতে:

Get-Process cmd,excel,notep* | Format-List *

আপনি শুধুমাত্র নির্দিষ্ট প্রক্রিয়া বৈশিষ্ট্য প্রদর্শন করতে পারেন, উদাহরণস্বরূপ, একটি নাম (ProcessName ), একটি শুরুর সময় (StartTime ), একটি প্রক্রিয়া উইন্ডো শিরোনাম (MainWindowTitle ), একটি এক্সিকিউটেবল ফাইলের নাম (Path ) এবং একটি বিকাশকারীর নাম (Company ):

Get-Process winword, notep* | Select-Object ProcessName, StartTime, MainWindowTitle, Path, Company|ft

PowerShell দিয়ে উইন্ডোজ প্রসেস পরিচালনা করা

GUI এর সাথে চলমান ব্যবহারকারীর প্রক্রিয়াগুলির একটি তালিকা প্রদর্শন করতে (পটভূমি এবং সিস্টেম প্রক্রিয়াগুলি প্রদর্শিত হবে না):

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle

PowerShell দিয়ে উইন্ডোজ প্রসেস পরিচালনা করা

IncludeUserName ব্যবহার করে বিকল্প, আপনি একটি ব্যবহারকারীর নাম (মালিক) প্রদর্শন করতে পারেন যিনি প্রক্রিয়া শুরু করেছেন:

Get-Process -Name winword -IncludeUserName

Where-Object ব্যবহার করে , আপনি কিছু মানদণ্ড অনুযায়ী প্রক্রিয়া নির্বাচন করতে পারেন। উদাহরণ স্বরূপ, আসুন 300 MB এর বেশি RAM ব্যবহার করে সমস্ত প্রক্রিয়া প্রদর্শন করি, মেমরি ব্যবহার অনুসারে সেগুলিকে অবরোহী ক্রমে সাজান এবং মেমরির আকার KB-এর পরিবর্তে MB-তে দেখান:

Get-Process| where-object {$_.WorkingSet -GT 300000*1024}|select processname,@{l="Used RAM(MB)"; e={$_.workingset / 1mb}} |sort "Used RAM(MB)" –Descending

PowerShell দিয়ে উইন্ডোজ প্রসেস পরিচালনা করা

যেমনটি আমরা আগেই বলেছি, CPU প্যারামিটারের Get-Process cmdlet-এ নির্দিষ্ট প্রক্রিয়ার সেকেন্ডে ব্যবহৃত প্রসেসরের সময় থাকে। প্রসেস দ্বারা ব্যবহৃত CPU-এর শতাংশ প্রদর্শন করতে (টাস্ক ম্যানেজারের অনুরূপ), এই ফাংশনটি ব্যবহার করুন:

function Get-CPUUsagePercent
{
$CPUPercent = @{
Name = 'CPUPercent'
Expression = {
$TotalSec = (New-TimeSpan -Start $_.StartTime).TotalSeconds
[Math]::Round( ($_.CPU * 100 / $TotalSec), 2)
}
}
Get-Process | Select-Object -Property Name, $CPUPercent, Description | Sort-Object -Property CPUPercent -Descending | Select-Object -First 20
}
Get-CPUUsagePercent

PowerShell দিয়ে উইন্ডোজ প্রসেস পরিচালনা করা

হ্যাং প্রসেসগুলি খুঁজে পেতে (যা সাড়া দিচ্ছে না), নিম্নলিখিত কমান্ডটি চালান:

Get-Process | where-object {$_.Responding -eq $false}

স্টার্ট-প্রসেস, স্টপ-প্রসেস:পাওয়ারশেল দিয়ে প্রক্রিয়াগুলি কীভাবে শুরু বা বন্ধ করবেন

PowerShell ব্যবহার করে একটি নতুন প্রক্রিয়া শুরু করতে, এই কমান্ডটি ব্যবহার করা হয়:

Start-Process -FilePath notepad

যদি $env:path এ কোনো এক্সিকিউটেবল ফাইল না থাকে এনভায়রনমেন্ট ভেরিয়েবল, ফাইলটির সম্পূর্ণ পাথ নির্দিষ্ট করুন:

Start-Process -FilePath 'C:\distr\app.exe'

আপনি একটি প্রোগ্রাম চালাতে পারেন এবং এতে আর্গুমেন্ট পাঠাতে পারেন:

Start-Process -FilePath ping -ArgumentList "-n 10 10.1.56.21"

WindowStyle ব্যবহার করে বিকল্প, আপনি প্রক্রিয়া উইন্ডো স্টার্ট মোড সেট করতে পারেন (সাধারণ, ছোট, সর্বাধিক, লুকানো)। উদাহরণস্বরূপ, একটি সর্বাধিক উইন্ডোতে একটি প্রোগ্রাম চালানোর জন্য এবং প্রক্রিয়াটি শেষ না হওয়া পর্যন্ত অপেক্ষা করতে, এই কমান্ডটি চালান:

Start-Process -FilePath tracert -ArgumentList "10.1.56.21" –wait -windowstyle Maximized

Stop-Process cmdlet ব্যবহার করে, আপনি যেকোনো প্রক্রিয়া বন্ধ করতে পারেন। উদাহরণস্বরূপ, সমস্ত চলমান নোটপ্যাড প্রক্রিয়া বন্ধ করতে:

Stop-Process -Name notepad

ডিফল্টরূপে, আপনাকে একটি প্রক্রিয়া হত্যা নিশ্চিত করার জন্য অনুরোধ করা হয় না। নির্দিষ্ট মানদণ্ড পূরণ করে এমন সমস্ত প্রক্রিয়া বন্ধ করা হবে। বন্ধ করার প্রক্রিয়া নিশ্চিত করতে সক্ষম হতে, –নিশ্চিত করুন যোগ করুন বিকল্প:

Stop-Process -Name notepad.exe -Confirm

PowerShell দিয়ে উইন্ডোজ প্রসেস পরিচালনা করা

এছাড়াও, আপনি নিম্নরূপ একটি প্রক্রিয়া হত্যা করতে পারেন:

(Get-Process -Name cmd).Kill()

PowerShell থেকে, আপনি এমন সব অ্যাপ বন্ধ করতে পারেন যেগুলি Windows প্রসেস ম্যানেজারে সাড়া দিচ্ছে না:

Get-Process | where-object {$_.Responding -eq $false}| Stop-Process

PowerShell ব্যবহার করে, আপনি স্বয়ংক্রিয়ভাবে একটি স্তব্ধ বা বন্ধ প্রক্রিয়া পুনরায় চালু করতে পারেন।

PowerShell ব্যবহার করে একটি দূরবর্তী কম্পিউটারে প্রক্রিয়া পরিচালনা করুন

আপনি ComputerName ব্যবহার করতে পারেন দূরবর্তী কম্পিউটারে প্রক্রিয়াগুলি পরিচালনা করার জন্য Get-Process cmdlet এর বিকল্প (WinRM সক্ষম এবং কনফিগার করা আবশ্যক)।

Get-Process -ComputerName srv01, srv02, srv03| Format-Table -Property ProcessName, ID, MachineName

আমরা দূরবর্তী কম্পিউটারে প্রক্রিয়াগুলি পরিচালনা করার জন্য অন্তর্নির্মিত গেট-প্রসেস বৈশিষ্ট্যগুলির সাথে মোকাবিলা করি। পাওয়ারশেল রিমোটিং বৈশিষ্ট্য Invoke-Command-এ উপলব্ধ এবং Enter-PSSession cmdlets এখানে কভার করা হয় না।

আপনি যদি একটি দূরবর্তী কম্পিউটারে একটি প্রক্রিয়া হত্যা করতে চান, মনে রাখবেন যে Stop-Process cmdlet-এ –ComputerName প্যারামিটার নেই৷ একটি দূরবর্তী কম্পিউটারে একটি প্রক্রিয়া বন্ধ করতে, আপনি নিম্নলিখিত PowerShell কোড ব্যবহার করতে পারেন:

$RemoteProcess = Get-Process -Name cmd -ComputerName srv01
Stop-Process -InputObject $RemoteProcess


  1. উইন্ডোজ টাস্ক ম্যানেজারের 5টি শক্তিশালী বিকল্প

  2. Windows PowerShell স্ক্রিপ্টের মাধ্যমে আপনার উৎপাদনশীলতা বৃদ্ধি করুন

  3. উইন্ডোজ 11/10-এ প্রশাসক অধিকার সহ একটি প্রক্রিয়া চলছে কিনা তা কীভাবে পরীক্ষা করবেন

  4. কিভাবে Windows 10 এ PowerShell দিয়ে ইনস্টল করা প্রোগ্রামগুলির একটি তালিকা তৈরি করবেন