Как узнать кто перезагрузил сервер windows

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

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

  1. Откройте консоль Event Viewer (
    eventvwr.msc
    ) и перейдите в раздел Windows Logs -> System;
  2. Включите фильтр журнала событий, выбрав в контекстном меню пункт Filter Current Log;
    фильтр журнала событий windows

  3. В поле фильтра укажите EventID 1074 и нажмите OK;
    событие 1074 кто перезагрузил или выключил windows

  4. В журнале событий останутся только события выключения (перезагрузки), откройте любое из них;
  5. В событии от источника User32 будет указан пользователь, который инициировал перезагрузку Windows. В этом примере это пользователь a.novak.
    определить пользователя, который перезагрузил windows

The process C:\Windows\Explorer.EXE (MSK-DC03) has initiated the restart of computer MSK-DC03 on behalf of user WINITPRO\a.novak for the following reason: Other (Unplanned)
Reason Code: 0x5000000
Shutdown Type: restart
Comment:

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

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

The process C:\Windows\uus\AMD64\MoUsoCoreWorker.exe (WKS-PC11S22) has initiated the restart of computer WKS-PC11S22 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 (MSK-DC03) has initiated the shutdown of computer MSK-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 событие 1074

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

EventID 6008 The previous system shutdown was unexpected.

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

В организациях с несколькими системными администраторами часто возникает необходимость выяснить, кто инициировал перезагрузку или выключение сервера Windows. Информация о таких действиях сохраняется в журнале событий Windows, что позволяет точно определить пользователя или процесс, ответственный за событие. В этой статье мы разберём, как найти инициатора перезагрузки с помощью Event Viewer, PowerShell и анализа событий с EventID 1074 и 6008.

Приобрести оригинальные ключи активации Windows Server можно у нас в каталоге от 1190 ₽

Поиск инициатора перезагрузки через журнал событий

Журнал событий Windows фиксирует данные о пользователе или процессе, отправившем команду на перезагрузку или выключение. Чтобы найти эту информацию:

1. Откройте Просмотр событий с помощью команды:

eventvwr.msc

2. Перейдите в раздел Журналы Windows → Система (Windows Logs → System).

3. В правой панели выберите Фильтр текущего журнала (Filter Current Log).

4. В поле ИД события укажите 1074 и нажмите ОК.

5. В отфильтрованном списке откройте любое событие с EventID 1074.

В описании события от источника User32 будет указано имя пользователя, инициировавшего перезагрузку. Например, пользователь softuser. Если указан NT AUTHORITY\SYSTEM, перезагрузку запустила системная служба или программа, такая как wuauserv (служба обновлений Windows), настроенная на автоматическую перезагрузку после установки обновлений.

Примеры событий перезагрузки

Разные сценарии перезагрузки или выключения могут указывать на различные причины и инициаторов:

Перезагрузка из-за обновлений Windows:

Если перезагрузка вызвана службой wuauserv или заданием PSWindowsUpdate, в событии будет указан NT AUTHORITY\SYSTEM. Это происходит, если в политике Windows Update настроена автоматическая перезагрузка.

Перезагрузка виртуальной машины VMware:

Если сервер работает на VMware, команда Restart Guest из консоли VMware генерирует событие:


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

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

Поиск событий перезагрузки с помощью PowerShell

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

Получение всех событий EventID 1074

Выведите список событий с EventID 1074:

Get-WinEvent -FilterHashtable @{logname='System';id=1074} | Format-Table TimeCreated,Id,Message

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

Краткий отчёт о последних 10 событиях

Используйте скрипт для вывода последних 10 событий с указанием пользователей и процессов:


