Frage Programm wird nur ausgeführt, wenn der PC mit WOL gestartet wird


Ist es möglich, ein Ereignis oder Skript zum Starten zu erstellen, wenn der Computer mit Wake-On-Lan gestartet wird?

Ich möchte das Programm (automatisch) nicht starten, wenn der Computer normal gestartet wird.


3
2017-07-12 13:15


Ursprung


Es gibt kein separates Windows-Ereignis, wenn das Gerät mit WOL eingeschaltet oder auf andere Weise eingeschaltet wird (Netzschalter). - Ramhound


Antworten:


Hier ist meine Idee, einen solchen Auslöser zu erstellen (aber ich kann den Erfolg nicht garantieren). Da ich nicht die richtige Umgebung habe, um die Idee zu testen, etwas Experimentieren ist auf Ihrer Seite erforderlich.

Der folgende Befehl kann verwendet werden, um die Wake-Quelle zu identifizieren:

powercfg -lastwake

Im Falle von Wake-On-Lan (WOL) wird das gemeldete Weckgerät Ihr sein Ethernet-Controller.

Sobald Sie wissen, dass ein solches Ereignis eingetreten ist und der genaue Name des Quelle wecken, das ist meine Idee, wie man ein Triggerscript hinzufügt:

  1. Öffnen Sie die Ereignisanzeige und suchen Sie das WOL-Ereignis dieser Da sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch dieser
  2. Klicken Sie mit der rechten Maustaste auf das Ereignis und wählen Sie "Aufgabe an dieses Ereignis anhängen ..."
  3. Wählen Sie "Start A Program" als Aktion
  4. Hinzufügen Powershell.exe und der Pfad zu deinem Skript
  5. Um mehr Kontrolle zu haben, wählen Sie im Schritt Finish die Option "Open the Properties ..." Kontrollkästchen
  6. Bearbeiten Sie auf der Registerkarte Trigger den Ereignistrigger, um detailliertere Trigger hinzuzufügen

Einige Referenzen und Beispiele helfen beim Einstieg:


3
2017-07-17 05:51



Dies funktioniert nur, wenn der Computer schläft, nicht wenn der Computer tatsächlich startet (beim Einschalten). Es wurde keine Lösung gefunden ... - Inferno IV
Haben Sie alle Ereignisse durchsucht, deren Quelle der Ethernet-Controller ist? - harrymc
Es gibt keine Quelle namens Ethernet-Controller. Ich suchte ab, als der Computer gestartet wurde, dieses Ereignis wird angezeigt: "Das Betriebssystem startete um Systemzeit 2018 - 07 - 27T06: 28: 13.494838200Z." (Kernel-Allgemein). Es gibt jedoch keine Ereignisse vor oder nach dem Angeben des WoL-Starts. Das einzige, was gefunden werden kann, ist: "Der Boot-Typ war 0x0.", Was bedeutet: Kaltstart vom vollständigen Herunterfahren. Also leider keine Hinweise, ob der Computer von WoL gestartet ist .. - Inferno IV
Die Quelle wird nicht "Ethernet-Controller" genannt, sondern der Name des Netzwerkadapters. Hast du auch Events mit Source Kernel-Power? - harrymc
Ich habe Ereignisse mit der Quell-Kernel-Power, jedoch sind sie für WoL-Boot und Normal-Boot identisch. Zum Zeitpunkt des Starts sind auf einem Netzwerkadapter keine Ereignisse vorhanden. - Inferno IV


Wie Ramhound bereits in den Kommentaren erwähnt hat Windows keine Möglichkeit zu wissen, wie der Computer angeschaltet wurde. (WOL, Bios Timer Event, manuell eingeschaltet, und so.)

Das einzige, was Sie von Windows erhalten können, ist, ob der Start des Computers nach einem normalen Neustart oder Herunterfahren stattfand oder ob der Computer nach einem unerwarteten Stromausfall oder einem erzwungenen Herunterfahren gestartet wurde.
Diese Informationen finden Sie im Ereignisprotokoll.

Das Beste, was Sie tun können, gilt, wenn Sie sicher sind, dass das WOL-Ereignis nur in einem Zeitrahmen stattfindet, in dem Sie Ihren Computer niemals selbst benutzen würden. Sie können eine geplante Aufgabe so einrichten, dass sie alle 5 Minuten während des Zeitraums ausgeführt wird, in dem ein Skript zum Starten der Anwendung ausgeführt wird.
Die Aufgabe muss so konfiguriert sein, dass der Computer NICHT aktiviert wird, sodass er nur ausgeführt wird, wenn der Computer von WOL geweckt wird. Das Skript sollte grundsätzlich zuerst prüfen, ob die Anwendung bereits läuft (wenn es: exit ist) und die Anwendung starten, wenn sie nicht ausgeführt wird.

Zusätzlich: Wenn das WOL-Ereignis zu zufälligen Zeiten kommt, können Sie immer noch die geplante Aufgabe verwenden, wenn Sie Ihren Computer so konfigurieren, dass er die automatische Anmeldung NICHT verwendet. Wenn Sie sicherstellen, dass Sie sich abmelden, bevor Sie den Computer in den Ruhezustand versetzen, wird der Computer während des WOL-Ereignisses aus dem Ruhezustand wechseln, ohne dass jemand eingeloggt ist.
Sie können dies in der geplanten Aufgabe testen und die Anwendung nur ausführen, wenn niemand angemeldet ist. Dies ist jedoch etwas schwierig, da Windows keine einfache Überprüfung dafür bietet. Meine übliche Vorgehensweise ist es zu verwenden tasklist | findstr explorer. Wenn Benutzer angemeldet sind, erhalten Sie für jeden Benutzer eine Zeile, da jeder eine eigene Kopie von explorer.exe ausführt. Wenn aber niemand eingeloggt ist, wird auch explorer.exe nicht ausgeführt.


2
2017-07-16 11:08