Comparaison de chaine VB

Résolu/Fermé
dafo Messages postés 2 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 2 décembre 2009 - 30 nov. 2009 à 17:27
dafo Messages postés 2 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 2 décembre 2009 - 2 déc. 2009 à 15:53
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 .
A voir également:

2 réponses

tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
30 nov. 2009 à 17:54
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 
0
dafo Messages postés 2 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 2 décembre 2009
2 déc. 2009 à 15:53
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 :)
0