如何在PowerShell中获取进程开始时间

时间:2015-12-07 19:57:00

标签: powershell

如何在Powershell中获取流程开始时间。我在powershell升级中试过这个:

(Get-Process MyProcessName).StartTime.ToString('yyyyMMdd')

这就是我得到的错误:

(Get-Process MyProcessName).StartTime.ToString('yyyyMMdd')

You cannot call a method on a null-valued expression.
At line:1 char:1
+ (Get-Process MyProcessName).StartTime.ToString('yyyyMMdd_h ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

但是当我进行Get-Process MyProcess时,我看到了我的过程:

> Get-Process MyProcess

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   2906     132    81136      79132   889           20656 myprocess

当我'Get-Date -format'yyyyMMdd'时,它返回'20151207',所以我认为日期格式是正确的。

5 个答案:

答案 0 :(得分:2)

这样做:

(Get-Date (Get-Process explorer).StartTime).ToString('yyyyMMdd')

答案 1 :(得分:2)

作为一个单行程,您可以使用:

get-process ProcessName |select starttime

答案 2 :(得分:1)

您似乎未正确输入进程名称

(Get-Process MyProcessName).StartTime.ToString('yyyyMMdd')

但它应该是

(Get-Process MyProcess).StartTime.ToString('yyyyMMdd')

根据你的例子。

答案 3 :(得分:0)

以管理员身份运行:

Get-Process | select name, starttime | findstr your_process_name_here

答案 4 :(得分:0)

如果要获取特定进程的开始时间,请使用“进程名称”替换其名称:

获取流程ProcessName |选择名称,开始时间

或Get-Process |选择名称,开始时间

获取所有正在运行的进程的开始时间