Sub VersionPiloteReseau()
On Error Resume Next
StrComputer = "192.168.1.1" ' ou "." pour local
UserName = "DOMAINE\Administrator"
Password = "MotDePasse"
'***** Récupération du service reseau de la carte
'Ordinateur distant
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator" )
Set objWMIService = SWBemlocator.ConnectServer(StrComputer, "root\CIMV2", UserName, Password)
Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE", , 48)
'Si ordinateur local
If Err.Number <> 0 Then
Set IPConfigSet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & StrComputer).ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE" )
End If
'Si plusieurs cartes reseaux, on teste qu'on prend bien celle qui a la meme IP demandée, et on recupere le nom du service
For Each IPConfig In IPConfigSet
If IPConfig.IPAddress(Min) = StrComputer Then ServiceReseau = IPConfig.ServiceName(Min)
Next
'***** Recupération du chemin du fichier de driver en fonction du nom du service reseau
Const HKEY_LOCAL_MACHINE = &H80000002
'Ordinateur distant
Set objWMIService = SWBemlocator.ConnectServer(StrComputer, "\root\default", UserName, Password)
Set oReg = objWMIService.Get("StdRegProv" )
'Si ordinateur local
If Err.Number <> 0 Then
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & StrComputer & "\root\default:StdRegProv" )
End If
'Récupération du chemin de la valeur chaine
Clé = "SYSTEM\ControlSet001\Services\" & ServiceReseau
ValeurClé = "ImagePath"
oReg.GetStringValue HKEY_LOCAL_MACHINE, Clé, ValeurClé, StrValue
CheminFichier = StrValue
CheminFichier = Replace(CheminFichier, "\", "\\" )
NomFichier = "C:\\Windows\\" & CheminFichier
'***** Recupération de la version du pilote
'Ordinateur distant
Set objWMIService = SWBemlocator.ConnectServer(StrComputer, "root\CIMV2", UserName, Password)
Set colFiles = objWMIService.ExecQuery("Select * from CIM_Datafile Where name = '" & NomFichier & "'" )
'Si ordinateur local
If Err.Number <> 0 Then
Set colFiles = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & StrComputer).ExecQuery("Select * from CIM_Datafile Where name = '" & NomFichier & "'" )
End If
'On recupère la version du pilote.
For Each objFile In colFiles
VersionPilote = objFile.Version(Min)
Next
End Sub