Как посмотреть кто выключил сервер 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.

Для этого откройте 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, если журналы событий были очищены
или старые записи были перезаписаны
более новыми ( рекомендуется настроить
увеличенный размер журналов событий
).

В организациях с несколькими системными администраторами часто возникает необходимость выяснить, кто инициировал перезагрузку или выключение сервера 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 обрабатывается основной службой журнала событий. Средство просмотра событий регистрирует историю запуска и завершения работы сервера. Так же она отслеживает действия каждого пользователя во время работы устройства. Записывает ошибки, и другие сообщения и предупреждения которые возникают на Windows Server. 

В этой статье мы узнаем, как проверить журналы выключения/перезагрузки на VPS серверах Windows 2012, 2016 и 2019. 

Рассмотрим некоторые наиболее распространенные коды связанные со временем запуска и завершения работы сервера.

41:  показывает, что ваш сервер перезагрузился, но не выключился полностью.
6005: показывает, что служба журнала событий была запущена.
1074:  это событие показывает, когда приложение принудительно выключает или перезагружает ваш VPS сервер. Благодаря этому можно  узнать, когда вы, или кто-то другой перезапустил или выключил сервер из меню «Пуск» или через CTRL+ALT+DEL.
6008: это событие появляется если ваш компьютер был выключен, или ушел в перезагрузку, через синий экран смерти.
6006: это событие показывает когда сервер корректно завершил свою работу.

Как просмотреть данные события в Windows Server?

Нажмите Win + R и введите eventvwr

В левой части панели откройте «Журналы Windows => Система»

В колонке Event ID мы увидим список событий, произошедших во время работы Windows. Журнал событий можно сортировать по идентификатору события.

Для того что бы отсортировать нужные намо события, с правой стороны, выберем «Фильтр текущего журнала»

Теперь введите нужные нам события, через запятую, 41, 1074, 6006, 6008, 6006 и нажмите Ок.

Теперь мы можем наблюдать журнал событий с завершением работы нашего сервера VPS.

Так же мы можем просмотреть журнал событий безотказной работы сервера. Этому соответствует идентификатор 6013. 

 Просмотр журнала выключения и перезапуска сервера с помощью PowerShell

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

Что бы отфильтровать последнюю 1000 записей в журнале, и отобразить только те события которые нам нужны, (41, 1074, 6006, 6008, 6006) выполним эту команду в PowerShell:

Get-EventLog System -Newest 1000 | ` Where EventId -in 41,1074,6006,6008 | ` Format-Table TimeGenerated,EventId,UserName,Message -AutoSize -wrap

Теперь вы можете самостоятельно проверить по какой причине был перезагружен/выключен ваш сервер.

Также предлагаем рассмотреть другие полезные статьи:

  • Как установить обновления на Windows Server 2012, Windows Server 2016 и Windows Server 2019
  • Как посмотреть логи RDP подключений в Windows Server 2016, 2019
  • Отключение UDP для RDP-подключений к Windows Server

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

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

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Запретить обновление windows 10 через групповые политики
  • Аудит успеха windows что это
  • Управление дисками расширить том не активно windows 10
  • Asus x550v драйвера windows 10
  • Konica minolta bizhub 162 драйвер windows 10