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

पावरशेल के साथ विंडोज प्रक्रियाओं का प्रबंधन

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

आप Windows 10 में उपलब्ध प्रक्रिया प्रबंधन cmdlets की सूची निम्नानुसार प्रदर्शित कर सकते हैं:

Get-Command –Noun Process

पावरशेल के साथ विंडोज प्रक्रियाओं का प्रबंधन

  • प्रक्रिया प्राप्त करें - चल रही विंडोज़ प्रक्रियाओं की सूची प्राप्त करें;
  • प्रारंभ-प्रक्रिया - एक प्रक्रिया/कार्यक्रम शुरू करें;
  • रोकें-प्रक्रिया - प्रक्रिया को जबरन रोकना (मारना);
  • डीबग-प्रक्रिया - एक प्रक्रिया डीबग करें;
  • प्रतीक्षा-प्रक्रिया - प्रक्रिया समाप्त होने तक प्रतीक्षा करें।

प्राप्त-प्रक्रिया:चल रही प्रक्रियाओं की सूची प्राप्त करना

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

पावरशेल के साथ विंडोज प्रक्रियाओं का प्रबंधन

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

  • हैंडल - इस प्रक्रिया द्वारा खोले गए इनपुट-आउटपुट फ़ाइल डिस्क्रिप्टर (हैंडल) की संख्या;
  • एनपीएम(के) - एक नॉन-पेजेड मेमोरी (नॉन-पेजेड पूल) है। यह प्रक्रिया डेटा का आकार है (केबी में) जिसे डिस्क पर कभी भी पृष्ठांकित नहीं किया जाता है;
  • प्रधानमंत्री(कश्मीर) – प्रक्रिया स्मृति का आकार जिसे पृष्ठांकित किया जा सकता है;
  • WS(K) - प्रक्रिया द्वारा उपयोग की जाने वाली भौतिक मेमोरी (केबी में) का आकार (वर्किंग सेट);
  • CPU(s) - प्रक्रिया द्वारा उपयोग किया जाने वाला सीपीयू समय (सभी सीपीयू पर समय गिना जाता है);
  • आईडी - अद्वितीय प्रक्रिया पहचानकर्ता;
  • एसआई (सत्र आईडी) - प्रक्रिया सत्र आईडी है (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

पावरशेल के साथ विंडोज प्रक्रियाओं का प्रबंधन

जीयूआई के साथ चल रही उपयोगकर्ता प्रक्रियाओं की सूची प्रदर्शित करने के लिए (पृष्ठभूमि और सिस्टम प्रक्रियाएं प्रदर्शित नहीं की जाएंगी):

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

पावरशेल के साथ विंडोज प्रक्रियाओं का प्रबंधन

उपयोगकर्ता नाम शामिल करें . का उपयोग करना विकल्प, आप एक उपयोगकर्ता नाम (स्वामी) प्रदर्शित कर सकते हैं जिसने प्रक्रिया शुरू कर दी है:

Get-Process -Name winword -IncludeUserName

Where-Object Using का उपयोग करना , आप कुछ मानदंडों के अनुसार प्रक्रियाओं का चयन कर सकते हैं। उदाहरण के लिए, आइए 300 एमबी से अधिक रैम का उपयोग करके सभी प्रक्रियाओं को प्रदर्शित करें, उन्हें स्मृति उपयोग के अनुसार अवरोही क्रम में क्रमबद्ध करें और केबी के बजाय एमबी में मेमोरी का आकार दिखाएं:

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}

प्रारंभ-प्रक्रिया, रोक-प्रक्रिया:पावरशेल के साथ प्रक्रियाओं को कैसे प्रारंभ या बंद करें

पावरशेल का उपयोग करके एक नई प्रक्रिया शुरू करने के लिए, इस कमांड का उपयोग किया जाता है:

Start-Process -FilePath notepad

अगर $env:path . में कोई एक्ज़ीक्यूटेबल फ़ाइल नहीं है पर्यावरण चर, फ़ाइल का पूरा पथ निर्दिष्ट करें:

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

आप एक प्रोग्राम चला सकते हैं और उसमें तर्क दे सकते हैं:

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

विंडो शैली . का उपयोग करना विकल्प, आप प्रक्रिया विंडो प्रारंभ मोड (सामान्य, न्यूनतम, अधिकतम, छिपा हुआ) सेट कर सकते हैं। उदाहरण के लिए, किसी प्रोग्राम को अधिकतम विंडो में चलाने के लिए और प्रक्रिया समाप्त होने तक प्रतीक्षा करने के लिए, यह कमांड चलाएँ:

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

स्टॉप-प्रोसेस 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

पावरशेल का उपयोग करके, आप स्वचालित रूप से एक त्रिशंकु या बंद प्रक्रिया को पुनरारंभ कर सकते हैं।

पावरशेल का उपयोग करके दूरस्थ कंप्यूटर पर प्रक्रियाओं को प्रबंधित करें

आप ComputerName . का उपयोग कर सकते हैं दूरस्थ कंप्यूटर पर प्रक्रियाओं को प्रबंधित करने के लिए Get-Process cmdlet का विकल्प (WinRM को सक्षम और कॉन्फ़िगर किया जाना चाहिए)।

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

हम दूरस्थ कंप्यूटर पर प्रक्रियाओं को प्रबंधित करने के लिए अंतर्निहित गेट-प्रोसेस सुविधाओं से निपटते हैं। Invoke-Command . में उपलब्ध पावरशेल रिमोटिंग सुविधाएं और Enter-PSSession cmdlets यहाँ शामिल नहीं हैं।

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

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


  1. Windows PowerShell Scripts के साथ अपनी उत्पादकता बढ़ाएँ

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

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

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

  1. विंडोज 10 पर पावरशेल के साथ इंस्टॉल किए गए प्रोग्रामों की सूची कैसे बनाएं

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