是否可以從不基於系統時鐘設定的 Windows 進程取得正常運作時間?
基於 Linux 的解決方案類似於:
ps -eo comm,etime
經過一些研究,我在 Windows 上嘗試了一些東西,但沒有找到我所期望的。例如,使用:
New-TimeSpan -Start (get-process explorer).StartTime
在 PowerShell 中,我得到了這個:
我的問題是時間基於創建日期,因此如果時鐘設定因任何原因發生更改,結果將發生變化:
(順便說一下,我喜歡負的正常運行時間)
我也看了一下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 進程。