명령줄을 사용하여 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 프로세스에서 가동 시간을 얻을 수 있습니까?

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 프로세스를 처리하지 않습니다.

관련 정보