Neustart oder Herunterfahren?

540
Luciano

Ich habe folgendes Problem: Ich muss wissen, wann der PC startet, ob der Computer nach dem Ausschalten (Kaltstart) hochgefahren ist oder ob der Computer einfach neu gestartet wurde (Warmstart). Über ein Startup-Skript in gpedit sollte ich die Antwort kennen, etwa:

If PC restarted then  msg: The PC has been warm reboot  elseif PC shutdown then  msg: The PC has been cold reboot  end if 

(Hinweis: Es wird tatsächlich eine E-Mail gesendet, diese Angabe ist jedoch nicht wichtig).

Nun frage ich die Community, wie kann ich diese Informationen aus dem System wiederherstellen? Mein Ausgangspunkt ist das "Eventviewer" -Tool, aber mit dieser Lösung bin ich nicht sehr zufrieden. Ich denke, ACPI-Ereignisse werden im BCD-Speicher gespeichert und ich frage mich, ob es möglich ist, sie auf irgendeine Weise wiederherzustellen. Vielleicht durch WMIC? Oder gibt es auch eine Systemprotokolldatei, aus der die Informationen direkt abgerufen werden können?

Hat jemand eine Idee, wie es weitergehen soll?

Hinweis: Im Moment interessiere ich mich nur für die Windows-Umgebung, aber ich denke, es ist auch interessant für Unix und Unix (wie Linux).

1
Bei Windows gibt es keinen Unterschied zwischen einem Neustart und einem Herunterfahren, sobald Sie sich wieder bei Ihrem Konto angemeldet haben. Windows weiß, dass ein Neustart ausgeführt wird, und er weiß, dass ein Herunterfahren stattfindet. Dies gilt jedoch nicht für das Anmeldeereignis Ramhound vor 5 Jahren 0
Könnte die Zeit seit dem letzten Herunterfahren vergleichen Xen2050 vor 5 Jahren 0
Hallo Ramhound Dies ist eine Frage für den Erfahreneren, und es ist auch wahrscheinlich, dass er unbeantwortet bleibt. In jedem Fall ist das, was Sie sagen, nicht korrekt: Wenn Sie versuchen, die Maschine neu zu starten (und die Uhrzeit überprüfen) und den nächsten Neustart durchführen, öffnen Sie "Eventviewer" und filtern "Windows-Protokolle" -> "System", Ebene "Information", Quelle "USER32", ID 1074 sagt Ihnen, wie der Rechner neu gestartet wurde (Zeit prüfen!). Luciano vor 5 Jahren 0
Ich sage Ihnen mehr: Wenn sich der Computer aufgrund eines Stromausfalls ausschaltet, wird beim nächsten Neustart das EMS-Menü angezeigt, in dem Sie auswählen können, ob Sie die Maschine im "abgesicherten Modus", "Normal" usw. starten möchten, und dies impliziert Dass diese Informationen irgendwo in der BCD gespeichert sind, ist offensichtlich. Der Vollständigkeit halber möchte ich noch hinzufügen, dass Sie in Serversystemen (und nur in Serversystemen) zusätzlich zum Herunterfahren-Modus dem Ereignis eine Beschreibung hinzufügen können, die dann irgendwo im System gespeichert wird (ich nehme an, in einer Protokolldatei) aber wo genau? Luciano vor 5 Jahren 0
Wahrscheinlich finden sich diese Informationen auch im Register, im "System" -Bienenstock, aber auch hier, wo? Luciano vor 5 Jahren 0
Für Xen2050 Entschuldigung, ich verstehe nicht, wo finde ich diese Informationen? Es ist genau das, wonach ich suche! Luciano vor 5 Jahren 0
Ich kann mir vorstellen, dass Sie unter Linux das letzte Mal verwenden könnten, was den Unterschied zwischen einem Herunterfahren und einem Neustart aufzeigen könnte und bei einem Stromausfall fehlen würde. davidgo vor 5 Jahren 0

1 Antwort auf die Frage

2
Ram Kumaran

Sie können Powershell verwenden, um die Details zu erhalten

Get-WinEvent -FilterHashTable @ -MaxEvents 1 

Mit dem obigen Befehl erhalten Sie die neuesten Informationen zum Herunterfahren / Neustarten des Systems. Protokolle werden standardmäßig zuerst abgerufen. Die Einschränkung auf 1 ergibt das letzte Ereignis. Übrigens, danke an @ Lucianos Kommentar, der sehr geholfen hat. Nachfolgend finden Sie das vollständige Skript für Ihren Fall.

$lastEvent = Get-WinEvent -FilterHashTable @ -MaxEvents 1 $restarted = $lastEvent.Message -like "*restart*" if($restarted) { Write-Host "The PC has been warm reboot" -ForegroundColor Red } else { Write-Host "The PC has been cold reboot" -ForegroundColor Green } 

Hier erfahren Sie, wie Sie das Powershell-Skript beim Start ausführen.

Hallo Ram, die Ausgabe wird auf meinem System nicht im Eingabeaufforderungsfenster angezeigt, aber in PowerShell ISE funktionieren sie hervorragend. Vielen Dank. Wirklich gut. Luciano vor 5 Jahren 0
Ich denke, Sie suchen nach einer Taste, um fortzufahren. Verhalten. Sie können diesen Link überprüfen: https://stackoverflow.com/questions/20886243/press-any-key-to-continue Auch ich weiß es nicht viel über Providernamen für diese Ereignisse, ich kam mit User32 basierend auf einem Ihrer Kommentare, ich habe auch viel von Ihnen gelernt, danke :) Ram Kumaran vor 5 Jahren 0