[VBS] Requete WMI pour récupération des adr. DNS
Bonjour,
Je préfère prévenir, je suis complètement débutant en la matière.
Je cherche à extraire les adresses des serveurs DNS de la première carte réseau et uniquement de celle-ci et les mettre dans une variable pour traitement ultérieur.
Voici le code que j'ai honteusement repompé du site de Microsoft :
http://www.microsoft.com/technet/scr..._atnc_dns.mspx
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNicConfigs = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objNicConfig In colNicConfigs
strDNSSuffixSO = ""
strDNSServerSO = ""
strDNSHostName = objNicConfig.DNSHostName
strIndex = objNicConfig.Index
strDescription = objNicConfig.Description
strDNSDomain = objNicConfig.DNSDomain
strDNSSuffixSO = ""
If Not IsNull(objNicConfig.DNSDomainSuffixSearchOrder) Then
For Each strDNSSuffix In objNicConfig.DNSDomainSuffixSearchOrder
strDNSSuffixSO = strDNSSuffixSO & VbCrLf & String(37, " ") & _
strDNSSuffix
Next
End If
strDNSServerSO = ""
If Not IsNull(objNicConfig.DNSServerSearchOrder) Then
For Each strDNSServer In objNicConfig.DNSServerSearchOrder
strDNSServerSO = strDNSServerSO & VbCrLf & String(37, " ") & _
strDNSServer
Next
End If
strDomainDNSRegistrationEnabled = _
objNicConfig.DomainDNSRegistrationEnabled
strFullDNSRegistrationEnabled = objNicConfig.FullDNSRegistrationEnabled
strDNSSettings = strDNSSettings & VbCrLf & VbCrLf & _
" Network Adapter " & strIndex & VbCrLf & _
" " & strDescription & VbCrLf & VbCrLf & _
" DNS Domain: " & strDNSDomain & VbCrLf & _
" DNS Domain Suffix Search Order:" & strDNSSuffixSO & VbCrLf & _
" DNS Server Search Order:" & strDNSServerSO & VbCrLf & _
" Domain DNS Registration Enabled: " & _
strDomainDNSRegistrationEnabled & VbCrLf & _
" Full DNS Registration Enabled: " & _
strFullDNSRegistrationEnabled
Next
WScript.Echo VbCrLf & "DNS Settings" & VbCrLf & VbCrLf & _
"Host Name: " & strDNSHostName & strDNSSettings |
Et que j'ai réadapté pour mes besoins :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNicConfigs = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objNicConfig In colNicConfigs
strDNSServerSO = ""
If Not IsNull(objNicConfig.DNSServerSearchOrder) Then
For Each strDNSServer In objNicConfig.DNSServerSearchOrder
strDNSServerSO = strDNSServerSO & _
strDNSServer
Next
WScript.Echo strDNSServerSO
End If
Next |
Si j'utilise le code de Microsoft, je récupère les adresses de toutes les cartes réseaux qui se trouvent sur mon poste.
En gros, je pense qu'il faut éviter la boucle "For Each objNicConfig In colNicConfigs" mais j'avoue que je sèche.
Des suggestions ?
Merci d'avance.