PCFreak Logo (c) Der PCFreak

DevCon der Kommandozeilen Gerätemanager für Windows

Mit dem kostenlos ehältlichen Tool „devcon.exe“ von Microsoft erhält man den Gerätemanager für die Kommandozeile. Absolut brauchbar ist das Programm z.B. wenn man eine WLAN-Karte hat, die nicht per Software aktiviert/deaktiviert werden kann. Kein Problem mit devcon.exe.
Das Programm kann auch remote auf andere Windows-Rechner zugreifen und ist somit auch ein gutes Werkzeug für Administratoren größerer Netzwerke.

Hier mal eine kurze Anleitung um einen Einstieg zu finden. Als Beispiel wollen wir mal versuchen, die Netzwerkkarte eines Windows Systems per devcon.exe zu deaktivieren und hinterher wieder zu aktivieren.
Es handelt sich um die im Gerätemanager angezeigte Netzwerkkarte „VMware Accelerated AMD PCNet Adapter“.

Als erstes ermitteln wir alle vorhandenen „classes“ mit dem Befehl:
devcon classes

Wir erhalten eine Liste von ca. 50 sog. Klassen u. A. auch die Klasse
„Net : Network adapters“

Um nun alle Geräte der Klasse Net anzuzeigen geben benutzen wir folgenden Befehl:
devcon listclass Net

und erhalten in etwa diese Ausgabe:

C:\>devcon listclass Net
Listing 8 device(s) for setup class „Net“ (Network adapters).
PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\3&61AAA01&0&88 : VMware Accelerated AMD PCNet Adapter
ROOT\MS_L2TPMINIPORT\0000 : WAN Miniport (L2TP)
ROOT\MS_NDISWANIP\0000 : WAN Miniport (IP)
ROOT\MS_PPPOEMINIPORT\0000 : WAN Miniport (PPPOE)
ROOT\MS_PPTPMINIPORT\0000 : WAN Miniport (PPTP)
ROOT\MS_PSCHEDMP\0000 : AMD PCNET Family PCI Ethernet Adapter – Packet Scheduler Miniport
ROOT\MS_PSCHEDMP\0001 : WAN Miniport (IP) – Packet Scheduler Miniport
ROOT\MS_PTIMINIPORT\0000 : Direct Parallel

Uns interessiert natürlich der erste Eintrag:
PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\3&61AAA01&0&88 : VMware Accelerated AMD PCNet Adapter

Wir benötigen den String bis zum ersten „&“ ( PCI\VEN_1022) um über den Befehl
devcon hwids PCI/VEN_1022
die Hardware-IDs zu ermitteln. Wir erhalten ca. folgende Ausgabe:

C:\>devcon hwids PCI\VEN_1022
PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\3&61AAA01&0&88
Name: VMware Accelerated AMD PCNet Adapter
Hardware ID’s:
PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10
PCI\VEN_1022&DEV_2000&SUBSYS_20001022
PCI\VEN_1022&DEV_2000&CC_020000
PCI\VEN_1022&DEV_2000&CC_0200
Compatible ID’s:
PCI\VEN_1022&DEV_2000&REV_10
PCI\VEN_1022&DEV_2000
PCI\VEN_1022&CC_020000
PCI\VEN_1022&CC_0200
PCI\VEN_1022
PCI\CC_020000
PCI\CC_0200
1 matching device(s) found.

Mit der ersten Hardware ID versuchen wir nun das Geräte zu deaktivieren:
C:\>devcon disable „PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10“
PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\3&61AAA01&0&88 : Disabled
1 device(s) disabled.

Es hat funktioniert. Umgekehrt kann man das Gerät natürlich auch wieder aktivieren/enablen.
C:\>devcon enable „PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10“
PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\3&61AAA01&0&88 : Enabled
1 device(s) enabled.

So nun haben wir also die Möglichkeit das Gerät per Befehl zu aktivieren/deaktivieren, wenn wir das Ganze jetzt noch in eine kleine Batch-Datei packen, haben wir ein schönes Tool, welches man z.B. für eine WLAN-Aktivierung/Deaktivierung einsetzen kann:

:: devconcmd.cmd
:: simple program to enable/disable devices
:: needs devcon.exe from Microsoft
:: http://support.microsoft.com/?kbid=311272
:: Tested on Windows XP SP2
:: —————————————————————–
@echo off
SETLOCAL
:START
CLS
echo VMware Accelerated AMD PCNet Adapter
echo ————————————
echo [E]nable [D]isable or e[X]it
echo.
SET /P selection=Please enter your choice:
if %selection%x==ex goto ENABLE
if %selection%x==Ex goto NETENABLE
if %selection%x==dx goto NETDISABLE
if %selection%x==Dx goto NETDISABLE
GOTO END
:NETENABLE
devcon enable „PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10“
GOTO END
:NETDISABLE
devcon disable „PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10“
GOTO END
:END
ENDLOCAL

Links:
The DevCon command-line utility functions as an alternative to Device Manager
DevCon.exe download

1 Comment so far

  1. Horst on Juni 6th, 2008

    Vielen Dank für die prima Erklärung.

    Meine Anwendung ist ein USB Infrarot-Adapter, der im aktiven Zustand den Ruhezustand unter WinXP SP3 verhindert. Und falls ich dann den aktiven Adapter aus dem USB-Port ziehe, erzeuge ich einen Neustart.

    Jetzt kann ich sehr schön den Adapter bedienen, ohne jedesmal in den Gerätemanager zu steigen.

    Gruß
    Horst