একটি স্থানীয় বা দূরবর্তী কম্পিউটারে প্রক্রিয়া পরিচালনা করার জন্য PowerShell-এর অনেক বৈশিষ্ট্য রয়েছে। PowerShell ব্যবহার করে, আপনি চলমান প্রক্রিয়াগুলির একটি তালিকা পেতে পারেন, একটি হ্যাং-আপ প্রক্রিয়া স্থগিত করতে পারেন, একটি উইন্ডোজ শিরোনাম দ্বারা একটি প্রক্রিয়া খুঁজে পেতে পারেন, একটি লুকানো বা ইন্টারেক্টিভ মোডে একটি নতুন প্রক্রিয়া চালাতে পারেন, ইত্যাদি৷
আপনি Windows 10-এ উপলব্ধ প্রসেস ম্যানেজমেন্ট cmdlet এর তালিকা নিম্নরূপ প্রদর্শন করতে পারেন:
Get-Command –Noun Process
- গেট-প্রক্রিয়া - চলমান উইন্ডোজ প্রক্রিয়াগুলির একটি তালিকা পান;
- শুরু-প্রক্রিয়া - একটি প্রক্রিয়া/প্রোগ্রাম শুরু করুন;
- স্টপ-প্রসেস – জোরপূর্বক প্রক্রিয়াটি বন্ধ করুন (হত্যা করুন);
- ডিবাগ-প্রক্রিয়া - একটি প্রক্রিয়া ডিবাগ করুন;
- অপেক্ষা-প্রক্রিয়া - প্রক্রিয়া শেষ না হওয়া পর্যন্ত অপেক্ষা করুন।
গেট-প্রক্রিয়া:চলমান প্রক্রিয়াগুলির একটি তালিকা পাওয়া
Get-Process cmdlet একটি স্থানীয় কম্পিউটারে চলমান প্রক্রিয়াগুলির একটি তালিকা প্রদর্শন করে।
ডিফল্টরূপে, চলমান প্রক্রিয়াগুলির এই বৈশিষ্ট্যগুলি প্রদর্শিত হয়:
- হ্যান্ডেল – এই প্রক্রিয়ার মাধ্যমে খোলা ইনপুট-আউটপুট ফাইল বর্ণনাকারীর সংখ্যা (হ্যান্ডলগুলি);
- 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
GUI এর সাথে চলমান ব্যবহারকারীর প্রক্রিয়াগুলির একটি তালিকা প্রদর্শন করতে (পটভূমি এবং সিস্টেম প্রক্রিয়াগুলি প্রদর্শিত হবে না):
Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle
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
যেমনটি আমরা আগেই বলেছি, 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
হ্যাং প্রসেসগুলি খুঁজে পেতে (যা সাড়া দিচ্ছে না), নিম্নলিখিত কমান্ডটি চালান:
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
এছাড়াও, আপনি নিম্নরূপ একটি প্রক্রিয়া হত্যা করতে পারেন:
(Get-Process -Name cmd).Kill()
PowerShell থেকে, আপনি এমন সব অ্যাপ বন্ধ করতে পারেন যেগুলি Windows প্রসেস ম্যানেজারে সাড়া দিচ্ছে না:
Get-Process | where-object {$_.Responding -eq $false}| Stop-Process
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