Installare un driver di rete su Hyper-V 2012 da riga di comando

Avete installato Hyper-V 2012 Server R2 ma la vostra scheda di rete non viene riconosciuta?
Situazione tipo: Avete qualche ora di tempo libero e decidete di impiegarla per provare Hyper-V.
Non parlo del ruolo Hyper-V di Windows Server 2008 o 2012, mi riferisco alla versione dura e pura, anche detta bare metal di Hyper-V.
Scaricate l’immagine ISO, installate Hyper-V e al primo avvio ricevete un simpatico avviso che vi comunica che nessuna scheda di rete è stata rilevata!
A questo punto avete un bel hypervisor pronto all’uso, ma isolato dal mondo…

Nel mio caso si trattava di una scheda Gigabit Ethernet Intel 82567LM-3 che con lspci viene
riconosciuta come:
Ethernet controller: Intel Corporation 82567LM-3 Gigabit Network Connection (rev 02)

Cercando un pò in rete, ho scoperto che è possibile installare su Hyper-V 2012 i normali driver per Windows Server 2012. Ecco come:
Ingredienti
Un computer con installato Hyper-V 2012 che abbia almeno una porta USB funzionante
Un computer che abbia una connessione a internet e una porta USB funzionante
Una chiavetta USB o altra periferica USB di tipo mass storage
Per prima cosa bisogna scaricare il driver corretto sul computer collegato a internet, nel mio caso era questo.
Sulla console di Hyper-V non avrete una gui a disposizione, per cui dovrete decomprimere l’archivio
eseguibile con qualche altro mezzo. Io ho usato Archive Manager sotto Linux, sicuramente potete
riuscirci anche da riga di comando con unzip o su un pc con Windows e 7-Zip o equivalente.

Copiate il contenuto dell’archivio contenente il vostro driver su una cartella della chiavetta usb.

Inserite la chiavetta sul computer nel quale gira Hyper-V e lanciate il comando diskpart

poi scrivete list volume
e cercate la vostra chiave usb nell’elenco. Non preoccupatevi se sotto la voce State dovesse comparire la dicitura Unusable
Adesso dovete selezionare il numero di volume corrispondente alla vostra chiave usb
select volume n

e poi assegnargli una lettera di unità con assign

uscite da diskpart con exit

Dovrete copiare i file del driver dalla cartella sulla chiavetta usb ad una una cartella temporanea sul disco principale di Hyper-V che con buona probabilità sarà C:
ora, supponendo che abbiate assegnato l’unità G: alla vostra chiavetta e che i file si trovino nella cartella G:\DRIVER potete copiarli con questi comandi:
md c:\temp
xcopy g:\driver\*.* c:\temp /s

Infine utilizzate il comando pnputil per l’installazione, facendolo puntare al file INF della vostra periferica.
Il driver della mia scheda di rete comprendeva diversi file INF, nel dubbio li ho installati tutti quanti:
pnputil -i -a \temp\e1c64x64.inf
pnputil -i -a \temp\e1d64x64.inf
pnputil -i -a \temp\e1r64x64.inf
pnputil -i -a \temp\e1s64x64.inf
pnputil -i -a \temp\v1q64x64.inf

Dovreste ottenere un messaggio che dica, tra le altre cose, Successfully installed.
Potete verificare che il driver sia stato installando anche richiedendo l’elenco dei driver e filtrando per qualcosa che sapete essere sicuramente presente nella descrizione del
driver, nel mio caso sapevo che la dicitura E1000 sarebbe sicuramente stata presente nella descrizione.
sc query type= driver | findstr E1000

Voilà, riavviate Hyper-V (opzione 12 di SConfig.cmd) e la vostra scheda di rete verrà riconosciuta.
P.S. Nel caso aveste bisogno di “smontare” la chiavetta USB senza dover riavviare Hyper-V o chiudere la sessione, potete farlo sempre tramite diskpart dando il comando remove all dismount
dopo aver selezionato il volume corrispondente alla vostra chiave usb con select volume.