Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

PowerShell के साथ Windows प्रोसेस मैनेज करें

PowerShell में स्थानीय या रिमोट कंप्यूटर पर प्रोसेस मैनेज करने के लिए बहुत सारी विशेषताएं हैं। PowerShell का उपयोग करके, आप चल रहे प्रोसेस की सूची प्राप्त कर सकते हैं, हैंग हुए प्रोसेस को सस्पेंड कर सकते हैं, विंडो टाइटल द्वारा प्रोसेस ढूंढ सकते हैं, नए प्रोसेस को हिडन या इंटरैक्टिव मोड में चला सकते हैं, आदि।

आप Windows 10 में उपलब्ध प्रोसेस मैनेजमेंट कमांडलेट की सूची इस प्रकार प्रदर्शित कर सकते हैं:

Get-Command –Noun Process
  • Get-Process — चल रहे Windows प्रोसेस की सूची प्राप्त करें;
  • Start-Process — प्रोसेस/प्रोग्राम शुरू करें;
  • Stop-Process — प्रोसेस को जबरन रोकें (kill);
  • Debug-Process — प्रोसेस डीबग करें;
  • Wait-Process — प्रोसेस समाप्त होने तक प्रतीक्षा करें।

Get-Process: चल रहे प्रोसेस की सूची प्राप्त करना

Get-Process कमांडलेट स्थानीय कंप्यूटर पर चल रहे प्रोसेस की सूची प्रदर्शित करता है।

डिफ़ॉल्ट रूप से, चल रहे प्रोसेस की ये प्रॉपर्टी प्रदर्शित होती हैं:

  • Handles — इस प्रोसेस द्वारा खोले गए इनपुट-आउटपुट फाइल डिस्क्रिप्टर्स (हैंडल) की संख्या;
  • NPM(K) — नॉन-पेज्ड मेमोरी (नॉन-पेज्ड पूल)। यह प्रोसेस डेटा का साइज है (KB में) जिसे कभी डिस्क पर पेज नहीं किया जाता;
  • PM(K) — प्रोसेस मेमोरी का साइज जिसे पेज किया जा सकता है;
  • WS(K) — प्रोसेस द्वारा उपयोग की जाने वाली फिजिकल मेमोरी का साइज (KB में) (Working Set);
  • CPU(s) — प्रोसेस द्वारा उपयोग किया गया CPU समय (सभी CPU पर समय गिना जाता है);
  • ID — यूनिक प्रोसेस पहचानकर्ता;
  • SI (Session ID) — प्रोसेस सेशन ID है (0 का मतलब सभी सेशन के लिए चल रहा, 1 — पहले लॉग ऑन यूजर के लिए चल रहा, 2 — दूसरे लॉग ऑन यूजर के लिए चल रहा, आदि);
  • ProcessName

एकाधिक प्रोसेस की सभी प्रॉपर्टी सूचीबद्ध करने के लिए:

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

जैसा कि हमने पहले बताया, Get-Process कमांडलेट में CPU पैरामीटर में विशिष्ट प्रोसेस द्वारा उपयोग किया गया प्रोसेसर समय सेकंड में होता है। प्रोसेस द्वारा उपयोग किए गए CPU के प्रतिशत को प्रदर्शित करने के लिए (Task Manager के समान), इस फंक्शन का उपयोग करें:

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}

Start-Process, Stop-Process: PowerShell से प्रोसेस कैसे शुरू या रोकें

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 कमांडलेट का उपयोग करके, आप किसी भी प्रोसेस को रोक सकते हैं। उदाहरण के लिए, चल रहे सभी notepad प्रोसेस को बंद करने के लिए:

Stop-Process -Name notepad

डिफ़ॉल्ट रूप से, आपको प्रोसेस किल करने की पुष्टि करने के लिए नहीं कहा जाता। निर्दिष्ट मानदंडों को पूरा करने वाले सभी प्रोसेस रोक दिए जाएंगे। प्रोसेस रोकने की पुष्टि करने में सक्षम होने के लिए, –Confirm ऑप्शन जोड़ें:

