我将以管理员身份打开PowerShell
。
我跑步:
Get-Package *notepad*
PowerShell向我显示 Notepad ++(32位x86)
然后我运行:
Get-Package *notepad* | Uninstall-Package -Force
PowerShell没有卸载Notepad ++
我尝试了一些程序,但它们仍然都已安装。为什么?
编辑:如您所见,@ m0lochwalker PowerShell的行为就像该程序已卸载一样。
尝试使用您的环境,不会卸载任何东西。
@Ranadip Dutta:Get-WmiObject -class Win32_Product
仅适用于32位,如果是64位,则不返回Notepad ++。基本上,它根本不返回任何64位:
我需要更全面的东西,使其可以同时适用于32位和64位
答案 0 :(得分:0)
Get-WmiObject -class Win32_Product
是必须灭绝的古老恐龙。
Get-Package
可能已损坏,我将其标记为official Microsoft repository
与此同时,Mike F Robbins帮助我了解了Win32_Product
有多烂,他把我带到了awesome post,您可以在其中复制代码并将其粘贴到test.ps1
文件中并进行安装通过. .\test.ps1
现在,您已经安装了Get-Software
方法,该方法将帮助您轻松地进入程序(与Win32_Product
不同)。
现在我可以使用:
Get-Software | Where-Object { $_.DisplayName -like "*Notepad*" } | Format-Table
要查看Notepad ++,我可以使用UninstallString
不是我想要的,而是我找到的最接近的工作。 如果发现更好的答复,请随时添加新答复。
编辑:确实存在一个错误,Microsoft正在解决它。
现在您可以使用:
get-package *notepad* |% { & $_.Meta.Attributes["UninstallString"]}