desinstallation application MBSA en VB

Le
test
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 & "ootcimv2")
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 sur le debut de la chaine
''Microsoft Baseline Security Analyzer' pour s' executer

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 .
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
mdnews
Le #20793441
Mon, 30 Nov 2009 08:34:22 -0800 (PST), test
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 & "rootcimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product " _
& "Where Name = 'Microsoft Baseline Security Analyzer 2.0.1'")



Ne comparer que la partie commune (ici les 35 premières lettres) avec
la fonction Left()

... Where Left(Name, 35) = _
'Microsoft Baseline Security Analyzer'")

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 sur le debut de la chaine
''Microsoft Baseline Security Analyzer' pour s' executer...



Les fonctions Left(), Right(), Mid() sont communes à plein de
langages. Ne pas oublier les fonctions Trim qui permettent de
supprimer les espaces avant/arrière, source d'erreurs.

J'ai essayé de remplacé le numero de versions par un *



Non, ça c'est un 'joker' pour système d'exploitation

fais des tests avec LIKE mais je tourne en rond sans aucun succés ...



Non plus, LIKE c'est pour le SQL

Par contre avec les expression régulière ceci serait aussi valable
si on veut affiner
^Microsoft Baseline Security Analyzer.+$

^ = Début de la chaine
$ = Fin de la chaine
.+ = N'importe quel caractère en quantité illimité.
on peut restreindre à des valeurs numériques
en remplaçant .+ par [d+.] ce qui signifie "des chiffre OU des
points" (2.0.1 valable aussi bien que 99.1.0.10 etc)
ou restreindre encore plus
d+.d+.d+ (= chiffres . chiffres . chiffres)


Télécharge l'indispensable fichier d'aide VBScript
"Technologies de Microsoft Windows Script"
Publicité
Poster une réponse
Anonyme