recuperation d'IP sur serveur distant, probleme de compteur

recuperation d'IP sur serveur distant, probleme de compteur - VB/VBA/VBS - Programmation

Marsh Posté le 31-03-2009 à 15:28:52    

Bonjour a tous!!!!
 
Voila, j'ai un script qui me pose un peu de probleme:  
tout d'abord je vais vous expliquer celui ci:
 
D'apres une liste de nom de machine (fichier txt) le script monte un lecteur reseau sur le serveur sous la lettre U.
une fois celuis ci monté je check si un répertoire "sources" existe  
                 -s'il existe copie de fichier dedans
                 -si non creation du repertoire plus copie
une fois cette tache créée j'ai besoin de recuperer la configuration IP (type ipconfig/all) sur ma machine avec le nom de la machine en titre
 
jusqu'ici tout va bien....
Mais la j'ai un probleme les machines peuvent avoir X adresse IP, X adresse MAC, X suffixe DNS.....  
voici mon code :
 
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2" )
Set IPConfigSet = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True" )
 
Set result = objFSO.CreateTextFile(Computer&".txt",8)
 
 
On error resume next
 
 
If Err.Number<>0 Then
 result.write(" ---- non accessible ----" )
Else
i = 1
msgbox i
        for each IPConfig in IPConfigSet
                If Not IsNull(IPConfig.IPAddress) Then
                        For i=LBound(IPConfig.IPAddress) _
                 to UBound(IPConfig.IPAddress)
                result.write " Configuration réseau de l'ordinateur " & ComputerName & vbcrlf & vbcrlf
  result.write  " Nom Machine  " & vbtab & " : " & IPConfig.DNSHostName & vbcrlf & vbcrlf
   
  result.write  " Carte        " & vbtab & " : " & IPConfig.Description(i) & vbcrlf
   
                result.write  " adresse MAC  " & vbtab & " : " & IPConfig.MACAddress(i) & vbcrlf
  result.write  " adresse IP   " & vbtab & " : " & IPConfig.IPAddress(i) & vbcrlf
  result.write  " Masque       " & vbtab & " : " & IPConfig.IPSubnet(i) & vbcrlf
  result.write  " passerelle   " & vbtab & " : " & IPConfig.DefaultIPGateway(i) & vbcrlf
   
  result.write  " Serveur DNS  " & vbtab & " : " & IPConfig.DNSServerSearchOrder(i) & vbcrlf
                result.write  "              " & vbtab & vbtab & " : " & IPConfig.DNSServerSearchOrder(i) & vbcrlf
                result.write  "              " & vbtab & vbtab & " : " & IPConfig.DNSServerSearchOrder(i) & vbcrlf
  result.write  " Suffixe DNS  " & vbtab & vbtab & " : " & IPConfig.DNSDomainSuffixSearchOrder (i) & vbcrlf
  'result.write  "              " & vbtab & vbtab & " : " & IPConfig.DNSDomainSuffixSearchOrder (2) & vbcrlf
  'result.write  "              " & vbtab & vbtab & " : " & IPConfig.DNSDomainSuffixSearchOrder (3) & vbcrlf
  result.write  " Serveur WINS " & vbtab & " : " & IPConfig.WINSPrimaryServer(1) & vbcrlf
  result.write  "              " & vbtab & " : " & IPConfig.WINSSecondaryServer(1) & vbcrlf & vbcrlf
  result.write  "Configuration "
                i = i + 1
                msgbox i            
                        Next
                end IF
        next
 
End If
 
result.close
 
''''''''''''''''''''''''''
wend

 
Et la 2erreurs:
1 mon script plante, il n'y a que jusqu'a l'adress mac dans mon fichier text
j'ai bien l'impression que ce n'est pas la bonne methode pour récupérer les infos IP(multiples)
 
Merci de votre aide!!!!!
 
Ps: je suis un VRAI debutant en scripting


Message édité par nautico le 01-04-2009 à 12:26:56
Reply

Marsh Posté le 31-03-2009 à 15:28:52   

Reply

Marsh Posté le 31-03-2009 à 15:42:35    

a quoi correspond "computer" ? une variable ?
si c'est le cas elle a pas l'air d'etre definie

Reply

Marsh Posté le 31-03-2009 à 15:52:38    

c'est bien une variable definie au debut de mon script
 
voici le code complet pour avoir tout ;) :
 
 
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim objFSO,MyFile, f, ConfIP
Dim i
 
 
Set objFSO= CreateObject("Scripting.FileSystemObject" )
Set objFile = objFSO.OpenTextFile("liste_machines.txt" )
Set logobjFile = objFSO.CreateTextFile("rapport.txt",2)
Set Left_serv = objFSO.CreateTextFile("machines_non_connectées.txt",2)
Set WshNetwork = WScript.CreateObject("WScript.Network" )
Set WshShell = CreateObject("Wscript.Shell" )
 
logobjFile.Write "********** DEBUT DE TRAITEMENT ************"&vbCrLf&vbCrLf
 
msgbox "Le traitement va être lancé. Avant de cliquer sur OK assurez vous que vous n'avez pas de lecteur sous la lettre T (utilisée par le script)"&vbCrLf&vbCrLf&"Quand vous cliquerez OK le traitement démarrera. Il peut durer un certain temps (cela depend du fichier liste_machines)."&vbCrLf&"quand le traitement sera terminé, une boite de dialogue viendra vous avertir pour faire un bilan de l'action!"&vbCrLf&vbCrLf&"^_^",,"A vos marque, prêts..."
 
 
'debut du traitement
'Do While (objFile.Read(1)="\" )
while Not objFile.AtEndOfStream
  Computer=objFile.ReadLine
  On error resume next
 'montage du lecteur reseau
 WshNetwork.MapNetworkDrive "u:", "\\"&Computer&"\D$"
 if (Err.Number)<>0 Then
 'ecriture dans le fichier de log rapport.txt en cas d'impossibilité de connexion
  logobjFile.Write Date&" - "&Time&" : "&"\"&Computer&" : erreur de connexion! fichier ajouté a la liste dans le fichier machines_non_connectes"&vbCrLf
  Left_serv.Write "\"&Computer&vbCrLf
   Err.Clear   ' Efface l'erreur.
  else
 
'check de l'existence du rep "sources"'
   'copie des dossier de migrations'
   If (objFSO.FolderExists("u:\sources" )) Then
       objFSO.CopyFolder "\\uc227984\migration\MIGHDS","u:/sources/MIGHDS"
      objFSO.CopyFolder "\\uc227984\migration\robocopy","u:/sources/robocopy"
      objFSO.CopyFolder "\\uc227984\migration\confIP","u:/sources/confIP"
     'ecriture dans le fichier log rapport.txt'
    logobjFile.Write Date&" - "&Time&" : "&"\"&Computer&" : copie des folders"&vbCrLf
   else
     'creation du repertoire copie des dossiers'
      objFSO.CreateFolder("u:\sources" )
      objFSO.CopyFolder "\\uc227984\migration\MIGHDS","u:/sources/MIGHDS"
      objFSO.CopyFolder "\\uc227984\migration\robocopy","u:/sources/robocopy"
      objFSO.CopyFolder "\\uc227984\migration\confIP","u:/sources/confIP"
 
                  logobjFile.Write Date&" - "&Time&" : "&"\"&Computer&" : creation et copie des folders"&vbCrLf
   
 
         End If
 
  End if
 
 'deconnexion du lecteur reseau
 WshNetwork.RemoveNetworkDrive "u:"
 
        'recuperation des configuration des serveur de la liste
'''''''''''''''''''''''    
 
 
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2" )
Set IPConfigSet = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True" )
 
Set result = objFSO.CreateTextFile(Computer&".txt",8)
 
 
On error resume next
 
 
If Err.Number<>0 Then
 result.write(" ---- non accessible ----" )
Else
i = 1
msgbox i
        for each IPConfig in IPConfigSet
                If Not IsNull(IPConfig.IPAddress) Then
                        For i=LBound(IPConfig.IPAddress) _
                 to UBound(IPConfig.IPAddress)
                result.write " Configuration réseau de l'ordinateur " & ComputerName & vbcrlf & vbcrlf
  result.write  " Nom Machine  " & vbtab & " : " & IPConfig.DNSHostName & vbcrlf & vbcrlf
   
  result.write  " Carte        " & vbtab & " : " & IPConfig.Description(1) & vbcrlf
   
                result.write  " adresse MAC  " & vbtab & " : " & IPConfig.MACAddress(1) & vbcrlf
  result.write  " adresse IP   " & vbtab & " : " & IPConfig.IPAddress(1) & vbcrlf
  result.write  " Masque       " & vbtab & " : " & IPConfig.IPSubnet(1) & vbcrlf
  result.write  " passerelle   " & vbtab & " : " & IPConfig.DefaultIPGateway(1) & vbcrlf
   
                'result.write  " Serveur DHCP " & vbtab & " : " & IPConfig.DHCPServer & vbcrlf & vbcrlf
  result.write  " Serveur DNS  " & vbtab & " : " & IPConfig.DNSServerSearchOrder(1) & vbcrlf
                result.write  "              " & vbtab & vbtab & " : " & IPConfig.DNSServerSearchOrder(1) & vbcrlf
                result.write  "              " & vbtab & vbtab & " : " & IPConfig.DNSServerSearchOrder(2) & vbcrlf
  result.write  " Suffixe DNS  " & vbtab & vbtab & " : " & IPConfig.DNSDomainSuffixSearchOrder (1) & vbcrlf
  result.write  "              " & vbtab & vbtab & " : " & IPConfig.DNSDomainSuffixSearchOrder (2) & vbcrlf
  result.write  "              " & vbtab & vbtab & " : " & IPConfig.DNSDomainSuffixSearchOrder (3) & vbcrlf
  result.write  " Serveur WINS " & vbtab & " : " & IPConfig.WINSPrimaryServer(1) & vbcrlf
  result.write  "              " & vbtab & " : " & IPConfig.WINSSecondaryServer(1) & vbcrlf & vbcrlf
  result.write  "Configuration "
                i = i + 1
                msgbox i            
                        Next
                end IF
        next
 
End If
 
result.close
 
''''''''''''''''''''''''''
wend
logobjFile.close
objFile.close
Left_serv.close
Msgbox "Fini! deux fichiers ont été générés : rapport.txt et liste_machines_non_connectées.txt"


Message édité par nautico le 31-03-2009 à 16:02:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed