Поиск по сайту:

Как проверить, кто перезапустил (завершил работу) Windows Server


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

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

  1. Откройте консоль просмотра событий (

    eventvwr.msc

    ) и перейдите в Журналы Windows -> Система;

  2. Воспользуйтесь фильтром журнала событий, нажав «Фильтровать текущий журнал» в контекстном меню;

  3. В поле фильтра введите EventID 1074 и нажмите «ОК».

  4. В списке журналов останутся только события выключения (перезагрузки). Откройте последнее событие;

  5. Событие с 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 Server.

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

Это означает, что перезагрузка была инициирована службой Windows или программой, запущенной как СИСТЕМА. Например, это может быть служебный процесс wuauserv, который завершил обновление Windows и перезагрузил компьютер в соответствии с настроенными параметрами объекта групповой политики Центра обновления Windows или с помощью задачи модуля 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 и вы запускаете «Перезапустить гостя» в консоли управления 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 в домене ).

Статьи по данной тематике