Windows 7 или Server 2008 Показать время выполнения процесса

Есть ли простой способ показать, как долго конкретный экземпляр PID был активен?

2 ответа

Использование командлета Powershell Get-Process:

Get-Process | Select-Object ID, время начала, имя | Sort-Object id

Gregg,

Я знаю, что Process Explorer покажет это, вроде.

Получите это здесь: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Если вы запустите его, щелкните правой кнопкой мыши по процессу и выберите Properties он покажет вам время начала процесса (и вы можете нажать на Threads вкладка, чтобы увидеть время начала отдельных потоков).

введите описание здесь

В качестве альтернативы в Process Explorer вы можете нажать View, Select Columns, выбрать Process Performance вкладка и выберите Start Time и тогда он покажет этот столбец в главном окне для всех PID.

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

В CMD вы можете использовать стандартную утилиту командной строки Windows Management Instrumentation (WMIC), чтобы получить время запуска процесса:

wmic process where Name="<process name>" get CreationDate

или же

wmic process where ProcessID="<PID>" get CreationDate

Вы получите такую ​​дату и время: 20201021010512.852810+180.
Формат: YYYYMMDDHHMMSS.ssssss+MMM(UTC offset)

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

@ECHO OFF
SETLOCAL

IF [%1]==[] (
    ECHO Prints process creation date in ISO format. 
    ECHO:
    ECHO USAGE: %~n0 ^<PID or Process name^>
    EXIT /B 1
)

IF [%~x1]==[.exe] (SET type=Name) ELSE (SET type=ProcessID)

FOR /F "tokens=1,2 delims==" %%a IN ('wmic process where %type%^="%~1" get CreationDate /value') DO (
    IF [%%a]==[CreationDate] SET proc_cd=%%b
)

IF DEFINED proc_cd (
    ECHO %proc_cd:~0,4%-%proc_cd:~4,2%-%proc_cd:~6,2%T%proc_cd:~8,2%:%proc_cd:~10,2%:%proc_cd:~12,2%
)

Введите в него PID или имя процесса, оканчивающееся на.exe, и он будет выводиться при запуске процесса. Предостережение: если существует много процессов с одинаковым именем, он будет выводить время только для последнего запущенного.

Другие вопросы по тегам