Powershell диспетчер задач


Работа с процессами Powershell Start-Process и управление ими на примерах

Процессы - это один из основных компонентов Windows и чаще всего мы работаем с ними через Task Manager (диспетчер задач), но эта возможность становится весомее если мы используем команды по управлению процессами в Powershell. Основные команды по управлению запущенными задачами можно увидеть так:


 Get-Command -Noun Process

Мы получим следующий вывод:

  • Debug-Process - возможность мониторинга и отладки процессов. Для его работы нужно загрузить дополнительное ПО.
  • Get-Process - получение в Powershell списка процессов.
  • Start-Process - запуск процессов.
  • Stop-Process - убивает (завершает) процесс.
  • Wait-Process - ожидание окончания процесса.

Таких команд и вариантов их использования очень много. Например мы можем работать с процессами через WMI или использовать их в связке с мониторингом сетевых подключений через Get-NetTCPConnection.  

Получив список процессов в Powershell можно увидеть что значения отображаются в Кб:


 Get-Process

 Изменить это можно через выражения:


 # В чем отображать значения 1MB,1GB,1TB и т.д.
 $size = 1MB
 
 Get-Process | Format-Table `
 @{Label = "NPM(K)"; Expression = {[int]($_.NPM / $size)}},
 @{Label = "PM(K)"; Expression = {[int]($_.PM / $size)}},
 @{Label = "WS(K)"; Expression = {[int]($_.WS / $size)}},
 @{Label = "CPU(s)"; Expression = {if ($_.CPU) {$_.CPU.ToString("N")}}},
 Id, ProcessName -AutoSize

В скрипте выше будут выводиться 5 свойств, но их намного больше. Посмотреть возможные свойства можно так:


 Get-Process | Get-Member -MemberType Properties

Каждое это свойство можно вызвать так:


 Get-Process | SELECT Id
 # или
 Get-Process | FT id

Можно вызвать все свойства всех процессов или по одному выбранному:


 Get-Process | SELECT *
 # или
 Get-Process -Name 'notepad' | SELECT *

Кроме свойств есть еще методы . NET, которые выводятся без дополнительных ключей или с указанием: 


 Get-Process | Get-Member -MemberType Method

Методы полезны тем, что ими можно воспользоваться не прибегая к дополнительным командам. Для примера так мы можем остановить процесс notepad (блокнот) тремя разными способами:


 # Удаление процесса используя метод .NET
 $process = Get-Process -Name "notepad"
 $process.Kill()
 # Закрытие процесса используя командлет PS
 Stop-Process -Name "notepad"
 # Остановка процесса используя алиас PS kill
 kill -Name "Notepad"
 # Если мы хотим убить процесс по его идентификатору
 kill -ID 332

Методы .NET не всегда так очевидны, как командлеты поэтому к ним нужно прибегать с осторожностью.

При получении списка процессов есть параметр, который выводит путь откуда запущен процесс и версию файла:


 Get-Process -FileVersionInfo


В варианте выше у нас будет много не критичных ошибок:

  • Get-Process : Не удалось перечислить информацию о версиях файла для процесса "svchost".
  • Get-Process : Cannot enumerate the file version information of the "csrss" process.

Связано это с тем, что не все процессы в Powershell имеют версии и выполняется запрос несуществующего свойства. Этого можно избежать двумя путями, первый - это указать параметр, который будет игнорировать эти ошибки:


 Get-Process -FileVersionInfo -ErrorAction SilentlyContinue

Или запросить информацию о конкретном процессе:


 Get-Process -Name 'notepad' -FileVersionInfo

Ключ FileVersionInfo это три свойства: Product, FileVersion и Path каждый из которых можно вывести отдельно. Получим процессы в Powershell со свойством времени запуска и отсортируем их:


 Get-Process | select StartTime,Path,Name | sort StartTime

Если нужно выяснить когда и кто запустил процесс нужно добавить параметр IncludeUserName. В моем примере это два процесса:


 Get-Process -Name 'notepad','explorer' -IncludeUserName | ft starttime,ProcessName,UserName

Эти же команды можно выполнять удаленно. Во всех командах Powershell, где есть ключ ComputerName можно указать минимум один удаленный компьютер:


 Get-Process -ComputerName 'AD1','localhost'

Выполняя удаленную команду вы можете получить две ошибки. Первую, если у вас не настроена возможность удаленного управления в Powershell. И вторая, если вы укажете ключ -IncludeUserName, почему-то он не работает совместно с ComputerName:

  • Get-Process : Parameter set cannot be resolved using the specified named parameters.

 

Запуск процессов с Powershell Start-Process

На примере запуска блокнота команда выполняется так:


 Start-Process -FilePath 'notepad'

Если исполняемый файл находится в другом месте нужно указать путь:


 Start-Process -FilePath 'C:\Users\Administrator\Desktop\test. txt'

 Если в программа может принимать аргументы их так же можно добавить:


 Start-Process -FilePath tracert -ArgumentList "-d -4 fixmypc.ru"


По умолчанию окно процесса разворачивается. Если хотите запустить свернутым, то добавьте ключ WindowStyle:


 Start-Process -FilePath tracert -ArgumentList "-d -4 fixmypc.ru" -WindowStyle minimized

Ключ WindowStyle принимает 4 значения:

  • minimized - свернутый вариант.
  • hidden -  скрытый режим.
  • normal - обычный.
  • maximized - полностью развернутый.

Добавив ключ NoNewWindow, в случае с tracert, команда выполнится в текущем окне:


 Start-Process -FilePath tracert -ArgumentList "-d -4 fixmypc.ru" -WindowStyle minimized

Если мы запускаем процесс, который подразумевает вывод, но не хотим открывать окно программы, то нам понадобится перенаправить вывод команд. Для этого есть два ключа:

  • RedirectStandardOutput - перенаправляет вывод
  • RedirectStandardError  - перенаправляет ошибки
  • RedirectStandardInput - перенаправляет ввод

Воспользоваться этими ключами можно так:


 Start-Process tracert -ArgumentList "-d -4 fixmypc.ru" -RedirectStandardOutput c:\success.txt -RedirectStandardError c:\error.txt -WindowStyle minimized

 Если нужно открыть файл в определенной программе, то это делается так:


 Start-Process -FilePath "C:\Windows\notepad.exe" "C:\Users\Administrator\Desktop\test.txt"

Отмечу, что ни одна команда PS не позволяет запускать процессы в интерактивном сеансе пользователя (например открыть пользователю Excel). Если вы хотите использовать такой метод, то вам нужно использовать psexec от SysInternals либо помещать задачи в планировщик и выполнять оттуда.

 

Пример по работе с процессами в Powershell

Директории, откуда работает основная часть программ относятся к Windows и Program Files. Работа программ из Application Data, например, всегда подозрительна. Мы можем мониторить запуск процессов из этой директории. Нам нужно объявить переменные с путями, которые не будут вызывать подозрений и проверять путь процессов на вхождение:


 # Директория для проверки
 $path = '*C:\Users*'
 # Список компьютеров
 $computers = 'AD1','localhost'
 # Получение и фильтрация процессов 
 $process = $computers |% {Get-Process -ComputerName $_ | where {$_.Path -like $path}
 # Вывод результатов
 $process
 # Завершение процессов (закоментирован от случайного убийства нужных задач)
 #$process | kill

Второй пример выполнения - это запуск всех файлов из папки. Обычно скрипты применяются через групповые политики в момент входа пользователя. Если таких скриптов 10, то мы можем поместить их в определенную папку и запускать из планировщика задач указывая только директорию и расширение запускаемого файла и перенаправлять ошибки в индивидуальный файл:


 # Директория для поиска файлов
 $path = 'C:\dd\*'
 # Поиск файлов и включение нужных и исключение ненужных
 $items = Get-ChildItem -Path $path -Include '*exe*' -Exclude '*txt*'
 # Сетевой путь, куда будут сохраняться ошибки
 $error_path = '\\localhost\SYSVOL\'
 $items |% {Start-Process -FilePath $_ -WindowStyle Maximized -RedirectStandardError ($error_path + {hostname} + 'error. txt')}

Обратите внимание, что все файлы с ошибками будут сохраняться с именем компьютеров на котором запущен скрипт. В каждом из скриптов я так же ставил знак *, это связано не с точным вхождением. Например в первом случае после пути C:\Users* мы ожидаем еще символы и установив звездочку мы это указали. В случае Get-ChildItem ситуация похожая, но более подробно мы обсуждали в статье поиск файлов в Powershell.

Мы можем использовать поиск процессов не относящихся к производителям ПО, которые мы устанавливали на ПК пользователей. Для этого есть свойство Company. Не все объекты имеют имя компании, они связаны с задачами операционной системы:


 $company = 'microsoft'
 Get-Process | where {$_.company -notmatch $company} | Sort Company | Select ID,Name,WS,VM,Company | format-table -AutoSize

По умолчанию мы получаем данные по CPU в секундах, но следующий скрипт вернет процент использования:


 function Get-CPUPercent
 {
 $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 10
 }
 Get-CPUPercent

 Далее эту функцию можно запускать на удаленных компьютерах:


 $computers = 'AD1','localhost'
 Invoke-Command -ComputerName $computers -ScriptBlock ${function:Get-CPUPercent} | ft

...

Рекомендую

Подписывайтесь на наш Telegram канал

Теги: #powershell

Как открыть Диспетчер устройств в Windows 10

В данной статье рассмотрены несколько способов, с помощью которых можно открыть диспетчер устройств в операционной системе Windows 10.

Диспетчер устройств - утилита консоли управления Майкрософт которая предоставляет пользователям организованное централизованное представление оборудования, распознанного Windows, подключенного к компьютеру. Это включает в себя устройства, такие как клавиатуры, жесткие диски, USB-устройства, видео адаптеры и т. д.

Диспетчер устройств сортирует все аппаратные средства, перечисляя их на основе различных критериев, и когда устройство неисправно или перестает работать в целом, он немедленно уведомляет пользователя. Таким образом, с его помощью можно управлять устройствами, включать и отключать их, настраивать, управлять драйверами, просматривать дополнительную техническую информацию, выявлять конфликты между устройствами и многое другое.

Далее в статье показаны различные способы доступа к диспетчеру устройств.

Содержание

  1. Как открыть Диспетчер устройств используя окно «Выполнить»
  2. Как открыть Диспетчер устройств используя «Поиск в Windows»
  3. Как открыть Диспетчер устройств используя меню «Win+X»
  4. Как открыть Диспетчер устройств в окне «Cистема» панели управления
  5. Как открыть Диспетчер устройств используя утилиту «Управление компьютером»
  6. Как открыть Диспетчер устройств в системном каталоге «System32»
  7. Как открыть Диспетчер устройств в командной строке и в Powershell

Как открыть Диспетчер устройств используя окно «Выполнить»

Данный способ применим ко всем версиям операционной системы Windows.

Чтобы открыть диспетчер устройств, нажмите сочетание клавиш

+ R и в окне Выполнить введите devmgmt.msc и нажмите клавишу Enter ↵.

Как открыть Диспетчер устройств используя «Поиск в Windows»

Чтобы открыть диспетчер устройств, также используйте «Поиск в Windows», для этого нажмите на значок поиска

в панели задач или нажмите сочетание клавиш + S, в строке поиска начните вводить диспетчер устройств и в результатах поиска выберите Диспетчер устройств.

Как открыть Диспетчер устройств используя меню «Win+X»

Откройте меню «Win+X», для этого нажмите сочетание клавиш

+ X или щелкните правой кнопкой мыши по кнопке "Пуск" в панели задач и в появившемся контекстном меню выберите Диспетчер устройств.

Как открыть Диспетчер устройств в окне «Cистема» панели управления

Откройте окно «Cистема» классической панели управления, для этого нажмите на клавиатуре сочетание клавиш

+ Pause/Break, в открывшемся окне «Cистема» нажмите на ссылку Диспетчер устройств.

Как открыть Диспетчер устройств используя утилиту «Управление компьютером»

Диспетчер устройств также присутствует в системе и как элемент утилиты «Управление компьютером».

Чтобы запустить утилиту «Управление компьютером», нажмите правой кнопкой мыши по кнопке «Пуск»

в панели задач или нажмите сочетание клавиш + X и в открывшемся меню выберите пункт Управление компьютером.

Затем в открывшемся окне Управление компьютером, в левой панели, в разделе Служебные программы выберите Диспетчер устройств.

Диспетчер устройств откроется в этом же окне.

Как открыть Диспетчер устройств в системном каталоге «System32»

Откройте Проводник Windows и перейдите по следующему пути:

C:\\Windows\\System32

Для запуска диспетчер устройств дважды кликните по файлу devmgmt.msc

Как открыть Диспетчер устройств в командной строке и в Powershell

Также открыть диспетчер устройств можно в командной строке или в консоли Windows PowerShell, для этого запустите командную строку или консоль PowerShell и выполните команду devmgmt. msc

Теперь, используя любой из представленных выше способов, можно открыть диспетчер устройств в операционной системе Windows 10.

12 способов открыть диспетчер задач в Windows 10

Автор Махеш Маквана

Знаете ли вы, что существует дюжина способов открыть диспетчер задач в Windows?

Windows 10 предоставляет вам несколько способов запуска утилиты диспетчера задач на вашем ПК. Вы можете использовать сочетание клавиш, значок меню "Пуск", поиск Windows или даже панель задач Windows, чтобы открыть эту утилиту на своем компьютере.

В этом руководстве мы покажем вам многие из этих способов открыть диспетчер задач в Windows 10.

1. Используйте сочетание клавиш

Самый простой и быстрый способ запустить диспетчер задач — использовать сочетание клавиш этого инструмента. При нажатии этот ярлык быстро открывает утилиту диспетчера задач на вашем ПК с Windows 10.

Чтобы использовать этот метод, одновременно нажмите клавиши Ctrl + Shift + Esc на клавиатуре. Сразу же откроется экран диспетчера задач.

Связано: Сочетания клавиш Windows 101: Полное руководство

Меню «Пуск» Windows 10 состоит почти из всех приложений, которые есть на вашем компьютере, включая Диспетчер задач. Вы можете перейти в каталог диспетчера задач в меню «Пуск», а затем запустить инструмент оттуда.

Для этого:

  1. Нажмите клавишу Windows , чтобы вызвать меню «Пуск».
  2. В меню «Пуск» выберите Система Windows .
  3. В параметрах системы Windows выберите Диспетчер задач .

3. Из поиска Windows

Функция поиска Windows помогает найти все приложения, файлы и папки, хранящиеся на ваших жестких дисках. Вы также можете использовать эту функцию поиска, чтобы найти и открыть диспетчер задач.

  1. Щелкните поле поиска в нижнем левом углу ПК с Windows.
  2. Введите Диспетчер задач в поле поиска.
  3. В появившихся результатах поиска выберите Диспетчер задач , чтобы открыть инструмент.

4. Из Проводника

Если вы находитесь в окне проводника, вам не нужно выходить из него, чтобы открыть диспетчер задач. Используя команду в адресной строке, вы можете запустить диспетчер задач из Проводника.

Вот быстрый способ сделать это:

  1. Находясь в окне проводника, щелкните адресную строку вверху.
  2. Введите taskmgr в поле адресной строки и нажмите Введите .
  3. Диспетчер задач должен открыться.

Другой способ открыть Диспетчер задач из проводника — перейти в фактический каталог инструмента:

  1. В проводнике перейдите по следующему пути. Если вы не установили Windows 10 на диск C, замените C с буквой диска, на котором установлена ​​Windows на вашем ПК.
     C:\Windows\System32 
  2. Найдите Taskmgr.exe в открывшемся каталоге и дважды щелкните его.
  3. Диспетчер задач откроется.

5. На экране безопасности Windows

Экран безопасности Windows предлагает различные варианты, такие как блокировка компьютера и выход из учетной записи пользователя. Это меню безопасности также включает в себя возможность запуска диспетчера задач.

Чтобы использовать этот метод:

  1. Нажмите Ctrl + Alt + Delete на клавиатуре.
  2. На открывшемся экране выберите Диспетчер задач .

Меню питания Windows обеспечивает быстрый доступ к некоторым полезным утилитам, установленным на вашем ПК с Windows 10. Это также включает в себя опцию для диспетчера задач.

Чтобы продолжить этот метод:

  1. Откройте меню опытного пользователя. Для этого либо нажмите клавишу Windows + X одновременно или щелкните правой кнопкой мыши значок меню Пуск .
  2. В открывшемся меню выберите Диспетчер задач .

7. Из панели задач

Если вы оставляете панель задач видимой на своем ПК (вы можете скрыть панель задач), это быстрый способ запустить диспетчер задач. Вам просто нужно щелкнуть правой кнопкой мыши на панели задач и выбрать вариант:

  1. Щелкните правой кнопкой мыши панель задач Windows (панель в нижней части экрана).
  2. Выберите Диспетчер задач в открывшемся меню.

8. Используйте командную строку

Если вы предпочитаете использовать методы командной строки, вы можете использовать командную строку для запуска диспетчера задач на своем ПК. Есть команда, которая специально запускает исполняемый файл диспетчера задач.

Чтобы использовать это:

  1. Откройте меню «Пуск», найдите Командная строка и выберите «Наилучшее совпадение».
  2. В открывшемся окне командной строки введите taskmgr и нажмите Введите .
  3. Диспетчер задач должен открыться.
  4. Теперь вы можете закрыть окно командной строки.

9. Используйте Windows PowerShell

Если вы предпочитаете использовать Windows PowerShell, есть команда, которую вы можете запустить из этой утилиты, чтобы открыть Диспетчер задач на вашем ПК.

Вот как:

  1. Откройте меню «Пуск», найдите Windows PowerShell и выберите «Наилучшее совпадение».
  2. Введите taskmgr в окне PowerShell и нажмите Enter .
  3. Диспетчер задач откроется.
  4. Закройте окно PowerShell, так как оно вам больше не нужно.

10. Из блока запуска

Диалоговое окно «Выполнить Windows» позволяет запускать различные приложения и инструменты, установленные на вашем ПК. Вы также можете использовать это поле, чтобы открыть диспетчер задач, и мы покажем вам, как это сделать:

  1. Нажмите одновременно клавишу Windows + R , чтобы открыть «Выполнить».
  2. В поле введите taskmgr и нажмите Введите .
  3. Диспетчер задач должен открыться.

11. Из панели управления

Если вы изменяете настройки в Панели управления, вам не нужно выходить из нее, чтобы запустить Диспетчер задач. Есть возможность открыть эту утилиту из панели управления.

  1. Запустите панель управления, если она еще не открыта на вашем ПК.
  2. В панели управления щелкните поле поиска в правом верхнем углу.
  3. Введите Диспетчер задач в поле и нажмите Введите .
  4. В результатах поиска выберите Диспетчер задач под Система .

12. Создание ярлыка на рабочем столе

Как и другие приложения, вы можете создать ярлык для диспетчера задач на рабочем столе. Таким образом, вы можете быстро получить доступ к утилите прямо с главного экрана вашего ПК.

Чтобы создать этот ярлык:

  1. Доступ к рабочему столу вашего ПК.
  2. Щелкните правой кнопкой мыши в любом месте рабочего стола и выберите в меню Создать > Ярлык .
  3. В окне «Создать ярлык» введите в поле следующий путь. Затем нажмите Далее внизу. Если ваша установка Windows находится не на диске C, измените букву диска в приведенной ниже команде.
     C:\Windows\System32\Taskmgr.exe 
  4. Windows попросит вас выбрать имя для ярлыка. Здесь введите Диспетчер задач или любое другое имя по вашему выбору. Затем нажмите Закончите внизу.
  5. Теперь вы можете дважды щелкнуть недавно добавленный ярлык на рабочем столе, чтобы запустить диспетчер задач.

Практически любым способом запуска диспетчера задач в Windows 10

Как вы можете видеть выше, существует более дюжины способов запустить диспетчер задач в Windows 10. В следующий раз, когда вам понадобится эта утилита, вы можете открыть ее практически из любого места на вашем компьютере.

Несоответствие Powershell Get-Process и диспетчера задач

Задай вопрос

спросил

Изменено 1 год, 10 месяцев назад

Просмотрено 15 тысяч раз

Я создаю сценарий PowerShell, чтобы получить 10 основных процессов, потребляющих память, на основе значения рабочего набора (WS) Get-Process. Я запускаю следующую строку и получаю результаты, выглядит отлично, но когда я проверяю диспетчер задач, я не получаю те же значения. Даже порядок другой.

 Процесс получения | Сортировать WS - по убыванию | Выберите Имя, WS - Первые 10 

Получение этого:

Тогда в диспетчере задач есть это:

Есть ли какие-то другие вычисления, которые я должен сделать? Кто-нибудь может объяснить?

PS: ОС на португальском языке.


Learn more

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: