«Get-Package * notepad * | Uninstall-Package -Force» не работает - PullRequest
0 голосов
/ 18 февраля 2019

Я открываю PowerShell как Администратор.

Я запускаю:

Get-Package *notepad*

И PowerShell показывает мне Блокнот ++ (32-разрядный x86)

Затем я запускаю:

Get-Package *notepad* | Uninstall-Package -Force

И PowerShell не удаляет Блокнот ++

Я пробовал с несколькими программами, они все еще установлены.Почему?

РЕДАКТИРОВАТЬ: , как вы можете видеть @ m0lochwalker PowerShell работает так, как будто программа была удалена.

enter image description here

Попробуйте в своей среде, ничего не удаляется.

@ Ranadip Dutta: Get-WmiObject -class Win32_Product работает только для 32-разрядных ине возвращает Notepad ++, если он 64-битный;По сути, он вообще не возвращает 64-битный код:

enter image description here

Мне нужно нечто более всеобъемлющее, которое могло бы работать как с 32-битным, так и с 64-битным интерфейсом.бит

1 Ответ

0 голосов
/ 19 февраля 2019

Get-WmiObject -class Win32_Product - старый динозавр, который должен умереть.

Get-Package, вероятно, сломан, и я пометил его в официальный репозиторий Microsoft

Тем временем Майк Ф. Роббинс помог мне понять, насколько гнилой Win32_Product, и он привел меня к этому потрясающему сообщению , где вы можете скопировать, вставить код в файл test.ps1 и установить его в свойСистема PowerShell, выполнив . .\test.ps1

Теперь вы установили метод Get-Software, который поможет вам погрузиться в свои программы со скоростью света (не как Win32_Product).

Теперь я могу использовать:

Get-Software | Where-Object { $_.DisplayName -like "*Notepad*" } | Format-Table

, чтобы увидеть Блокнот ++, и я могу удалить его, используя UninstallString

enter image description here

Это не то, что я хотел, а самая близкая рабочая вещь, которую я нашел.Не стесняйтесь добавлять новый ответ, если найдете лучший.

РЕДАКТИРОВАТЬ: Действительно, была ошибка, и Microsoft устраняет ее.

На данный момент вы можете использовать:

get-package *notepad* |% { & $_.Meta.Attributes["UninstallString"]}
...