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.
3 Réponses :
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
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?
Vous pouvez également essayer les commandes de package.
get-package *chrome* | uninstall-package -whatif
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.
Essaye ça
wmic product where "name like 'Google Chrome'" call uninstall use '' on program name and "" on name
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.