Stop-Process -Name notepad.exe -Confirm

आप प्रोसेस को इस तरह भी किल कर सकते हैं:

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

PowerShell से, आप उन सभी ऐप्स को जबरन रोक सकते हैं जो Windows Process Manager को रिस्पॉन्ड नहीं कर रहे:

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

PowerShell का उपयोग करके, आप हैंग या बंद प्रोसेस को ऑटोमैटिकली रीस्टार्ट कर सकते हैं।

PowerShell का उपयोग करके रिमोट कंप्यूटर पर प्रोसेस मैनेज करें

Get-Process कमांडलेट के ComputerName ऑप्शन का उपयोग करके आप रिमोट कंप्यूटर पर प्रोसेस मैनेज कर सकते हैं (WinRM इनेबल और कॉन्फिगर्ड होना चाहिए)।

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

हम रिमोट कंप्यूटर पर प्रोसेस मैनेज करने के लिए Get-Process की बिल्ट-इन सुविधाओं से निपटते हैं। Invoke-Command और Enter-PSSession कमांडलेट में उपलब्ध PowerShell Remoting फीचर यहां कवर नहीं किए गए हैं।

यदि आप रिमोट कंप्यूटर पर प्रोसेस किल करना चाहते हैं, तो ध्यान दें कि Stop-Process कमांडलेट में –ComputerName पैरामीटर नहीं है। रिमोट कंप्यूटर पर प्रोसेस रोकने के लिए, आप निम्न PowerShell कोड का उपयोग कर सकते हैं:

$RemoteProcess = Get-Process -Name cmd -ComputerName srv01
Stop-Process -InputObject $RemoteProcess
  1. विंडोज पावरशेल स्क्रिप्ट्स के साथ अपनी उत्पादकता बढ़ाएं विंडोज पावरशेल स्क्रिप्ट्स के साथ अपनी उत्पादकता बढ़ाएं

    क्या होगा अगर आप लिनक्स की उत्पादकता को विंडोज पर ला सकें? विंडोज और लिनक्स के बीच मुख्य अंतरों में से एक यह है कि अधिकांश लिनक्स डिस्ट्रोस शक्तिशाली बैश शेल के साथ पैकेज्ड आते हैं; तुलनात्मक रूप से, विंडोज में कमांड प्रॉम्प्ट बुनियादी है। क्या होगा अगर विंडोज के पास एक समान शक्तिशाली टर्मिनल हो? पा

  1. विंडोज 11/10 में कैसे जांचें कि कोई प्रोसेस एडमिन अधिकारों के साथ चल रहा है या नहीं विंडोज 11/10 में कैसे जांचें कि कोई प्रोसेस एडमिन अधिकारों के साथ चल रहा है या नहीं

    विभिन्न प्रोग्राम्स के लिए कई प्रोसेस होते हैं जो एडमिनिस्ट्रेटिव अधिकारों या उन्नत विशेषाधिकारों के साथ चलते हैं। जबकि कुछ प्रोसेस को प्रोग्राम को ठीक से चलाने के लिए उन्नत विशेषाधिकारों की आवश्यकता होती है, अन्य प्रोसेस को ऐसे विशेषाधिकारों की आवश्यकता नहीं होती है। यदि आप जांचना चाहते हैं कि कौन

  1. Windows 10 में PowerShell का उपयोग करके इंस्टॉल्ड प्रोग्राम्स की सूची कैसे बनाएं Windows 10 में PowerShell का उपयोग करके इंस्टॉल्ड प्रोग्राम्स की सूची कैसे बनाएं

    यदि आपके पास Windows 10 PC है, तो आपने समय के साथ कई प्रोग्राम इंस्टॉल किए होंगे लेकिन उन सभी को याद रखना थोड़ा मुश्किल है। Windows PowerShell एप्लिकेशन के माध्यम से, आप कंप्यूटर पर इंस्टॉल्ड प्रोग्राम्स की सूची उत्पन्न कर सकते हैं जो विभिन्न उद्देश्यों के लिए उपयोगी हो सकती है। उदाहरण के लिए, जब आप