使用命令列取得 Windows 進程的掛鐘時間

使用命令列取得 Windows 進程的掛鐘時間

是否可以從不基於系統時鐘設定的 Windows 進程取得正常運作時間?

基於 Linux 的解決方案類似於:

ps -eo comm,etime

經過一些研究,我在 Windows 上嘗試了一些東西,但沒有找到我所期望的。例如,使用:

New-TimeSpan -Start (get-process explorer).StartTime

在 PowerShell 中,我得到了這個:

https://i.stack.imgur.com/uNF7y.png

我的問題是時間基於創建日期,因此如果時鐘設定因任何原因發生更改,結果將發生變化:

https://i.stack.imgur.com/cIR9W.png

(順便說一下,我喜歡負的正常運行時間)

我也看了一下wmic,問題是一樣的:

WMIC PROCESS GET NAME, CREATIONDATE

是否有欄位或選項可以獲得像 etime 這樣的掛機時間資訊?

謝謝

答案1

是否可以從不基於系統時鐘設定的 Windows 進程取得正常運作時間?

Cygwinps忽略對目前時間的變更。

退稅:

  • STIME 欄位以 hh:mm:ss 格式顯示開始時間,因此您無法得知它已經運行了多少天。

範例輸出(更改日期之前):

DavidPostill@Hal ~
$ date
Fri, Jul 17, 2015  9:59:11 AM

DavidPostill@Hal ~
$ ps -e -W -p 2612
      PID    PPID    PGID     WINPID   TTY     UID    STIME COMMAND
     2612       0       0       2612  ?          0 16:51:33 C:\Windows\explorer.exe

範例輸出(更改日期後):

DavidPostill@Hal ~
$ date
Fri, Jul 17, 2015 11:59:29 AM

DavidPostill@Hal ~
$ ps -e -W -p 2612
      PID    PPID    PGID     WINPID   TTY     UID    STIME COMMAND
     2612       0       0       2612  ?          0 16:51:33 C:\Windows\explorer.exe

的值STIME不變 -16:51:33

筆記:

  • 16:51:33是昨天機器重啟的時間。
  • STIME欄位以以下格式顯示開始時間hh:mm:ss,因此您無法得知它已經運行了多少天。

Cygwin ps 缺少選項 -o 來格式化輸出

Cygwin 使用自訂 ps 程序,該程序也可以處理 Windows 進程,但不支援所有這些選項。

不過,procps支持-o.

缺點:

  • STIME 欄位以 hh:mm:ss 格式顯示開始時間,因此您無法得知它已經運行了多少天。
  • 它不處理 Windows 進程。

相關內容