Как узнать, кто перезагрузил (выключил) сервер Windows?

Если в вашей организации несколько системных администраторов, у вас периодически может возникать вопрос “Кто перезагрузил сервер?”. В этой статье я покажу как найти определения пользователя, который перезагрузил или выключил компьютер/сервер Windows.

Информация об учетной записи, которая отправила команду перезагрузки Windows сохраняется в журнал событий.

  1. Откройте консоль Event Viewer ( eventvwr.msc ) и перейдите в раздел Windows Logs -> System ;
  2. Включите фильтр журнала событий, выбрав в контекстном меню пункт Filter Current Log ;
  3. В поле фильтра укажите EventID 1074 и нажмите OK;
  4. В журнале событий останутся только события выключения (перезагрузки), откройте любое из них;
  5. В событии от источника User32 будет указан пользователь, который инициировал перезагрузку Windows. В этом примере это пользователь a.novak.
The process C:WindowsExplorer.EXE (MSK-DC03) has initiated the restart of computer MSK-DC03 on behalf of user WINITPROa.novak for the following reason: Other (Unplanned)_x000D_Reason Code: 0x5000000_x000D_Shutdown Type: restart_x000D_Comment:

Рассмотрим еще несколько примеров событий перезагрузки/выключения Windows. В качестве пользователя, запустившего перезагрузку операционную систему может быть указан NT AUTHORITYSYSTEM .

Это означает, что перезагрузку инициировала одна из служб или программ Windows, запущенная от имени SYSTEM .. Например, это может быть процесс службы wuauserv , который закончил установку обновлений Windows и выполнил перезагрузку согласно настроенной политике Windows Update или с помощью задания модуля PSWindowsUpdate .

The process C:WindowsuusAMD64MoUsoCoreWorker.exe (WKS-PC11S22) has initiated the restart of computer WKS-PC11S22 on behalf of user NT AUTHORITYSYSTEM for the following reason: Operating System: Service pack (Planned)_x000D_Reason Code: 0x80020010_x000D_Shutdown Type: restart_x000D_Comment:

Если ваша Windows запущена внутри виртуальной машины VMware, то если выполнить Restart Guest из консоли управления VMware, событие (выключения) будет выглядеть так:

The process C:Program FilesVMwareVMware Toolsvmtoolsd.exe (MSK-DC03) has initiated the shutdown of computer MSK-DC03 on behalf of user NT AUTHORITYSYSTEM for the following reason: Legacy API shutdown_x000D_Reason Code: 0x80070000_x000D_Shutdown Type: shutdown

В этом случае выключение Windows также инициировано NT AUTHORITYSYSTEM, т.к. службы интеграции VMware Tools запущены от имени системы.

Вы можете получить информацию о событиях перезагрузки с помощью PowerShell. Следующая команда выберет все события с EventID 1074:

Get-WinEvent -FilterHashtable @{logname=’System’;id=1074}|ft TimeCreated,Id,Message

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

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

Get-EventLog -LogName System |
where {$_.EventId -eq 1074} |select-object -first 10 |
ForEach-Object {
$rv = New-Object PSObject | Select-Object Date, User, Action, process, Reason, ReasonCode
if ($_.ReplacementStrings[4]) {
$rv.Date = $_.TimeGenerated
$rv.User = $_.ReplacementStrings[6]
$rv.Process = $_.ReplacementStrings[0]
$rv.Action = $_.ReplacementStrings[4]
$rv.Reason = $_.ReplacementStrings[2]
$rv
}
} | Select-Object Date, Action, Reason, User, Process |ft

Также с помощью PowerShell можно быстро получить имя пользователя, который перезагрузил удаленный компьютер. Получить доступ к журналу событий на удаленном хосте можно с помощью формата Get-EventLog -ComputerName или вы можете подключиться к компьютеру через PSRemoting с помощью командлета Invoke-Command :

Invoke-Command -ComputerName rds2-12 -ScriptBlock {Get-WinEvent -FilterHashtable @{logname=’System’;id=1074} |select-object TimeCreated,Id,Message -first 1}

По событию 1074 можно найти только причины корректных (штатных) перезагрузок сервера. Если Windows была перезагружена не штатно (например, при потере электропитания, или появления BSOD), тогда нужно искать события с EventID 6008 .

The previous system shutdown at 4:34:49 AM on ‎1/‎17/‎2022 was unexpected.

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

admin

Share
Published by
admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago