1 pièce(s) jointe(s)
[VBS WMI] HotFix Windows + Excel
Bonjour,
je fai un script chargé de me récupéré pas mal d'info sur des machines distantes (processus et services en cours d'exec...) et j'ai un problème en ce qui concerne la vérification des correctifs présents sur les machines. En effet, lorsque j'ai le résultat mise en page dans Excel de ma requete WMI j'ai quelques chose de tres étrange (voir pj). On dirai qu'il me test plusieur fois le meme correctif. Ce que j'aimerais, c'est que le script test le contenu dans la variable "correctif" en le comparant au résultat de la requete wmi afin de voir si il est bien présent sur la machine, et qu'en fonction du résultat il insere un "OK" ou un "NOK" dans mon excel ds des cellules spécifique de mon excel...
Je ne voi pa mon erreur pouvez vous l'aidez svp?
Bonne journée
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
|
line = objTextFile.Readline
insertion = Split(line,",",-1, 1)
StrNomdemachine = insertion(0)
strComputer = insertion(1)
proco = insertion(2)
service = insertion(3)
correctif = insertion(5)
insertionprocessus = Split(proco,";",-1, 1)
insertionservice = Split(service,";",-1, 1)
insertioncorrectif = Split(correctif,";",-1, 1)
' + les autres déclarations pour la création de mon excel et l'ouverture du CSV
' contenant mes machines, processus, services et correctif a tester!
For Each correctif in insertioncorrectif
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuickFixes = objWMIService.ExecQuery _
("Select * from Win32_QuickFixEngineering")
For Each objQuickFix in colQuickFixes
if correctif = objQuickFix.HotFixID then
feuille.Range("F" & cptcorrect) = correctif
feuille.Range("G" & cptcorrect) = "OK"
feuille.Range("F" & cptcorrect).Interior.ColorIndex = 4
feuille.Range("G" & cptcorrect).Interior.ColorIndex = 4
else
feuille.Range("F" & cptcorrect) = correctif
feuille.Range("G" & cptcorrect) = "NOK"
feuille.Range("F" & cptcorrect).Interior.ColorIndex = 3
feuille.Range("G" & cptcorrect).Interior.ColorIndex = 3
end if
cptcorrect = cptcorrect + 1
Next
next |
Résolution et remerciements
Merci beaucoup, l'utilisation de la variable booleenne resoud parfaitement le probleme !
Pour l'autre solution j'ai essayé mais je me retrouvais avec une nouvelle erreur d'affichage donc, je me contenterai de la premiere solution.
Encore merci et bonne fin de journée !
J.christophe