Content
Wer hat den Windows-Server neu gestartet (heruntergefahren)?
Im Falle eines ungeplanten Neustarts des Servers können Sie den Benutzer ermitteln, der den Windows-Server neu gestartet oder heruntergefahren hat.
Öffnen Sie dazu die Ereignisanzeige ( eventvwr.msc ). Suchen Sie dann im Abschnitt Windows-Protokolle den Eintrag System .
Klicken Sie mit der rechten Maustaste und öffnen Sie den Ereignisprotokollfilter Filter Current Log.
Geben Sie den Filter EventID - 1074 an und klicken Sie auf "OK".
Das Ereignisprotokoll enthält nun nur noch die Ereignisse für den Neustart und das Herunterfahren Ihres Servers.
Das Quell-Ereignis User32 gibt den Benutzer an, der den Windows-Neustart initiiert hat.
In unserem Fall ist es - der Administrator.
Das Journal enthält die folgenden Informationen:
Der Prozess C:\Windows\System32\RuntimeBroker.exe (WINDOWS2022) hat das Ausschalten des Computers WINDOWS2022 im Namen des Benutzers WINDOWS2022\Administrator aus folgendem Grund eingeleitet: Other (Planned) Reason Code: 0x85000000 Shutdown-Typ: Ausschalten Kommentar:
Ein Server-Neustart kann auch durch einen der Windows-Dienste oder Programme verursacht werden, die als SYSTEM laufen.
Wie z.B. wuauserv, das nach der Installation von Windows-Updates einen automatischen Neustart durchführt.
In diesem Fall wird der Benutzer, der den Neustart durchgeführt hat, angegeben - AUTHORITY\SYSTEM.
Ein Beispiel:
Der Prozess C:\Windows\uus\AMD64\MoUsoCoreWorker.exe (WKS-PC11S22) hat den Neustart des Computers WKS-PC11S22 im Namen des Benutzers NT AUTHORITY\SYSTEM aus folgendem Grund initiiert: Betriebssystem: Service Pack (Geplant) Grund Code: 0x80020010 Shutdown-Typ: Neustart Kommentar:
Wenn Sie eine virtuelle VMware-Maschine für Windowsverwenden, wird beim Ausführen des Befehls"Gast neu starten" über die VMware Management Console
wird das Herunterfahren des Windows-Betriebssystems auch über den Benutzer -NT AUTHORITY\SYSTEM durchgeführt, da die VMware Tools-Dienste, die die Integration bereitstellen, mit Systemberechtigungen funktionieren.
Ein Beispiel:
Der Prozess C:\Programme\VMware\VMware Tools\vmtoolsd.exe (WINDOWS2022) hat das Herunterfahren des Computers WINDOWS2022 im Namen des Benutzers NT AUTHORITY\SYSTEM aus dem folgenden Grund initiiert: Legacy API shutdown Grund Code: 0x80070000 Shutdown-Typ: shutdown
Geben Sie den folgenden Befehl ein, um alle Ereignisse aus dem Ereignisprotokoll mit EventID 1074 mit PowerShell auszugeben:
Get-Eventlog -Logname System |? {(1074) -contains $_.EventID} | ft Timegenerated,EventID,Message
Sie können auch ein PowerShell-Skript verwenden, das Informationen über die letzten zehn Ereignisse bereitstellt , einschließlich
die Benutzernamen und Prozesse, die für den Neustart oder das Herunterfahren des Servers verantwortlich sind.
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
Mit dem Cmdlet " Invoke-Command" von PowerShell können Sie den Namen des Benutzers abrufen, der den Remotecomputer neu gestartet hat.
Geben Sie dazu den Befehl ein:
Invoke-Command -ComputerName localhost -ScriptBlock {Get-Eventlog -Logname System |? {(1074) -contains $_.EventID} | ft Timegenerated,EventID,Message}
DasEreignis 1074 wird nur verwendet, um die Ursache von Standard-Neustarts des Servers zu ermitteln. Wenn ein Neustart des Windows-Betriebssystems
Windows-Betriebssystems durch ein abnormales Ereignis, wie z. B. einen Stromausfall oder BSOD, verursacht wurde, sollten Sie Ereignisse mit der EventID 6008 analysieren.
Beachten Sie, dass Sie nicht feststellen können, wer den Windows-Server neu gestartet oder heruntergefahren hat, wenn die Ereignisprotokolle bereinigt wurden
oder alte Einträge durch neuere überschrieben wurden (es wird empfohlen, größere Ereignisprotokolle zu konfigurieren)
Щелчок
правой кнопки мыши, открываем фильрт
журнала событий Filter
Aktuelles Protokoll;
Указываем фильтр EventID - 1074
и
нажмимаем OK;
Теперь
в журнале событий будут отражены только
события перезагрузки и выключения
вашего сервера.
В событии от источника
Benutzer32
будет
указан пользователь, который инициировал
перезагрузку Windows.
В нашем случае
это - Administrator.
Der
Prozess C:\Windows\System32\RuntimeBroker.exe (WINDOWS2022) hat
das Ausschalten des Computers WINDOWS2022 im Namen des Benutzers
WINDOWS2022\Administrator aus folgendem Grund: Andere (Geplant)
Grund
Code: 0x85000000
Shutdown-Typ: Ausschalten
Kommentar:
Так
же перезагрузка сервера может быть
вызвана одной из служб или программ
Windows
запущенная
от имени SYSTEM.
Такой как wuauserv ,
который закончил установку обновлений
Windows и выполнил автоматическую
перезагрузку. В этом случае будет указан
пользователь выполнивший перезагрузку
- NT
BEHÖRDENSYSTEM.
При
использовании виртуальной машины VMware
для Windows, при выполнении команды "Neustart
Guest .
" через консоль управления 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) -enthält
$_.EventID} | ft Timegenerated,EventID,Message
Вы
можете использовать скрипт PowerShell,
который предоставляет информацию о
последних десяти событиях, включая
имена пользователей и процессы,
ответственные за перезагрузку или
выключение сервера.
Get-EventLog
-LogName System |
where {$_.EventId -eq 1074} |select-object
-first 10 |
ForEach-Object {
$rv = New-Object PSObject |
Select-Object Datum, Benutzer, Aktion, Prozess, Grund, 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,
Aktion, Grund, Benutzer, Prozess |ft
С
помощью командлета
Invoke-Befehl
из
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) -enthält $_.EventID} | ft
Zeitgeneriert,EreignisID,Meldung}
Событие
1074 используется исключительно для
выявления причин стандартных перезагрузок
сервера. Если перезагрузка операционной
системы Windows была вызвана нештатным
событием, таким как сбой питания или
появление "синего экрана смерти"
(BSOD), в таком случае следует анализировать
события с кодом EventID 6008.
Отметим, что вы не сможете определить
кто перезагрузил или выключил сервер
Windows, если журналы событий были очищены
или старые записи были перезаписаны
более новыми ( рекомендуется настроить
увеличенный размер журналов событий
).