Get-EventLog -LogName System | Where-Object {$_.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 | Format-Table

Скрипт показывает дату, действие, причину, пользователя и процесс, инициировавший перезагрузку.

Анализ событий на удалённом сервере

Чтобы проверить журнал событий на удалённом компьютере:


Invoke-Command -ComputerName rds2-12 -ScriptBlock {
Get-WinEvent -FilterHashtable @{logname='System';id=1074} | Select-Object TimeCreated,Id,Message -First 1
}

Команда использует PSRemoting для получения последнего события EventID 1074 с удалённого сервера, например, rds2-12.

Анализ нештатных перезагрузок

Событие EventID 1074 фиксирует только штатные перезагрузки и выключения. Для нештатных ситуаций, таких как сбой питания или BSOD (синий экран), ищите события с EventID 6008:


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

Эти события указывают на неожиданное завершение работы, но не содержат информации о пользователе.

Ограничения и рекомендации

— Очистка журналов: Если журнал событий был очищен или старые записи перезаписаны, определить инициатора перезагрузки невозможно.

— Размер журналов: В доменной среде увеличьте размер журналов событий через групповые политики (GPO), чтобы сохранить больше данных.

— Мониторинг: Настройте централизованный сбор журналов событий с помощью Windows Event Collector или SIEM-систем для упрощения анализа.

— Резервное копирование: Регулярно экспортируйте журналы событий для сохранения истории:

wevtutil epl System C:\Logs\SystemBackup.evtx

Дополнительные советы

— Если перезагрузка вызвана обновлениями Windows, проверьте настройки Windows Update в GPO или локальной политике.

— Для виртуальных машин анализируйте логи гипервизора (VMware, Hyper-V), чтобы выявить команды управления.

— Используйте PowerShell-скрипты для автоматизации мониторинга перезагрузок и отправки уведомлений администраторам.

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

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

Для этого откройте Event Viewer ( eventvwr.msc ). Затем найдите раздел System (Система ) в разделе Windows Logs (Журналы Windows ).

Щелкните правой кнопкой мыши и откройте фильтр журнала событий Filter Current Log.

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

Укажите фильтру EventID — 1074 и нажмите «ОК».

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

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

Журнал будет содержать следующую информацию:

Процесс C:\Windows\System32\RuntimeBroker.exe (WINDOWS2022) инициировал выключение компьютера WINDOWS2022 от имени пользователя WINDOWS2022\Administrator по следующей причине:Other (Planned) Reason Code: 0x85000000 Тип выключения: выключение Комментарий:

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

Перезагрузка сервера также может быть вызвана одной из служб или программ Windows, запущенных от имени SYSTEM.
Например, wuauserv, которая после установки обновлений Windows выполняет автоматическую перезагрузку.
В этом случае пользователь, выполнивший перезагрузку, будет указан — AUTHORITY\SYSTEM.
Например:

Процесс C:\Windows\uus\AMD64\MoUsoCoreWorker.exe (WKS-PC11S22) инициировал перезагрузку компьютера WKS-PC11S22 от имени пользователя NT AUTHORITY\SYSTEM по следующей причине: Операционная система: Пакет обновления (Планируется) Код причины: 0x80020010 Тип выключения: перезапуск Комментарий:

При использовании виртуальной машины VMware для Windows при выполнении команды«Перезапустить гостя» через консоль управления VMware Management Console,
выключение операционной системы Windows также выполняется от пользователя -NT AUTHORITY\SYSTEM, поскольку службы VMware Tools, обеспечивающие интеграцию, работают с системными привилегиями.
Например:

Процесс C:\Program Files\VMware\VMware Tools\vmtoolsd.exe (WINDOWS2022) инициировал выключение компьютера WINDOWS2022 от имени пользователя NT AUTHORITY\SYSTEM по следующей причине: Legacy API shutdown Reason Code: 0x80070000 Тип выключения: выключение

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

Get-Eventlog -Logname System |? {(1074) -contains $_.EventID} | ft Timegenerated,EventID,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
Кто перезагрузил (выключил) сервер Windows?

Используя команду Invoke-Command из PowerShell, вы можете получить имя пользователя, который перезагрузил удаленный компьютер.
Для этого введите команду:

Invoke-Command -ComputerName localhost -ScriptBlock {Get-Eventlog -Logname System |? {(1074) -contains $_.EventID} | ft Timegenerated,EventID,Message}
Кто перезагрузил (выключил) сервер Windows?

Событие 1074 используется исключительно для определения причин стандартных перезагрузок сервера. Если перезагрузка операционной системы Windows
Windows была вызвана аномальным событием, таким как сбой питания или BSOD, необходимо проанализировать события с идентификатором EventID 6008.

Обратите внимание, что

вы не

сможете определить, кто перезагружал или выключал сервер Windows,

если журналы событий были очищены
или старые записи были перезаписаны новыми

(рекомендуется настраивать журналы событий большего размера).

Щелчок
правой кнопки мыши, открываем фильрт
Фильтр журналов событий
Текущий журнал;

Указываем фильтр EventID — 1074
и
нажмимаем OK;

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

На сайте
Процесс C:\Windows\System32\RuntimeBroker.exe (WINDOWS2022)
инициировал выключение компьютера WINDOWS2022 от имени пользователя
WINDOWS2022\Administrator по следующей причине: Другое (запланировано)

Причина
Код: 0x85000000

Тип выключения: выключение питания

Комментарий:

Так
же перезагрузка сервера может быть
вызвана одной из служб или программ
Windows
запущенная
от имени SYSTEM.
Такой как wuauserv ,
который закончил установку обновлений
Windows и выполнил автоматическую установку
перезагрузку. В этом случае будет указан
пользователь выполнил перезагрузку
— NT
AUTHORITY\SYSTEM.

При
Использование виртуальной машины VMware
для Windows, при выполнении команды «Перезапустить
Гость
» через консоль управления VMware,
выключение операционной системы Windows
также осуществляется от пользователя
NT AUTHORITY\SYSTEM, поскольку службы VMware Tools,
обеспечивающие интеграцию, функционируют
с привилегиями системы.

Для того чтобы вывести все события
из журнала событий с EventID 1074 с помощью
PowerShell введите следующую команду:
Get-WinEvent
-FilterHashtable @{logname=’System’;id=1074}|ft
TimeCreated,Id,Message

КАРТИНКИ
НЕТ
Get-Eventlog -Logname System |? {(1074) -содержит
$_.EventID} | ft Timegenerated,EventID,Message

Вы
Можете использовать скрипт PowerShell,
который предоставляет информацию о
последних десяти событиях, включая
имена пользователей и процессы,
ответственные за перезагрузку или
выключение сервера.
Get-EventLog
-LogName System |
where {$_.EventId -eq 1074} |select-object
-первые 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,
Действие, Причина, Пользователь, Процесс |ft

С
с помощью команды
Invoke-Command
из
PowerShell
Можно получить имя пользователя, который
перезагрузил удаленный компьютер. Для
этого введите команду:
Invoke-Command
-ComputerName rds2-12 -ScriptBlock {Get-WinEvent -FilterHashtable
@{logname=’System’;id=1074} |select-object TimeCreated,Id,Message
-first 1}

КАРТИНКИ
НЕТ
Invoke-Command -ComputerName localhost -ScriptBlock
{Get-Eventlog -Logname System |? {(1074) -содержит $_.EventID} | ft
Timegenerated,EventID,Message}

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

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

In this blog post, we’ll explore how to find out who restarted or shut down a Windows server. When a server is unexpectedly restarted during production hours and a P1 ticket is raised, it’s important to identify the reason behind the restart.

The cause could be an automatic restart triggered by a Windows update, a software component update, or a manual restart by an IT administrator. We can uncover these details by using Event Viewer. Let’s dive in and identify the root cause.

Steps

Below are the steps to identify the user account or service that may have triggered the restart of a Windows server. First, login to the server and follow below steps:

  • Press Windows + R keys to open the Run dialog box.
  • Type eventvwr and press Enter to open Event viewer console.
  • Expand Windows logs > System and right-click on it > Select Filter Current log
Filter Event viewer log

  • Type 1074 in the Event ID filter and press OK.
Filter using Event ID 1074

  • You will find the list of all Events w.r.t. server restart. Go through each Event and check its details to find out which process and user account triggered the server restart.

Below screenshot shows the process SystemSettingsAdminFlows.exe initiated power off on behalf of user Techpress\tpadmin1.

Go through events to find root cause of Server restart

Event ID Details

The process C:\Windows\system32\SystemSettingsAdminFlows.exe (TECHPRESSSVR221) has initiated the power off of computer TECHPRESSSVR221 on behalf of user TechPress\tpadmin1 for the following reason: Other (Unplanned)
Reason Code: 0x5000000
Shutdown Type: power off
Comment:

Use PowerShell to find Who Restarted the Server

You can also check Windows Events using PowerShell cmdlet. The cmdlet we will use is Get-WinEvent and Get-EventLog.

Get-WinEvent

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

Check Last 5 Events for Server restart with Information about the Date, Reason, Process, and User details.

Get-EventLog -LogName System |
Where-Object { $_.EventId -eq 1074 } |
Select-Object -First 5 |
ForEach-Object {
    if ($_.ReplacementStrings[4]) {
        [pscustomobject]@{
            EventDate    = $_.TimeGenerated
            InitiatingUser = $_.ReplacementStrings[6]
            RelatedProcess = $_.ReplacementStrings[0]
            ActionTaken    = $_.ReplacementStrings[4]
            ShutdownReason = $_.ReplacementStrings[2]
        }
    }
} | Select-Object EventDate, ActionTaken, ShutdownReason, InitiatingUser, RelatedProcess | Format-Table
Get-EventLog

Event ID 6008

If you do not find relevant event logs using Event ID 1074, please check for Event ID 6008 as well. This Event ID is generated when an unexpected shutdown of the server occurs.

Read Next

This step-by-step guide will help you find out who restarted your Windows Server. You can discover the user or application responsible for the shutdown or restart of your Windows Server.

This data can be accessed using Event Viewer, a built-in utility that records each event on your server and provides a means to view this information.

To determine who restarted Windows Server, simply follow these steps:

To gain further insights into these procedures, continue with this guide.

To get started, you need to open Event Viewer. For that, search for the event viewer in the Taskbar search box and click on the individual search result. Alternatively, press Win+R to open the Run prompt, type eventvwr, and hit the Enter button.

After that, expand the Windows Logs section and select System.

Next, right-click on the System menu and click the Filter Current Log option.

Then, enter 1074 in the empty box and click the OK button.

For your information, Event ID 1074 denotes the restart and shutdown caused by a user or application. In other words, if a user or application restarts or shuts down your server, Event Viewer logs that with an Event ID 1074.

After that, filter the data, click on an event, and find the details accordingly.

The process C:WindowsSystem32RuntimeBroker.exe has initiated the restart of computer [computer-name] on behalf of user [username] for the following reason:

Reason

Reason code

Shutdown Type: restart

Comment:

You can find the user, date/time, reason code, etc. This detail box is not limited to one event. You can click on any past event to find the information that meets your requirements.

Read: How to check the Shutdown and Startup Log in Windows

To check the restart history on the Windows Server, you need to open the Event Viewer. Open the Event Viewer on your computer and select Windows Logs > System. Then, right-click on the System and select Filter Current Log. Next, enter the Event ID 1074 and click the OK button. It displays all the restart and shutdown-related events that happened in the past. You can click on any event to find the details.

To check why your Windows restarted, open the Event Viewer. Then, click on Windows Logs and select the System menu. Right-click on the System menu and select Filter Current Log. Next, enter Event ID 1074 and click on OK. Then, select a restart or shut-down event according to the timing and find the details in the bottom tab. Here, it displays the reason why your Windows restarted and by whom.

Read: How to find and view BSOD log files in Event Viewer.

Published on September 6, 2024

Tags: Restart, Server

July 25, 2024

July 18, 2024

September 5, 2024

September 4, 2024

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Tp link usb wifi адаптер драйвер windows xp
  • Как приостановить защиту windows 10
  • Лучший проводник для windows 10
  • Ttlpatch exe windows 10
  • Настройка высокоскоростного подключения на windows 11