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
Et que j'ai réadapté pour mes besoins :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
Partager