Gerät aktivieren/deaktivieren

  • Hallo,
    ich hatte letztens eine Frage zum ausführen von Konsolenbefehlen.
    Dabei ging es um das auslesen des Status einer W-LAN-Verbindung.

    Nun habe ich daraus ein kleines Script gebastelt, mit dem man den Adapter ein- oder ausschalten kann und das einem den momentanen Status anzeigt.
    Dieses Script kann man - wenn man es etwas ändert - auch für andere Geräte (z.B. USB-Kardreader) verwenden.

    Eventuell kann ja einer mal so etwas brauchen.

    MfG:
    BigRox

  • Hallo,

    das bereitgestellte Skript hat bei mir leider immer gleich mehrere Treiber auf einmal angesprochen, weil diese der gleichen / ähnlichen ID zugeordnet sind. Dadurch wurde z.B. nicht nur der WLAN Treiber sondern auch der Grafikkartentreiber und der Soundtreiber deaktiviert.

    Ich habe nun die letzen zwei Tage damit verbracht das Skript von BigRox unter Windows 10 Pro (x64) zum laufen zu bekommen.

    Hier die Lösung die bei mir funktioniert hat, evtl. hilft es ja jemand anderem:

    Vorbereitung

    1. Aktuelle Devcon.exe herunterladen (Klick mich)*

    2. Die Datei exportieren und umbenennen (siehe Anleitung im SuperUser Forum)

    3. Die Devcon.exe nach "C:\Windows\System32" kopieren oder als Umgebungsvariable setzen (Klick mich)

    4. CMD oder Powershell als Administrator starten und den Befehl devcon.exe findall * ausführen

    5. Die gewünschte ID finden

    6. Diese in das Skript einbauen

    Anpassung

    Bei mir musste ich die Hardware-ID nach diesem Syntax eingeben:

    devcon.exe enable PCI\VEN_168C"&"DEV_0013"&"SUBSYS_2051168C"&"REV_01

    devcon.exe disable PCI\VEN_168C"&"DEV_0013"&"SUBSYS_2051168C"&"REV_01

    devcon.exe status PCI\VEN_168C"&"DEV_0013"&"SUBSYS_2051168C"&"REV_01

    Im Gegensatz zu den Befehlen im Skript wird also nicht die ganze Hardware-ID in "Gänsefüßchen" gesetzt, sondern lediglich die UND-Zeichen.

    Die Backslashes ("\") musste ich hingegen nicht "escapen".

    Zeile 29 des Skriptes würde demnach so aussehen:

    $Geraet = '"PCI\VEN_168C"&"DEV_0013"&"SUBSYS_2051168C"&"REV_01"'

    PS: Ja ich weiß dass der Thread sehr alt ist, daher ja auch die Anleitung wie es mit der aktuellen Windows Version funktioniert.

    BigRox vielen Dank für dein tolles Skript, da meine WLAN-Karte gelegentlich nicht korrekt erkannt wird, musste ich bisher immer das Notebook neu starten oder das Gerät umständlich, über den Gerätemanager deaktivieren und erneut aktivieren.

    Ich hätte ja gerne noch eine Funktion um direkt in der GUI das gewünschte Gerät, per DropDown Menü auswählen zu können aber das habe ich auf die Schnelle nicht hinbekommen... Falls ich das doch noch schaffe, lade ich es hier hoch.

    * Ich hätte die 80KB große Datei gerne auch direkt hier hochgeladen, dies ist seitens Microsoft jedoch nicht gestattet.

    VG

    Getti

  • Im Gegensatz zu den Befehlen im Skript wird also nicht die ganze Hardware-ID in "Gänsefüßchen" gesetzt, sondern lediglich die UND-Zeichen.

    Die Backslashes ("\") musste ich hingegen nicht "escapen".

    Spezielle Zeichen (für die Eingabeaufforderung) in Gänsefüßchen setzen oder sie zu escapen sind zwei verschiedene Dinge... escaped sähe Zeile 29 z.B. so aus...

    $Geraet = 'PCI\VEN_168C^&DEV_0013^&SUBSYS_2051168C^&REV_01'

    Hier ein Bsp. in der Eingabeaufforderung:

    Einmal editiert, zuletzt von Bitnugger (3. August 2018 um 17:48)

  • Hallo Bitnugger,

    gemeint war einfach nur dass die Backslashes weder doppelt angegeben, noch in Gänsefüßchen / doppelte Anführungszeichen gesetzt, oder escaped werden müssen.

    Der Hinweis auf den Backslash kam auch nur weil ich bei meiner Recherche über diesen Eintrag gestolpert war und es dort hieß dass der Backslash nicht korrekt interpretiert wird, daher hatte ich damit rum experimentiert und am Ende festgestellt dass er vernachlässigt werden kann.

    Habe deine Variante mit dem escapen (in der CMD) eben auch noch mal getestet, diese funktioniert genau so gut, allerdings darf auch hier die gesamte ID nicht in Gänsefüßchen stehen.

    Wie bereits geschrieben, wäre eine Lösung bei der man das gewünschte Gerät einfach direkt im Skript auswählen kann am schönsten aber dies übersteigt momentan meine Fähigkeiten.

    VG

    Getti

  • Meiner Meinung nach ist das ganze Rumgehampel mit devcon.exe keine Lösung, sondern ein Workaround.

    Zu einer Lösung führen würde, wenn du in der Ereignisanzeige nach Fehlern bz. WLAN suchst und falls vorhanden, diese zu beheben. Evtl. hilft es aber auch schon, den WlanSvc-Dienst verzögert zu starten.