Как мне зарегистрировать время запуска и завершения работы в Windows 7?


18

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

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

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

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

Ответы:


26

Windows использует журналы событий с помощью Event Viewer для регистрации таких вещей:

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

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

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

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

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

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


Есть ли способ узнать время входа в систему \ время сна?
Виктор Сер

Я понятия не имею, как создать эти представления, даже после того, как я прочитал эти страницы. Но есть более простой способ. Откройте Event Viewer, нажмите Windows Logs-> System. На правой стороне есть Filter Current Log..., нажмите на него , и когда появится новое окно вставки 6006на All Event ID'sи нажмите кнопку Ok. Это покажет только события выключения системы. Сделайте то же самое для запуска системы.
Machineaddict

полезные вещи ...
Фернандо Эспиноса

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, который следует. Нужно вручную добавить фактический выход из системы на основе, например, последней записи журнала событий в тот день.


1

Используя 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. (В Windows 10 PowerShell можно открыть напрямую с помощью Window+ Xи выбора «Windows PowerShell» ).
  3. Скопируйте однострочник в буфер обмена.
  4. Вставьте в одну строку: Alt+ SpaceРедактироватьВставить (в более новых версиях Windows обычный Ctrl+ Vфактически работает как в окнах CMD, так и в PowerShell (теперь оба запускаются под conhost.exe)).
  5. Нажмите Enter
  6. Подождите, пока он не закончится (это может занять довольно много времени, особенно если это старая установка Windows).
  7. Результат можно найти в файле C:\temp2\_ComputerStartsAndStops.log.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.