Windows 10 / 11 Aufgabenplanung: USB Ereignis-Trigger Gerät angeschlossen – WIN10 ab Version 1709 und Windows 11

Windows 10 ab Version 1709: Ereignis-Trigger USB angeschlossen

Dieser Artikel gilt für aktuelle Versionen von Windows 10 ab Version 1709. Lt. eines Kommentars von drundanibel funktioniert die Anleitung auch mit Windows 11.

Vorherige Versionen von Windows 10 (<1709) werden mit diesem Ereignisfilter nicht funktionieren!
Anleitung für frühere Versionen.

Für so manche Aufgabe, die man am PC zu erledigen hat, kann es sinnvoll sein, wenn ein Task mittels USB Ereignis-Trigger automatisch gestartet wird, sobald ein bestimmtes Gerät angeschlossen wird. Ich verwende diese Methode hauptsächlich um Backup-Aufgaben zu automatisieren. Sie ist USB-Geräte-spezifisch: Das heißt der Task wird nur dann gestartet, wenn genau das eine von mir definierte USB-Gerät angesteckt wird. Dies wird durch einen USB Ereignis-Trigger mit manuell erstelltem Ereignisfilter erreicht.

Natürlich gibt es für diesen Anwendungsfall einige Tools und Anleitungen im Netz, jedoch möchte ich keine App installieren müssen und keine der Anleitungen mittels Windows 10 Bordmittel hat bei mir funktioniert. Deswegen musste ich mir das ganze genauer anschauen. Vielleicht wird ja dem ein oder anderen dadurch ein bisschen Zeit erspart…

Viel Spaß beim Nachbauen!

Schritt 1: Euer USB-Gerät eindeutig identifizieren:

Startet die Ereignisanzeige und klickt euch durch, bis ihr hier angekommen seid:

Anwendungs- und Dienstprotokolle
Microsoft
Windows
DriverFrameworks-UserMode
Betriebsbereit

Danach klickt ihr auf „Protokoll aktivieren“:

Wenn ihr das erledigt habt, könnt ihr euren USB-Stick anstecken und [F5] drücken sobald er von Windows erkannt wurde, damit die Einträge in der Ereignisanzeige aktualisiert werden.

Nun noch das Event 2006 suchen und den Wert bei „InstanceId“ wegkopieren. Er beginnt (glaube ich) immer mit „SWD\…“

Schritt 2: Aufgabe für das ermittelte USB-Gerät anlegen:

Hier der funktionierende USB Ereignis-Trigger, der triggert, wenn ein von euch definierter USB-Stick angesteckt wird (Windows 10, ab Version 1709):

Wo „HIER_EUER_INSTANCE_WERT“ steht fügt ihr den Wert ein, den ihr im Event 2006 unter „instance“ gefunden und wegkopiert habt.
Wichtig dabei ist, dass ihr den Wert zuvor HTML-kodiert und erst dann einfügt.

Einen online HTML-Encoder hab ich hier gefunden: https://opinionatedgeek.com/Codecs/HtmlEncoder
(Danach sollten alle „&“ in „&amp;“ umgewandelt worden sein…)

Ich nehme an ihr wisst, wie man eine Aufgabe erstellt, sonst hilft Google hier bestimmt weiter…
Einfach als Trigger „Bei einem Ereignis“ auswählen. Danach auf „Benutzerdefiniert“ und „Neuer Ereignisfilter“ klicken. Reiter „XML“ auswählen und den Hacken bei „Manuell bearbeiten“ setzen:

Event Trigger USB
Window 10 Event Trigger new USB device

Zu guter Letzt den angepassten Code einfügen, alles bestätigen, und sich beim ständigen Ein- und Ausstecken der USB-Geräte freuen… 😉

Nachtrag: kurze Erläuterungen für die Erstellung eines spezifischen Ereignisfilters

Rechte Maustaste auf den Eintrag in der Ereignisanzeige, dann auf Kopieren und Details als Text kopieren.

Irgendwo reinkopieren:

Hier nochmal der Code für den Ereignis-Filter:

Vergleiche die beiden Abschnitte und verstehe die Syntax… 😉
Hier eine detaillierte Anleitung by Microsoft…

Autor: David

Ich bin ein leidenschaftlicher Techniker, der gerne mit elektronischen Gadgets experimentiert. Meine Augen beginnen zu leuchten, wenn ich über smarte Systeme im Wohnbereich diskutiere, besonders seitdem ich gemeinsam mit meiner Frau unser Eigenheim geschaffen habe. Beruflich bin ich in der IT-Branche tätig.

