Windows 8 сообщает НЕПРАВИЛЬНОЕ время безотказной работы (возможно, общее время безотказной работы гибридной загрузки)

10

Неправильное время работы

Время работы, показанное на рисунке, составляет 6 дней, 1 час, 34 минуты, 22 секунды. Я включил этот ноутбук около 7 минут назад.

Я действительно думаю, что Windows 8 сообщает об общем времени работы в режиме гибридной загрузки. Как я могу получить реальное время? Кроме того, почему Windows сообщает об этом?

Есть ли способ получить реальное время в GUI (для моего друга n00b) ??


ОБНОВЛЕНИЕ: я отключил гибридную загрузку и перезагрузился. Это теперь приводит правильное время работы. Кроме того, полное отключение с shutdown /s /t 0также работает.

Немного больше объяснений. Мой вопрос в том, как получить фактическое время работы (время, когда мы включили систему), даже если включена гибридная загрузка? Возможно на складе Windows без какой-либо внешней программы, хотя и не обязательно.


Любое объяснение этому?

Акшат Миттал
источник
1
Можете ли вы уточнить, что вы подразумеваете под "реальным временем"? Что вы делали 7 минут назад точно?
Дэвид Шварц
Под реальным временем работы подразумевается фактическое время с момента включения системы. (Это то, что я сделал 7 минут назад, включите ноутбук!)
Акшат Миттал
8
Устаревшее определение для времени безотказной работы - это время работы компьютера с момента инициализации ядра. Поскольку гибридная загрузка является просто особым типом приостановки (ранее она была приостановлена ​​в ОЗУ и в Hibernate), она не считается «закрытием», поскольку используется один и тот же экземпляр ядра Windows.
allquixotic
@allquixotic Правда, вот почему я подумал, что это будет гибридная загрузка.
Акшат Миттал
Я полагаю, у вас нет вопроса. Я хочу спросить, как получить фактическое время работы, даже если включена гибридная загрузка. Я обновляю вопрос.
Акшат Миттал

Ответы:

5

Вы хотите получить готовое решение для определения времени безотказной работы вашей машины с момента последнего гибридного выключения / быстрого запуска, верно?

Вы можете получить эту информацию (предоставленную @allquixotic) из EventLog, используя PowerShell следующим образом:

PS c:\> Write-Host $("{0:c}" -f ((Get-Date)- (Get-EventLog -LogName system -Source "Microsoft-Windows-Power-Troubleshooter" -Newest 1).TimeGenerated))

Чтобы встроить команду powershell в сценарий оболочки Windows, вы можете сделать следующее:

c:\> powershell.exe -nologo -command Write-Host $('Time since last ''Fast Startup'': {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source \"Microsoft-Windows-Power-Troubleshooter\" -Newest 1).TimeGenerated))

Однако, чтобы заставить это работать из коробки, вы можете вместо этого установить его в постоянную переменную среды:

c:\> setx HardwareUptime "powershell.exe -nologo -command Write-Host $('Uptime since last ''Fast Startup'': {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source 'Microsoft-Windows-Power-Troubleshooter' -Newest 1).TimeGenerated))"

Итак, вы можете заставить его работать, открыв cmdокно и выполнив:

c:\> %HardwareUpTime%

ОБНОВИТЬ:

Сегодня я обнаружил, что при использовании вышеуказанной записи в журнале событий также будет учитываться «спящий режим» или «режим ожидания», поэтому запуск %HardwareUpTime%покажет вам истекшее время, прошедшее с того момента, как компьютер возобновил режим сна, если вы дадите ему это сделать.

Поэтому вот оно:

setx HardwareUptime "powershell.exe -nologo -command Write-Host $('Uptime since hardware boot: {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -InstanceId 27 -Newest 1).TimeGenerated)); Write-Host $('Uptime since system resumed: {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source 'Microsoft-Windows-Power-Troubleshooter' -Newest 1).TimeGenerated));"

Я немного изменил команду, чтобы она была более понятной и дала вам обе части информации:

  • Прошедшее время с момента загрузки Windows (после гибридного выключения, полного выключения или простой перезагрузки или спящего режима).

  • Прошедшее время с момента возобновления выполнения Windows (после возврата из спящего режима).

ПРИМЕЧАНИЕ. Если система не находилась в режиме ожидания, оба раза будут одинаковыми.

asm00
источник
Это кажется мне хорошим решением.
Акшат Миттал
4

Взято отсюда :

Проверьте журнал событий Windows.

  1. Нажмите Windows Key+r

  2. Введите в поле, %windir%\system32\eventvwr.msc /s

  3. Нажмите «Создать пользовательский вид ...» с правой стороны.

  4. Установите настройки следующим образом: питания для устранения неполадок

  5. Нажмите ОК

  6. Когда будет предложено, дайте имени пользовательскому представлению (это может быть что угодно)

  7. Будет отображаться список времени возобновления

allquixotic
источник
Хорошо, это хорошо. Это то, чего я хочу. Что если я n00b ?? Это просто не подходит. Кроме того, это приводит к последнему времени возобновления , за время работы мне нужно минус его от моего текущего времени. Есть ли какой-либо прямой метод для времени, может быть, в командной строке? Я голосую, но не принимаю.
Акшат Миттал
Для этого AFAIK нет термоусадочного решения. Вы должны написать программу. Может быть, я буду ....
Allquixotic
Хорошо, я попробую это позже, может быть.
Акшат Миттал
1

Вы должны отключить Hybrid-Boot и перезагрузиться. Должно отображаться правильное время работы. Кроме того, полное отключение с shutdown /s /t 0также работает.

Kruug
источник
Это именно то, что я написал в обновлении
Акшат Миттал
@AkshatMittal Да, но я решил, что вы хотели бы принять ответ :)
Kruug
Нет. Вопрос: «Как получить реальное время работы в форме GUI?»
Акшат Миттал
Ну, во-первых, вам придется отключить ваш, так Hybrid-Bootкак время работы начинает отсчитываться с момента инициализации ядра. Это единственный способ.
Крууг
Единственный способ, конечно?
Акшат Миттал
0

это также происходит в более старой версии (XP, Vista, 7) при использовании hibernation. Время сбрасывается только тогда, когда вы это делаете full boot, но быстрый запуск Win8 больше не является полной загрузкой. Это комбинация входа пользователя в систему + гибернация.

magicandre1981
источник