1
votes

Pourquoi WMIC me donne-t-il une requête non valide lors de la tentative de désinstallation?

J'essaye de désinstaller des programmes réguliers via PowerShell, et tout ce que j'ai essayé de mettre dans la section name="program name" semble échouer.

J'ai suivi ce guide ici pour savoir comment le faire.

J'ai essayé de supprimer Google Chrome comme exemple de test. Ce n'est pas vraiment que je veux supprimer, juste une cible de test que je peux facilement et rapidement réinstaller.

J'ai fait un premier test sur une autre machine équipée de Google Chrome, mais je ne suis pas apparue dans cette liste. Il avait également cette erreur. Mais maintenant, j'ai testé sur ma machine principale, où Google Chrome apparaît dans la liste.

PS C:\WINDOWS\system32> wmic product get name                                                                           Name
Microsoft Visual C++ 2010  x64 Redistributable - 10.0.40219
Microsoft Visual C++ 2010  x86 Redistributable - 10.0.40219
Microsoft Visual Studio 2010 Tools for Office Runtime (x64)
Google Chrome
Google Update Helper
Microsoft SQL Server 2008 Native Client

PS C:\WINDOWS\system32> wmic product where name="Google Chrome" call uninstall
ERROR:
Description = Invalid query

Certaines entrées de product get name non pertinentes ont été supprimées pour que la liste reste courte.

Je m'attends à ce que WMIC désinstalle le programme, mais j'obtiens à la place l'erreur trouvée ci-dessus.


2 commentaires

Avez-vous examiné un commutateur —uninstall de chrome.exe? D'autres .exe en ont probablement un aussi.


Je le ferai si je dois le faire, mais Chrome n'est pas à la fois ma vraie cible (la vraie cible est un bloatware HP), et même si cela faisait partie de ma vraie cible, ce ne serait pas le seul. Le problème avec le fait d'aller directement pour chrome.exe est que j'aurais besoin d'un répertoire répertorié pour chaque programme.


3 Réponses :


0
votes

La commande WMIC requiert le filtre entre guillemets: wmic product where "name='Google Chrome'"

Powershell expose également l'applet de commande Get-WMIObject (alias gwmi ) dont la syntaxe est plus gwmi :

$chrome = gwmi win32_product -filter "name='Google Chrome'"
$chrome.Uninstall


1 commentaires

Testé votre code exact (copié-collé, pas de fautes de frappe), et ne semble rien faire. Aucune sortie, aucune erreur et Chrome est toujours installé. Cela a-t-il une préférence pour les msis comme le fait js2010?



1
votes

Vous pouvez également essayer les commandes de package.

get-package *chrome* | uninstall-package -whatif


2 commentaires

Au début, j'ai pensé que c'était parfait et j'ai appuyé sur Accepter la réponse trop rapidement, lol. Mais malheureusement, cela ne semble pas fonctionner. Au moins, il ne manque pas d'entrées comme WMIC. Il trouve avec succès le package chrome, et avec -what s'il détecte chrome et sa version, mais après avoir supprimé -whatif, il ne désinstalle pas réellement chrome.


Oui, j'ai essayé plusieurs programmes maintenant, y compris VLC, Notepad ++ et 7-zip. Aucun d'entre eux n'est désinstallé, ils sont tous toujours présents, apparaissent dans la liste get-packge lorsqu'ils sont réexécutés et peuvent être lancés.



0
votes

Essaye ça

wmic product where "name like 'Google Chrome'" call uninstall

use '' on program name and "" on name


0 commentaires