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

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

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

  1. Откройте консоль Event Viewer (eventvwr.msc) и перейдите в раздел Журналы Windows -> Система;
  2. Используйте фильтр журнала событий, выбрав пункт Filter Current Log в контекстном меню; фильтр журнала просмотра событийфильтр журнала программы просмотра событий
  3. В поле фильтрации введите идентификатор события 1074 и нажмите OK; Фильтр по идентификатору события 1074: Система была выключена процессом/пользователемФильтр по событию ID 1074: Система была выключена процессом/пользователем
  4. В списке журналов останутся только события выключения (перезагрузки). Откройте последнее событие;
  5. Событие с User32 в качестве источника показывает пользователя, который инициировал перезагрузку Windows. В данном примере это пользователь novak; Как узнать, кто перезапустил Windows, используя Event Viewer?Как узнать, кто перезапустил Windows, с помощью Event Viewer?
The process C:\Windows\Explorer.EXE has initiated the restart of computer MUN-DC03 on behalf of user WOSHUB\novak for the following reason: Other (Unplanned)
Reason Code: 0x5000000
Shutdown Type: restart
Comment:
Используя GPO, вы можете разрешить неадминистративным пользователям перезапускать Windows Server.

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

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

The process C:\Windows\uus\AMD64\MoUsoCoreWorker.exe has initiated the restart of computer MUN-DC03 on behalf of user NT AUTHORITY\SYSTEM for the following reason: Operating System: Service pack (Planned)
Reason Code: 0x80020010
Shutdown Type: restart
Comment:

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

The process C:\Program Files\VMware\VMware Tools\vmtoolsd.exe has initiated the shutdown of computer MUN-DC03 on behalf of user NT AUTHORITY\SYSTEM for the following reason: Legacy API shutdown
Reason Code: 0x80070000
Shutdown Type: shutdown

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

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

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

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

Поиск события перезапуска Info 1074 с помощью PowerShell Поиск перезапуска Информационное событие 1074 с помощью PowerShell

Вы можете использовать следующий сценарий 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проверить, кто перезапустил windows с помощью скрипта powershell

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

Invoke-Command -ComputerName mun-dc03 -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 3:24:29 AM on ‎9/‎17/‎2022 was unexpected.

EventID 6008 Предыдущее выключение системы было неожиданнымEventID 6008 Предыдущее выключение системы было неожиданным

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *