Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1697 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS] nslookup via shell

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBS] nslookup via shell

n°2215926
Dan__124
Posté le 13-01-2014 à 13:10:40  profilanswer
 

Bonjour a tous :hello:
 
J'ai créé un script VBS qui ping des machines (PC, imprimantes,...etc) listées dans un fichier Excel.
 
Donc j'explique brièvement ce que j'ai fait jusqu'à présent :
 
Le script fait démarrer à la 2ème ligne du fichier excel (1ère ligne réservée à la mise en page), je fais appel a tout ce qui me faut pour la suite, ouverture du fichier Excel...etc
Ensuite je démarre une boucle qui prend en compte la 1ère colonne et qui à pour condition de s'arrêter lorsque la cellule renvoi la valeur "END".
je déclare mon ip qui se situe dans la cellule à la variable strComputer, j'applique la mise en page en 1ère ligne, je fais appel a Shell pour effectuer le ping et je créé un filtre pour éviter que le script ne cherche a faire un ping sur les cellules vides ou invalides.J'ai aussi créé un compteur pour savoir combien de fois la machine n'a pas répondu au ping (compteur réinitialisé si la machine répond). hop sa tourne en boucle ! Pour finir Excel se ferme et sauvegarde mon fichier.
 
Voilà le resultat :
http://image.noelshack.com/minis/2014/03/1389612628-sans-titre.png
 
Maintenant je souhaite affichier le nom de la machine via nslookup mais je n'y arrive franchement pas. J'ai testé le WMI mais il s'est avéré que le ping via WMI ne passe pas bien sur tout les PC et les imprimantes, donc j'ai peur que passer par WMI pose des problèmes.
 
Voici le code :

Code :
  1. Set objExcel = CreateObject("Excel.Application" )
  2. objExcel.Visible = True
  3. intRow = 2
  4. Set Fso = CreateObject("Scripting.FileSystemObject" )
  5. Set objWorkbook = objExcel.Workbooks.Open("C:\File_Name.xlsx" )
  6. Set InputFile = objWorkbook
  7. '# Debut Boucle
  8. Do Until objExcel.Cells(intRow,1).Value = "END"
  9. strComputer = objExcel.Cells(intRow, 1).Value
  10. objExcel.Cells(1, 1).Value = "Machine Name"
  11. objExcel.Cells(1, 2).Value = "Status"
  12. objExcel.Cells(1, 3).Value = "Down Count"
  13. objExcel.Cells(1, 4).Value = "Name"
  14. On Error Resume Next
  15. '# Declaration Variables
  16. Set WshShell = WScript.CreateObject("WScript.Shell" )
  17. Ping = WshShell.Run("ping -n 1 " & strComputer, 0, True)
  18. ip172=InStr(1,strComputer,"172" )
  19. ip193=InStr(1,strComputer,"193" )
  20. If ip172 > 0 Then
  21.  For Each objItem in Ping
  22.  Select Case Ping
  23.  Case 0 objExcel.Cells(intRow, 2).Value = "Up"
  24.  objExcel.Cells(intRow, 3).Value = ""
  25.  Case 1 objExcel.Cells(intRow, 2).Value = "Down"
  26.  objExcel.Cells(intRow, 3).Value = objExcel.Cells(intRow, 3).Value + 1
  27.  End Select
  28.  intRow = intRow + 1
  29. Next
  30. Elseif ip193 > 0 Then
  31.  For Each objItem in Ping
  32.  Select Case Ping
  33.  Case 0 objExcel.Cells(intRow, 2).Value = "Up"
  34.  objExcel.Cells(intRow, 3).Value = ""
  35.  Case 1 objExcel.Cells(intRow, 2).Value = "Down"
  36.  objExcel.Cells(intRow, 3).Value = objExcel.Cells(intRow, 3).Value + 1
  37.  End Select
  38.  intRow = intRow + 1
  39. Next
  40. Else intRow = intRow + 1
  41. End if
  42. Loop
  43. '# Fin Boucle
  44. '# Mise en page du fichier EXCEL
  45. objExcel.Range("A1:D1" ).Select
  46. objExcel.Selection.Interior.ColorIndex = 19
  47. objExcel.Selection.Font.ColorIndex = 11
  48. objExcel.Selection.Font.Bold = True
  49. objExcel.Cells.EntireColumn.AutoFit
  50. Set objWorkbook = Nothing
  51. '# Fermeture et sauvegarde du fichier
  52. objExcel.ActiveWorkbook.Close true
  53. objExcel.Quit
  54. Set wsExcel = Nothing
  55. Set wbExcel = Nothing
  56. Set appExcel = Nothing


 
Donc si quelqu'un de généreux peut m'aider je suis preneur :)


Message édité par Dan__124 le 13-01-2014 à 13:19:20
mood
Publicité
Posté le 13-01-2014 à 13:10:40  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBS] nslookup via shell

 

Sujets relatifs
[Shell/Batch] Recherche d'une chaîne de caractère dans un fichier[Shell/Batch] Propriétaire d'une video
aide VBSJe n'arrive lancer mon script shell via crontab
[Résolu]Script Shell simple mais comment le fairearret du poste à 20H - tache planifiée + VBS
[VBS] retour d'information sur variable d'un run !!![VBS] Variable concaténé suivant decompte du compteur
Besoin d'aide pour petits scripts VBSshell_exec ne fonctionne pas
Plus de sujets relatifs à : [VBS] nslookup via shell


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR