реплицировать Диспетчер задач в вывод PowerShell

Вопрос или проблема

Я новичок в Windows PowerShell. Я хочу непрерывно реплицировать информацию о процессах в графическом интерфейсе диспетчера задач в Excel каждые 5 минут. Это возможно?

Вы, вероятно, ищете командлет Get-Process и Планировщик заданий.

Попробуйте следующее:

Get-Process | Select Handles,NPM,PM,WS,CPU,Id,SI,ProcessName,@{Name="Timestamp"; Expression = ({(Get-Date)})} | Export-Csv -Path C:\Junk\Processes.csv -Append

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

Кроме того, вы можете использовать цикл PowerShell и оставить скрипт работающим в окне на столько времени, сколько вам нужно:

do {
    Get-Process | Select Handles,NPM,PM,WS,CPU,Id,SI,ProcessName,@{Name="Timestamp"; Expression = ({(Get-Date)})} | Export-Csv -Path C:\Junk\Processes.csv -Append
    start-sleep -Seconds 300
} while ($true -eq $true)

(в этом случае – 300 секунд это 5 минут!)

Ответ или решение

Как реплицировать информацию Task Manager в PowerShell и экспортировать в Excel каждые 5 минут

Если вы хотите получить аналогичный вывод менеджера задач в Windows, используя PowerShell, и экспортировать эту информацию в файл Excel (CSV) каждые 5 минут, это вполне возможно. В следующем ответе мы рассмотрим два подхода: использование планировщика задач и запуск бесконечного цикла в PowerShell.

Подход 1: Использование планировщика задач

  1. Создайте PowerShell-скрипт
    Сначала создайте PowerShell-скрипт, который будет извлекать информацию о процессах. В тексте ниже представлен образец, который выбирает важные сведения о процессах, включая их идентификаторы, использование памяти и процессорного времени, и добавляет временную метку.

    Get-Process | 
    Select Handles, NPM, PM, WS, CPU, Id, SI, ProcessName, @{Name="Timestamp"; Expression = {(Get-Date)}} | 
    Export-Csv -Path C:\Junk\Processes.csv -Append -NoTypeInformation

    Сохраните этот код в файл с расширением .ps1, например, GetProcesses.ps1.

  2. Настройка планировщика задач
    Теперь откройте планировщик задач Windows:

    • Нажмите Win + R, введите taskschd.msc и нажмите Enter.
    • Нажмите на Создать задачу в правой части окна.
    • Вкладка Общие: введите имя задачи, например, "Экспорт процессов PowerShell".
    • Вкладка Триггеры: добавьте новый триггер, который сработает каждые 5 минут.
    • Вкладка Действия: добавьте действие, выбрав "Запустить программу", и укажите powershell.exe в поле программы, а в "Добавить аргументы" укажите -File "C:\путь\к\файлу\GetProcesses.ps1".

Таким образом, ваш скрипт будет запускаться каждые 5 минут и экспортировать текущее состояние процессов в указанный файл CSV.

Подход 2: Бесконечный цикл в PowerShell

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

do {
    Get-Process | 
    Select Handles, NPM, PM, WS, CPU, Id, SI, ProcessName, @{Name="Timestamp"; Expression = {(Get-Date)}} | 
    Export-Csv -Path C:\Junk\Processes.csv -Append -NoTypeInformation
    Start-Sleep -Seconds 300  # Пауза в 300 секунд (5 минут)
} while ($true)

Просто скопируйте и вставьте этот код в окно PowerShell. С помощью этого подхода скрипт будет работать непрерывно, экспортируя данные каждые 5 минут, пока вы не остановите его вручную.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...