Можно ли получить время безотказной работы от процесса Windows, который не основан на настройках часов системы?
Решение на основе Linux это что-то вроде:
ps -eo comm,etime
Проведя некоторые исследования, я попробовал несколько вещей на Windows, но я не нашел то, что ожидал. Например, используя:
New-TimeSpan -Start (get-process explorer).StartTime
в PowerShell я получил это:
Моя проблема в том, что время основано на дате создания, поэтому, если настройки часов будут изменены по какой-либо причине, результат изменится так:
(Кстати, мне нравится негативное время работы)
Я также взглянул на wmic, и проблема та же:
WMIC PROCESS GET NAME, CREATIONDATE
Есть ли поле или опция для получения информации о времени, например, etime?
Спасибо
ps
игнорирует изменения текущего времени. Однако поле STIME отображает время начала только в формате чч: мм: сс, поэтому вы не можете сказать, сколько дней он работал: /Ответы:
Можно ли получить время безотказной работы от процесса Windows, который не основан на настройках часов системы?
Cygwin's
ps
игнорирует изменения текущего времени.Минус:
Пример вывода (до изменения даты):
Пример вывода (после изменения даты):
Значение
STIME
не изменяется -16:51:33
Примечания:
16:51:33
это время со вчерашнего дня, когда я перезапустил на машине.STIME
Поле отображается время начала в формате ,hh:mm:ss
так что вы не можете сказать , сколько дней она была запущена.Cygwin PS отсутствует опция -o для форматирования вывода
Cygwin использует пользовательскую программу ps, которая также может обрабатывать процессы Windows, но не поддерживает все эти параметры.
Однако
procps
поддерживает-o
.Недостатки:
источник