Führen Sie ein Blockierskript mit Administratorrechten in Windows vor und nach dem Standby-Modus aus

377
divB

Ich möchte ein Skript in Windows direkt vor dem Standby / Sleep-Modus mit Administratorrechten und Sperren ausführen, dh das System sollte nicht in den Ruhezustand wechseln, bis das Skript erfolgreich beendet wurde.

Alternativ wäre es mir möglich, einen Hintergrundprozess oder -dienst zu erstellen, wenn dies auf einfache Weise möglich ist.

Hintergrund: Es scheint, dass ich einen sehr fehlerhaften Treiber für ein Gerät habe, bei dem Windows im Standby-Modus mit einem leeren Bildschirm hängen bleibt oder beim Aufwachen einen leeren Bildschirm anzeigt. Dies ist nicht zu 100% reproduzierbar, es kommt nur gelegentlich vor. Es scheint jedoch, als wenn ich nur das entsprechende Gerät im Gerätemanager deaktiviere, alles gut funktioniert. Ich möchte diesen Prozess automatisieren.

2

1 Antwort auf die Frage

2
DavidPostill

Ich möchte ein Skript in Windows direkt vor dem Standby / Sleep-Modus ausführen

Mit dem Taskplaner können Sie eine Task erstellen, die durch ein Kernel-Power-Protokollereignis ausgelöst wird, das "Ruhezustand" angibt:

  1. Führen Sie "Taskplaner" aus.
  2. Wählen Sie "Taskplaner-Bibliothek"
  3. Klicken Sie auf das Menü "Aktion"> "Aufgabe erstellen".
  4. Wählen Sie "Allgemein" und geben Sie der Aufgabe einen "Namen" und eine Beschreibung. "
  5. Wählen Sie "Trigger" und klicken Sie auf "Neu".

    • Stellen Sie "Beginnen Sie die Aufgabe" auf "Bei einem Ereignis"
    • Setze "Log" auf "System"
    • Setzen Sie "Source" auf "Kernel-Power"
    • Setzen Sie "Event ID" auf "42" (Sleep)
    • OK klicken"

  6. Wählen Sie "Aktionen" und klicken Sie auf "Neu".

    • Stellen Sie "Programm / Skript" auf ein Skript Ihrer Wahl
    • OK klicken"


Wenn ich das entsprechende Gerät im Gerätemanager deaktiviere, funktioniert alles

Ich möchte diesen Prozess automatisieren.

Verwenden Sie devcondiese Option, um das Gerät zu deaktivieren.

Anmerkungen:

  • Verwenden Sie devcon finddiese Option, um die Gerätehardware-ID zu erhalten.
  • Verwenden Sie devcon disable HardwareIDdiese Option, um das Gerät zu deaktivieren.
  • Fügen Sie devcon disable HardwareIDdas oben erstellte Skript hinzu.
  • Unter Windows 7 64 Bit müssen Sie die 32-Bit-Version von verwenden devcon, da die 64-Bit-Version den folgenden Fehler ausgibt:

    Diese Version von F: \ test \ devcon \ ia64 \ devcon.exe ist nicht mit der von Ihnen verwendeten Windows-Version kompatibel. Überprüfen Sie die Systeminformationen Ihres Computers, um festzustellen, ob Sie eine x86-Version (32-Bit) oder eine x64-Version (64-Bit) des Programms benötigen, und wenden Sie sich an den Herausgeber der Software.

  • Der unten angegebene Download-Link ist eine ZIP-Datei mit 32- und 64-Bit-Versionen von devcon.


Wo kann ich devcon herunterladen?

Besuchen Sie die Seite http://support.microsoft.com. Das DevCon-Befehlszeilendienstprogramm ist eine Alternative zum Geräte-Manager für den Download-Link.


Lesen Sie weiter

Danke, toller Zeiger, aber das funktioniert nur für ** Herunterfahren **. Ich würde es für ** Standby ** und ** Schlafmodus ** benötigen. divB vor 8 Jahren 0
@divB Die Antwort wurde aktualisiert, um mithilfe des Taskplaners ein Skript für das entsprechende Kernel-Power-Ereignis auszuführen (EventID 42 ist Sleep). DavidPostill vor 8 Jahren 1
@divb Hinweis Standby und Modus sind dasselbe. Siehe [Was ist der Unterschied zwischen Schlaf- und Standby-Modus?] (Http://superuser.com/q/367842) DavidPostill vor 8 Jahren 0
Das funktioniert jetzt für Standby, was großartig ist, aber ** blockiert nicht **: Für einen Test lasse ich calc.exe ausführen. Wenn ich in den Standby-Modus wechsle, wird die calc.exe möglicherweise lange angezeigt, nachdem ich sie wieder aufgenommen habe! Da der fehlerhafte Treiber das System im Standby-Modus hängen lässt, muss ich es deaktivieren **, bevor es tatsächlich in den Standby-Modus geht. divB vor 8 Jahren 0