22 Gedanken zu „Windows 10 / 11 Aufgabenplanung: USB Ereignis-Trigger Gerät angeschlossen – WIN10 ab Version 1709 und Windows 11“

  1. Hallo, das klappt ganz wunderbar … Vielen Dank! Was mir noch fehlt, ist das der Trigger nicht feuert, wenn das USB-Gerät beim Windows-Start bereits angeschlossen ist. Gibt es dazu vielleicht auch eine Idee? Besten Gruß, Thomas

    1. Hi Thomas,
      schön, dass es funktioniert.
      Die einzige Lösung, die mir für deine Anforderung auf die Schnelle einfällt ist ein Script, welches eruiert wann der PC zuletzt gebootet wurde und dann bspw. erst triggert, wenn 5 min. seit dem letzten Start vergangen sind.
      Hier findest du einige Lösungen um die Bootzeit zu ermitteln: (z.B.: wmic os get lastbootuptime)
      https://superuser.com/questions/523726/how-can-i-find-out-when-windows-was-last-restarted
      lg, David

      1. Dafür braucht man dann allerdings kein Skript: Es gibt die Option „Verzögern für:“ unter „Erweiterte Einstellungen“. 30 Sekunden reichen völlig, dann klappt es … Danke für den Tip & den Schubs in die richtige Richtung!

  2. Kann es sein, dass das bei 1803 nicht mehr funktioniert? Ich habe hier eine 1803 Installation, das wird nichts protokolliert, wenn ein USB Stick angeschlossen wird, obwohl die Protokollierung aktiv ist. Das Protokoll ist auch nicht leer, nur eben die typischen 20xx Codes beim Einstecken eines USB Sticks fehlen.

    1. Puh, schon wieder Änderungen durch Windows Update? Das schau ich mir dann an, wenn die PCs, bei denen ein USB-Trigger eingerichtet ist, nicht mehr sichern… sollte ich etwas bemerken, werde ich natürlich den Post updaten.

    2. Hey Conf_t! 😉

      Also bei mir funktioniert es auch mit der 1803-er Version wie hier beschrieben.
      Das einzige, was ich nach dem Update machen musste, war die erneute Aktivierung des „DriverFrameworks-UserMode“ Protokolls.

      lg

  3. Hi David,
    ich habe diesen Mechanismus bei vielen PC´s benutzt, bis es mir zu aufwendig wurde, nach jedem Win-Upgrade die Gerätekennung zu erneuern und den Driverframework-Usermode neu zu aktivieren (dafür habe ich inzwischen einen Registry-Eintrag gefunden). Für die wechselnde Gerätekennung habe ich auch eine Umgehungslösung. Nun aber mein Problem:
    Auf zwei Rechnern mit Win10 (1803 bzw 1809) bekomme ich trotz aktivierter Logfunktion keine Einträge im Driverframework-Usermode-Protokoll.
    Die Datei Microsoft-Windows-DriverFrameworks-UserMode%4Operational.evtx bleibt unverändert.
    Ich habe auch mit dem Processmonitor (Sysinternals) nicht herausgefunden, welcher Prozess in die Datei schreibt (oder eben nicht). WUDFHost.exe ist es offenbar nicht. Hast Du eine Idee?
    LG Peter

    1. Hi Peter,
      klingt irgendwie nach einem Fehler in einer Windows-Systemdatei. Vielleicht versuchst du mal die betroffenene PCs mittels dism zu reparieren und wenn alles nichts hilft musst du sie wohl oder übel mal neu aufsetzen.
      lg, David

  4. Hi – und DANKE für die detaillierte Anleitung. Es klappt nur, wenn das Protokoll aktiviert ist. Wie kann ich verhindernt, dass das Protokoll zu groß wird? Gibt’s dafür eine Routine?

  5. Funktioniert einwandfrei, vielen Dank!
    Habe es erst mit dem älteren Artikel versucht und bin nach erstem Scheitern dann auf diesen hier gestoßen.
    VG

  6. Kann es sein das es unter 11 nicht geht habe in der Aufgabenplanung keinen Eintrag DriverFrameworks-UserMode. Genau genommen nicht mal Anwendungs- und Dienstprotokolle

    1. @Simon: Dir sind die Schritte der obigen Anleitung durcheinandergeraten. Genau lesen: Die Navigation zum Punkt DriverFrameworks-UserMode soll in der Ereignisanzeige durchgeführt werden, nicht in der Aufgabenplanung. Ich habe die Anleitung heute unter Windows 11 exakt wie beschrieben befolgen können. Und es funktioniert auf Anhieb perfekt, ich bin begeistert!
      @David: Vielen Dank, sehr nützlich!

      1. Freut mich, dass es geklappt hat und danke für die Info bez. Windows 11.
        Somit funktioniert das Procedere auch mit Windows 11 und ich kann den Blog-Titel dahingehend anpassen.

  7. Danke für die sehr gute Anleitung.
    Ich habe jedoch das Problem, dass ich einen hardwareverschlüsselten USB-Stick verwende.
    Das heißt, dass das USB-Device erkannt wird und dann schon die Aufgabe ausgeführt wird, obwohl der Speicher noch nicht verfügbar ist.

    Hat hier jemand einen Rat für mich?

    1. Ich würde das scripten. Entweder du baust eine einfache Verzögerung ein, die mindestens so lange ist, wie es dauert, bis der Speicher mit der Verschlüsselung bereit ist, oder du prüfst intervall-mäßig, ob das Laufwerk bereits vorhanden ist. (Z.B. mit powershell und Test-Path L:) Alle Infos dazu findest du mittels google.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.