IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

[VBS] Requete WMI pour récupération des adr. DNS


Sujet :

VBScript

  1. #1
    Candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [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 : 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
    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
    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.

  2. #2
    Candidat au Club
    Inscrit en
    Août 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    C'est bon j'ai trouvé.

    Si jamais ca intéresse quelqu'un.
    En fait je fais une boucle qui regarde si les entrées sont vide ou pas.
    En gros, si on carte réseau branchée obtient des adresses des serveurs DNS,
    je garde, sinon (carte réseau non branchée), je passe :

    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
    	On Error Resume Next
    			strComputer = "."
    			dim AddservDns
    			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
    				End If
    				If strDNSServerSO<> "" Then
    				AddservDns=strDNSServerSO
    				End If
    			Next
    WScript.Echo AddservDns

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script pour modifier des entrées DNS d'une carte réseau
    Par arnaudperfect dans le forum VBScript
    Réponses: 0
    Dernier message: 15/12/2010, 14h59
  2. Requete SQL pour trouver des anniversaires
    Par hugo69 dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/09/2010, 14h43
  3. Réponses: 2
    Dernier message: 15/02/2010, 01h07
  4. Requete SQL pour faire des ratios [ACCESS 2002]
    Par jacques64 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 22/12/2008, 16h18
  5. [DEBUTANT]Récupération des paramètres DNS
    Par tripper.dim dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 16/10/2007, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo