In Windows 10 möchte ich wissen, wie ich in einem Skript feststellen kann, ob das System gestartet wurde, weil es durch Empfangen eines Wake-on-LAN-Pakets (WoL) eingeschaltet wurde oder weil es durch Drücken des Netzschalters eingeschaltet wurde .
Ich habe die WakeUpType-Eigenschaft der Win32_ComputerSystem- Klasse gefunden. Dies wird dokumentiert, um das "Ereignis zurückzugeben, das das System zum Einschalten bringt". Es gibt 9 mögliche Rückgabewerte, von denen einer "5" ist (was "LAN Remote" bedeutet).
Leider scheint es auf meinem System immer "6" (was "Power Switch" bedeutet) zurückzugeben:
PS C:\WINDOWS\system32> echo $(Get-WmiObject -class win32_computersystem).wakeuptype
6
Ich habe festgestellt, dass Windows nach dem Einschalten des Systems und dem Aufwecken mit WoL ein Ereignis im Systemereignisprotokoll mit der Quelle "Power-Troubleshooter" und der Ereignis-ID 1 veröffentlicht, die den folgenden Text enthält:
Wake-Quelle: Gerät -Intel (R) 82579V Gigabit-Netzwerkverbindung
Außerdem wird powercfg /lastwake
die Netzwerkkarte als Grund für das Aufwachen gemeldet. Zumindest beim Aufwachen aus dem Ruhezustand kann Windows feststellen, dass es aufgrund eines WoL-Pakets aufgewacht ist, obwohl die WakeUpType-Eigenschaft in diesem Fall immer noch "6" (Power Switch) zurückgibt.
Wenn das System ein WoL-Paket im S5-Status empfängt, wird es leider ordnungsgemäß hochgefahren und gestartet, aber ich kann nicht sagen, dass es aufgrund von WoL gestartet wurde. powercfg /lastwake
zeigt genau den gleichen Ausgang wie beim Einschalten des Systems von S5 durch Drücken des Netzschalters:
C:\WINDOWS\system32>powercfg /lastwake
Wake History Count - 0
Wie kann ich aus jedem Energiezustand (bis zu S5) zuverlässig erkennen, dass das System aufgrund von WoL eingeschaltet / aufgewacht ist?
quelle
Antworten:
Mein Ansatz wäre, dmidecode zu verwenden, der Daten aus dem BIOS liest, mit so etwas wie
Ähnlich wie Feitingens Antwort auf diese Frage
Wenn dies nicht funktioniert, muss Ihre Hardware diesen Wert möglicherweise nicht ordnungsgemäß aufzeichnen.
quelle
Möglicherweise können Sie ein Skript (oder eine Software) einrichten, um das Ereignis auf dem PC zu verfolgen, das das WOL-Paket sendet.
Dieses Skript könnte irgendwo (auf einer Netzwerkfreigabe?) Etwas (das aktuelle Datum / die aktuelle Uhrzeit?) In eine Datei schreiben, und dann könnte der gerade aufgeweckte Computer diese freigegebene Datei überprüfen und feststellen, ob sie von einem WOL eingeschaltet wurde Paket.
quelle