Как узнать, как часто Windows Seven перезагружается?
Где в системе или реестре искать данные о том, сколько раз Windows перезагружалась? Я хочу создать приложение, которое использует эту информацию (сколько раз Windows перезагружалась после процесса OOBE*) для реализации определенной функции.
Я уверен, что Microsoft, возможно, где-то это реализовала. Я думаю о ключе реестра или что-то вроде этого.
* OOBE - Out Of Box Experience, это процесс, который происходит, когда вы впервые загружаете Windows и настраиваете имя пользователя, пароль и имена компьютеров.
5 ответов
Я нашел ответ.
Найти над:
"HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId"
Значение в десятичном виде, которое вы увидите, - это количество раз, которое ваша система уже перезагружала.
Каждый запуск и останов регистрируются в журналах событий. Откройте "Просмотр событий" и перейдите в раздел "Системные журналы". Если вы фильтруете эти записи (используйте Filter Current Log
кнопка справа) по номерам событий 12 и 13, вы должны просто получать события, уведомляющие, когда система выключается и запускается.
Событие ID 12 - запуск системы, событие 13 - выключение системы. Он также предоставляет точное время, когда событие было зарегистрировано в самом событии.
Вы можете заставить свое приложение подсчитывать количество событий с помощью Event ID 12, который должен дать вам то, что вы хотите.
Вот еще один способ: SMART
Подавляющее большинство жестких дисков в наши дни хранят информацию SMART. Вас могут заинтересовать две части информации: 04 Start/Stop Count 12 Power Cycle Count
Проверьте статью в Википедии о SMART и, возможно, документацию по smartmontools.
smartmontools - это проект с открытым исходным кодом, который может запрашивать эти данные в CLI, или есть другие программы, которые могут получать эти данные с помощью различных графических интерфейсов: Список инструментов SMART в Википедии
Я написал два коротких сценария, которые могут подсчитать количество включений компьютера.
К сожалению, нет журнала событий, предназначенного специально для перезагрузок, только для случаев, когда 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
Найдите "BootId" в редакторе реестра. Здесь вы можете получить общее количество загрузок системы.