시스템의 시계 설정을 기반으로 하지 않는 Windows 프로세스에서 가동 시간을 얻을 수 있습니까?
Linux 기반 솔루션은 다음과 같습니다.
ps -eo comm,etime
몇 가지 조사를 통해 Windows에서 몇 가지를 시도했지만 기대했던 결과를 찾지 못했습니다. 예를 들어 다음을 사용합니다.
New-TimeSpan -Start (get-process explorer).StartTime
PowerShell에서는 다음을 얻었습니다.
내 문제는 시간이 생성 날짜를 기준으로 하므로 어떤 이유로든 시계 설정이 변경되면 결과가 다음과 같이 변경된다는 것입니다.
(그런데 나는 부정적인 가동 시간을 좋아합니다)
나는 또한 wmic을 살펴 보았고 문제는 동일합니다.
WMIC PROCESS GET NAME, CREATIONDATE
etime과 같은 실제 시간 정보를 얻을 수 있는 필드나 옵션이 있습니까?
감사해요
답변1
시스템의 시계 설정을 기반으로 하지 않는 Windows 프로세스에서 가동 시간을 얻을 수 있습니까?
Cygwin은 ps
현재 시간의 변경 사항을 무시합니다.
약점:
- 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은 Windows 프로세스도 처리할 수 있지만 해당 옵션을 모두 지원하지는 않는 사용자 정의 ps 프로그램을 사용합니다.
그러나 procps
.-o
단점:
- STIME 필드에는 시작 시간이 hh:mm:ss 형식으로 표시되므로 실행된 일수를 알 수 없습니다.
- Windows 프로세스를 처리하지 않습니다.