Windows 7 或 Server 2008 显示进程的运行时间

Windows 7 或 Server 2008 显示进程的运行时间

有没有简单的方法可以显示特定 PID 实例活跃了多长时间?

答案1

使用 Powershell Get-Process cmdlet:

获取进程 | 选择对象 ID、开始时间、名称 | 排序对象 ID

答案2

格雷格,

我知道 Process Explorer 将会显示这一点。

在这里获取:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

如果您运行它,右键单击一个进程并选择Properties它将显示该进程的启动时间(您可以单击Threads那里的选项卡查看单个线程的启动时间)。

在此处输入图片描述

或者,在 Process Explorer 中,您可以单击ViewSelect Columns选择Process Performance选项卡,然后选择Start Time,然后它将在主窗口中显示所有 PID 的该列。

您可能需要对该进程中的各个线程(再次是线程选项卡)和当前日期/时间进行自己的计算,以获得真正的“多长时间”答案。

答案3

命令您可以使用标准 Windows 管理规范命令行(西米利都) 实用程序来获取进程启动时间:

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 结尾的进程名,它将输出该进程的启动时间。警告:如果有许多同名的进程,它将仅输出最后启动的进程的时间。

相关内容