Wie kann ich feststellen, ob das System aufgrund von Wake-on-LAN (WoL) oder aufgrund des Netzschalters gestartet wurde?

11

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 /lastwakedie 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 /lastwakezeigt 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?

Jurjen
quelle
Ich fürchte, es handelt sich um ein Problem mit dem Netzwerkkartentreiber. Ich habe ein ähnliches Problem mit Windows 10 festgestellt - während der Computer beim Ausschalten einwandfrei auf WoL reagiert, reagiert er überhaupt nicht, wenn er in den Ruhezustand versetzt wird, was bedeutet, dass der Treibercode der Netzwerkkarte nicht darauf vorbereitet ist . Wenn Sie eine andere (neuere?) Version des Treibers finden, kann dies Ihr Problem lösen. Abgesehen davon fürchte ich, dass Sie erledigt sind.
StanTastic

Antworten:

1

Mein Ansatz wäre, dmidecode zu verwenden, der Daten aus dem BIOS liest, mit so etwas wie

dmidecode | findstr / R / C: "Wake-up"

Ähnlich wie Feitingens Antwort auf diese Frage

Wenn dies nicht funktioniert, muss Ihre Hardware diesen Wert möglicherweise nicht ordnungsgemäß aufzeichnen.

Fusorx
quelle
-1

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.

Max
quelle
Vielen Dank für die -1, aber ein Kommentar, der erklärt, warum meine (noch alternative) Lösung schlecht ist, wäre nützlicher ...
Max
1
Ich weiß nicht, wer die -1 gegeben hat (ich war es nicht), aber ich kann erklären, warum Ihr Vorschlag mein Problem nicht löst: Das Gerät, das das WoL-Paket sendet, ist ein Steam-Link. Mit anderen Worten: Ein Gerät, über das ich keine weitere Kontrolle habe und auf dem keine Skripte ausgeführt werden können, sendet das WoL-Paket.
Jurjen
@Jurjen danke für die Erklärung, bis heute kann ich mir keinen einfachen und praktischen Weg vorstellen, um Ihr Problem zu lösen ... (theoretisch könnten Sie meine vorgeschlagene Lösung mit einem zweiten PC verwenden, der nur über WOL aufgeweckt wird, so dass SteamLink weckt PC1 auf, dann notiert PC1 irgendwo auf einem gemeinsam genutzten Laufwerk (auf einem NAS?), Dann weckt PC1 PC2 (den PC Ihrer Frage) auf, dann schaltet sich PC1 aus und PC2 überprüft das freigegebene Laufwerk, um festzustellen, ob dies der Fall war geweckt von WOL Pachet von PC1 (und so von SteamLink) ... es könnte funktionieren, aber es ist komplex und Sie brauchen einen anderen PC ...
Max