[POWERSHELL] Désinstaller un logiciel .MSI

Hello à tous !
Nous pouvons être amener à désinstaller des logiciels.
Prenons un cas concret, Microsoft PowerBI, qui a une mise à jour tous les mois.
Partons sur une commande WMI :

Get-WmiObject -class win32_product 

Cette commande nous donne tous les logiciels installés sur le poste :

Liste des logiciels présents sur le poste

Content !……Non, il est vrai que cela nous donne beaucoup d’information.
Essayons de filtrer ca. Ajoutons un”|” après notre dernière commande (ce qui nous permettra de travailler avec le résultat situé devant le “|”. Trouvons notre fameux Power BI :

Get-WmiObject -class win32_product | Where-Object { $_.Name -like "*Power BI*"} 

Là, nous cherchons dans notre fameuse liste les logiciels qui contiennent “Power BI”. Les “*” signalent juste qu’il peut y avoir du texte avant et après le texte recherché. Regardons ce que ca donne :

Nous récupérons uniquement les logiciels où Power BI est présent.

Nous nous approchons mais ce n’est pas encore cela.
Il nous reste à le désinstaller.
Ajoutons encore un “|” suivi de la dernière commande :

Get-WmiObject -class win32_product | Where-Object { _.Name -like "*Power BI*"} | ForEach-Object {_.Uninstall()}

Que nous dit ce dernier morceau ?
Il nous dit que pour chaque objet ayant dans son nom “Power BI”, nous le désinstallons.

Et ca, c’est formidable !

Bien sûr avec l’IdentifyingNumber, nous pouvons faire un msiexec /X {IdentifyingNumber} pour désinstaller notre .MSI.