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:ToolsWinDDKToolsdevconamd64devcon
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:ToolsWinDDKToolsdevconamd64>devcon hwids =net
PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_104&1A5F56DF&0&00E5
Name: HP NC107i PCIe Gigabit Server Adapter
Hardware IDs:
PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10
PCIVEN_14E4&DEV_165B&SUBSYS_705D103C
PCIVEN_14E4&DEV_165B&CC_020000
PCIVEN_14E4&DEV_165B&CC_0200
Compatible IDs:
PCIVEN_14E4&DEV_165B&REV_10
PCIVEN_14E4&DEV_165B
PCIVEN_14E4&CC_020000
PCIVEN_14E4&CC_0200
PCIVEN_14E4
PCICC_020000
PCICC_0200PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_104&29F6B73F&0&00E4
Name: HP NC107i PCIe Gigabit Server Adapter #2
Hardware IDs:
PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10
PCIVEN_14E4&DEV_165B&SUBSYS_705D103C
PCIVEN_14E4&DEV_165B&CC_020000
PCIVEN_14E4&DEV_165B&CC_0200
Compatible IDs:
PCIVEN_14E4&DEV_165B&REV_10
PCIVEN_14E4&DEV_165B
PCIVEN_14E4&CC_020000
PCIVEN_14E4&CC_0200
PCIVEN_14E4
PCICC_020000
PCICC_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:ToolsWinDDKToolsdevconamd64>devcon status „PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10“
PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_104&1A5F56DF&0&00E5
Name: HP NC107i PCIe Gigabit Server Adapter
Driver is running.PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_104&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:ToolsWinDDKToolsdevconamd64>devcon remove „PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10“
C:ToolsWinDDKToolsdevconamd64>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:ToolsWinDDKToolsdevconamd64>devcon status „PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_10“
PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_104&1A5F56DF&0&00E5
Name: HP NC107i PCIe Gigabit Server Adapter
Driver is running.PCIVEN_14E4&DEV_165B&SUBSYS_705D103C&REV_104&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