Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

desinstallation application MBSA en VB

1 réponse
Avatar
test
Bonjour =E0 tous ,
pas dou=E9 pour deux sous en dev , je dois desinstaller MBSA de tout mon
les clients de mon parc...

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

strComputer =3D "."
Set objWMIService =3D GetObject("winmgmts:" _
& "{impersonationLevel=3Dimpersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSoftware =3D objWMIService.ExecQuery _
("Select * from Win32_Product " _
& "Where Name =3D '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=E9 de remplac=E9 le numero de versions par un * , fais des
tests avec LIKE mais je tourne en rond sans aucun succ=E9s ...

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

1 réponse

Avatar
mdnews
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"