
Если в вашей компании работает несколько системных администраторов, иногда вам может понадобиться узнать, кто перезагрузил сервер. В этой статье. Я покажу вам, как определить пользователя, который перезагрузил или выключил компьютер/сервер под управлением Windows, по журналам событий.
Информация об учетной записи пользователя, отправившего команду перезапуска, хранится в журнале событий Windows.
- Откройте консоль Event Viewer (
eventvwr.msc
) и перейдите в раздел Журналы Windows -> Система; - Используйте фильтр журнала событий, выбрав пункт Filter Current Log в контекстном меню;
- В поле фильтрации введите идентификатор события 1074 и нажмите OK;
- В списке журналов останутся только события выключения (перезагрузки). Откройте последнее событие;
- Событие с User32 в качестве источника показывает пользователя, который инициировал перезагрузку Windows. В данном примере это пользователь
novak
;
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:
Давайте рассмотрим другие примеры событий перезапуска/выключения 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.
Вы можете использовать следующий сценарий 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 или подключитесь к компьютеру с помощью команды 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.
Конечно, вы не сможете узнать, кто перезапустил Windows, если журналы событий были очищены или если более поздние события были перезаписаны более ранними (рекомендуется увеличить максимальный размер журналов событий с помощью GPO в домене).