Comparaison de chaine VB

Résolu/Fermé
Signaler
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
2 décembre 2009
-
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
2 décembre 2009
-
Bonjour à tous ,
pas doué pour deux sous en dev , je dois desinstaller MBSA de tout mon les clients de mon parc...

J'ai trouvé le script ci dessous chez Microsoft qui , après modification avec le nom de l'appli ( 'Microsoft Baseline Security Analyzer 2.0.1') ici effectue cette desinstallation

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product " _
& "Where Name = 'Microsoft Baseline Security Analyzer 2.0.1'")

For Each objSoftware in colSoftware
objSoftware.Uninstall()
Next

le souci que je rencontre est que plusieurs versions de MBSA cohexistent dans le parc et que ce script ne fonctionne qu' avec la version 2.0.1.
que modifier pour que ce script fonctionne avec toutes les versions ?
en fait je voudrais qu 'il ne se base que surle debut de la chaine ''Microsoft Baseline Security Analyzer'

J'ai essayé de remplacé le numero de versions par un * , fais des tests avec LIKE mais je tourne en rond sans aucun succés ...

merci d'avance si vous avez une idée pour contourner le pb ou orienter ma reflexion .

2 réponses

Messages postés
1219
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
457
Bonjour,

Pourquoi ne pas simplement retourner le nom de tous les produits installés dans te reqete WMI puis tester ce nom ds la boucle For....each ? Ca donnerait qqchose comme ça :
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product'")
For Each objSoftware in colSoftware
If Instr(objSoftware.Name, "Baseline Security Analyzer") then
 objSoftware.Uninstall()
End if
Next 
Messages postés
2
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
2 décembre 2009

Bonjour Tompols,

Merci pour ton aide ,j'ai testé ton script ca marche parfaitement ...

j'avais bien trouvé une autre solution qui etait de dupliquer le script fourni par ms avec le nom de chaque version présente mais ta solution est beaucoup plus propre que ma bidouille .

un petit souci de - merci encore :)