Как узнать, как часто Windows Seven перезагружается?

18

Где в системе или реестре искать данные о том, сколько раз Windows перезагружалась? Я хочу создать приложение, которое использует эту информацию (сколько раз Windows перезагружалась после процесса OOBE *) для реализации определенной функции.

Я уверен, что Microsoft, возможно, где-то это реализовала. Я думаю о ключе реестра или что-то вроде этого.

* OOBE - Out Of Box Experience, это процесс, который происходит, когда вы впервые загружаете Windows и настраиваете имя пользователя, пароль и имена компьютеров.

Диого
источник
Благодаря тщательному изучению журналов событий вы можете выяснить это, но я не думаю, что они на самом деле записаны именно где-то ... хм. Надеюсь, я ошибаюсь!
Shinrai

Ответы:

17

Каждый запуск и останов регистрируются в журналах событий. Откройте «Просмотр событий» и перейдите в раздел «Системные журналы». Если вы отфильтруете эти записи (используйте Filter Current Logкнопку справа) по номерам событий 12 и 13, вы должны просто получать события, уведомляющие, когда система выключается и запускается.

Событие ID 12 - запуск системы, событие 13 - выключение системы. Он также предоставляет точное время, когда событие было зарегистрировано в самом событии.

Вы можете заставить свое приложение подсчитывать количество событий с помощью Event ID 12, который должен дать вам то, что вы хотите.

Коннор В
источник
5
Хорошая мысль, но есть предостережения: журналы событий могут быть очищены пользователем, и они ограничены максимальным размером, поэтому он не обязательно сообщит об общем количестве перезапусков, особенно если это старая установка.
rmart
@ rmart Я не знаю, будет ли обычный пользователь вычищать журналы событий, но они оба справедливы. Я думаю, что использование SMART-данных, как упомянуто выше, вероятно, лучший способ, но это не без предостережений.
Коннор W
12

Я нашел ответ.

Найти над:

"HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId" 

Значение в десятичном виде, которое вы увидите, - это количество раз, которое ваша система уже перезагружала.

Диого
источник
576 раз, очень интересный вопрос и ответ. +1 от меня.
Джо Тейлор
7

Вот еще один способ: SMART

Подавляющее большинство жестких дисков в наши дни хранят информацию SMART. Вас могут заинтересовать две части информации: 04 Start / Stop Count 12 Power Cycle Count

Проверьте статью в Википедии о SMART и, возможно, документацию по smartmontools.

smartmontools - это проект с открытым исходным кодом, который может запрашивать эти данные в CLI, или есть другие программы, которые могут получать эти данные с помощью различных графических интерфейсов: Список инструментов SMART в Википедии

camster342
источник
Я думаю, что это, вероятно, более надежный метод, чем использование Event Viewer, но он также имеет свои предостережения. Если диск не находился в одном компьютере с первого дня, не был заменен или использован в другом месте, вы не получите точных результатов. Кроме того, я думаю, что старые диски не полностью поддерживают S..MART, поэтому вы можете найти некоторые диски, которые записывают информацию о цикле включения питания, а другие - нет.
Коннор W
@ Connor W: Я предполагал, что жесткие диски, которые не записывают информацию SMART, вряд ли будут находиться на машине, достаточно мощной для запуска Windows 7, но да, вы совершенно правы, что этого не может быть опирался на. Так же, как просмотрщик событий ....
camster342
А что делать, если пользователь использует режим ожидания или жесткий диск отключается из-за неактивности?
sinni800
@Sinni: Вот в чем разница между кодом 04 и 12. 04 - это суммарное ускорение жесткого диска, которое включает режимы ожидания и энергосбережения. 12 - это то место, где жесткий диск полностью теряет питание от выключения компьютера или перехода в спящий режим.
camster342
2

Проверьте Диспетчер надежности в Windows 7

uSlackr
источник
3
Это на самом деле не говорит вам, когда компьютер загрузился или выключился.
Коннор В.
1

Я написал два коротких сценария, которые могут подсчитать количество включений компьютера.

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

Эти сценарии выполняют поиск в журнале событий, event 12который регистрируется при запуске Windows. Затем он говорит вам, сколько раз он насчитал.

VBS Script: подсчитать, сколько раз компьютер включался

count = 0
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'" _
& " and EventCode = '12'")
For Each objEvent in colLoggedEvents
count = count + 1
Next
wscript.echo "Number of times operating system has started:   " & count

Сценарий VBS: удаленно подсчитайте, сколько раз компьютер включался:

count = 0
strComputer=InputBox ("Enter the network name for the remote computer")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'System'" _
& " and EventCode = '12'")
For Each objEvent in colLoggedEvents
count = count + 1
Next
wscript.echo "Number of times operating system has started:   " & count 

Source VBS Script - Count Количество включений компьютера

ovann86
источник
Если это ваш веб-сайт, на который вы ссылаетесь (те ссылки, которые вы только что обновили), учтите, что вы должны сообщить о своей принадлежности к нему. См superuser.com/help/behavior
slhck
@slhck - да, я ссылаюсь на свой личный блог. Я не знал об этих правилах. Есть ли стандартная строка, которую я должен использовать, чтобы было ясно, что я ссылаюсь на контент, который также есть в моем личном блоге? Я отправил все ответы давно, когда у меня было время, я меняю доменные имена и хочу обновить ссылки до истечения срока действия домена. Я веду свой личный блог, чтобы записывать вещи, которые мне нужно запомнить, и делиться знаниями, отсюда перекрестная публикация между суперпользователем.
ovann86
1
Пожалуйста, будьте откровенны и скажите «мой блог» или что-то в этом роде. Пока вы уверены, что фактические ответы содержатся здесь, и людям не нужно покидать сайт, чтобы получить решение, это нормально. Добавление ссылок для деталей всегда хорошо.
Slhck