Eine nachträglich aktivierte bzw. installierte Netzwerkkarte (oder andere Hardware) kann in einer Microsoft Windows Server 2008 (R2) Core Installation oder einer Microsoft Hyper-V Server 2008 (R2) Installation einiges an Spass bedeuten.
In meinem Fall verfügen die betroffenen Server über zwei onboard Broadcom-Netzwerkkarten des gleichen Typs (d.h. es wird der gleiche Treiber verwendet). Jeweils eine der Karten war zum Installationszeitpunkt über das BIOS der Server deaktiviert. Gegen allen Erwartungen verweigerte die nachträglich aktivierte Netzwerkkarte den Dienst. Ein Remote-Zugriff auf den Gerätemanager unserer Hyper-V Server 2008 R2 Installation zeigte, dass die nachträglich aktivierte Karte einen Fehler 31 aufwies (das Gerät funktioniert nicht ordnungsgemäß, da Windows die für das Gerät erforderlichen Treiber nicht laden kann). Auf einem Standard-Windows hätte ich nun das Gerät neu installiert. Leider ist das ohne einen lokalen Gerätemanager nicht so ohne Weiteres möglich. Der Remote-Gerätemanager dient nur zur Ansicht.
Eine mögliche Lösung ist die Verwendung von Microsoft DevCon aus dem WDK (Windows Driver Kit). Der Download der .iso-Datei ist über 600 MB schwer. Es gibt die devcon.exe auch zum Einzeldownload – jedoch würde ich hier zumindest zur nötigen Vorsicht raten. Nach der Installation kann man das WDK entweder auf CD brennen oder – sofern man noch über wenigstens eine funktionierende Netzwerkkarte verfügt – entpacken und auf den Server kopieren.
Nach dem Download und der Installation des WDK befindet sich devcon unter dem ausgewählten Installationspfad wie folgt wieder (es sind drei Versionen für ia64, amd64 und i386 verfügbar):
C:\Tools\WinDDK\Tools\devcon\amd64\devcon
DevCon scheint insgesamt nicht sehr beliebt zu sein. Die meisten Probleme entstehen wohl bei der Suche nach der passenden Hardware-ID der betroffenen Hardware. Wie so oft führen viele Wege nach Rom. Im Fall der nicht funktionierenden Netzwerkkarte halte ich das folgende Vorgehen für gut:
Der folgende Befehl listet uns die Hardware auf, die der Klasse net entspricht:
C:\Tools\WinDDK\Tools\devcon\amd64>devcon hwids =net
PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10\4&1A5F56DF&0&00E5
Name: HP NC107i PCIe Gigabit Server Adapter
Hardware IDs:
PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10
PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C
PCI\VEN_14E4&DEV_165B&CC_020000
PCI\VEN_14E4&DEV_165B&CC_0200
Compatible IDs:
PCI\VEN_14E4&DEV_165B&REV_10
PCI\VEN_14E4&DEV_165B
PCI\VEN_14E4&CC_020000
PCI\VEN_14E4&CC_0200
PCI\VEN_14E4
PCI\CC_020000
PCI\CC_0200PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10\4&29F6B73F&0&00E4
Name: HP NC107i PCIe Gigabit Server Adapter #2
Hardware IDs:
PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10
PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C
PCI\VEN_14E4&DEV_165B&CC_020000
PCI\VEN_14E4&DEV_165B&CC_0200
Compatible IDs:
PCI\VEN_14E4&DEV_165B&REV_10
PCI\VEN_14E4&DEV_165B
PCI\VEN_14E4&CC_020000
PCI\VEN_14E4&CC_0200
PCI\VEN_14E4
PCI\CC_020000
PCI\CC_0200
2 matching device(s) found.
“devcon classes” gibt übrigens eine Liste der verfügbaren Geräte-Klassen aus.
Nun können wir uns den Status der Geräte anzeigen lassen:
C:\Tools\WinDDK\Tools\devcon\amd64>devcon status “PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10″
PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10\4&1A5F56DF&0&00E5
Name: HP NC107i PCIe Gigabit Server Adapter
Driver is running.PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10\4&29F6B73F&0&00E4
Name: HP NC107i PCIe Gigabit Server Adapter #2
The device has the following problem: 31
2 matching device(s) found.
Das Gerät zu deaktivieren und zu reaktivieren brachte keinen Erfolg – daher werden beide Netzwerkkarten entfernt:
C:\Tools\WinDDK\Tools\devcon\amd64>devcon remove “PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10″
C:\Tools\WinDDK\Tools\devcon\amd64>devcon reboot
Der “devcon reboot” war in meinem Fall leider notwendig. Ein einfaches “devcon rescan” erkannte die beiden Karten zwar, sorgte jedoch bei einer der Karte für einen neuen Fehler. Nach dem Neustart wurden die Karten nun korrekt erkannt. Man kann das System natürlich auch über andere Wege neustarten lassen ;-).
C:\Tools\WinDDK\Tools\devcon\amd64>devcon status “PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10″
PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10\4&1A5F56DF&0&00E5
Name: HP NC107i PCIe Gigabit Server Adapter
Driver is running.PCI\VEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10\4&29F6B73F&0&00E4
Name: HP NC107i PCIe Gigabit Server Adapter #2
Driver is running.
Hilfreich beim Arbeiten mit DevCon sind die folgenden Seiten:
- DevCon Beispiele (Microsoft msdn) http://msdn.microsoft.com/de-de/library/ff544746.aspx
- Weitergehende Infos über die Device Identification Strings (Microsoft msdn) http://msdn.microsoft.com/de-de/library/ff541224.aspx