18

Я хотел бы записать время, когда мой компьютер запускается и выключается. Мне не нужна никакая диагностическая информация или что-либо, просто записка даты и времени, например что-то вроде:

2011/04/29 08:17:34 AM Startup
2011/04/29 05:26:52 PM Shutdown

Как я могу это сделать?

Мои поиски в Google до сих пор привели к тому, что многие люди спрашивали об уменьшении времени запуска Windows, но ничего интересного для поставленной задачи не представляло.

4 ответа4

26

Windows использует журналы событий для просмотра событий:

Идентификатор события # 6005 указывает на запуск системы

Идентификатор события # 6006 указывает на отключение системы

Вы должны создать пользовательское представление в Event Viewer, которое будет фильтровать эти два идентификатора события, а источником будет журнал событий.

Это самый простой способ.

Кроме того, вы можете использовать командлет Get-WinEvent PowerShell для создания настраиваемого фильтра и передачи этих элементов в текстовый файл.

Или ... вы можете использовать Get-EventLog для передачи пользовательского журнала событий (который вы создаете с помощью пользовательских представлений ...) в текстовый файл.

1

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

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

Со мной, событие с идентификатором 12 является самым первым, а событие с идентификатором 13 - последним.

12. Описание для идентификатора события (12) в источнике (Microsoft-Windows-Kernel-General) не найдено. Либо компонент, который вызывает это событие, не установлен на компьютере, либо установка повреждена.Вы можете установить или восстановить компонент или попытаться изменить сервер описания.

13: описание для идентификатора события (13) в источнике (Microsoft-Windows-Kernel-General) не может быть найдено. Либо компонент, который вызывает это событие, не установлен на компьютере, либо установка повреждена.Вы можете установить или восстановить компонент или попытаться изменить сервер описания.

Следующая информация была включена в событие (строки вставки): 2012-12-25T18: 23: 26.070181000Z

PS: Кроме того, у меня есть несколько случаев, когда было зарегистрировано несколько 6005, но не 6006, что следует. Нужно вручную добавить фактический выход из системы на основе, например, последней записи в журнале событий в этот день.

0

Используя PowerShell Get-EventLog, следующий (длинный) однострочный выводит запрошенный вывод в текстовый файл:

Get-EventLog -LogName System | Where-Object {(($_.EventID -eq 6005) -or ($_.EventID -eq 6006)) -and ($_.TimeGenerated -gt [DateTime] "2017-05-01")} | Select-Object EventID, TimeGenerated, Message | Sort-Object -Property TimeGenerated | Foreach { if ($_.EventID -eq 6005) { $out = "Startup"  } else { $out = "Shutdown" + "`r`n"}  ($_.TimeGenerated.ToString() + '  ' + $out); } > C:\temp2\_ComputerStartsAndStops.log

Заметки

  • Чтобы это работало, должен существовать каталог C:\temp2 . Если он не существует, создайте его или измените однострочник, чтобы использовать другой (существующий) каталог.
  • Чтобы получить вывод в формате ISO 8601 , замените « TimeGenerated.ToString() "с" TimeGenerated.ToString("s") ".
  • В однострочнике есть встроенный временной фильтр (только включая запуск и выключения после 2017-05-01). Измените «2017-05-01» на что-то другое, если требуется более старый запуск и завершение работы.
  • Если выходные данные требуются в обратном хронологическом порядке, замените « Sort-Object » на « Sort-Object -Descending ».
  • Поскольку он использует Get-EventLog, он также будет работать на старых версиях Windows.

инструкция

Однострочник может быть помещен в сценарий, но затем необходимо позаботиться о разрешениях, прежде чем он заработает. Вместо этого самый простой способ:

  1. Откройте командную строку Windows: Window + R, введите CMD и нажмите Enter.
  2. Введите powershell и нажмите Enter.
  3. Скопируйте однострочник в буфер обмена.
  4. Вставить в одну строку: Alt + ПробелПравкаВставить
  5. Нажмите Enter
  6. Подождите, пока он не закончится (это может занять довольно много времени, особенно если это старая установка Windows)
  7. Результат можно найти в файле C:\temp2\_ComputerStartsAndStops.log .
0

Может быть, это поможет вам, если вы не используете время в конкретном использовании. TurnedOnTimesView: мониторинг времени запуска и завершения работы Windows

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .