使用Powershell完整安装的程序列表

时间:2018-11-05 19:39:51

标签: windows powershell

我们使用以下找到的at this link命令来尝试获取Windows中已安装程序的完整列表:

Get-WmiObject -Class Win32_Product 

但是,与“控制面板”中的已安装程序列表相比,该列表给出了已安装程序的不完整列表。

我们的初衷是拥有一个可以交互并最终自动卸载计算机上安装的bloatware的脚本。但是,上面的命令缺少一些我们也希望卸载的命令。

还有另外一个Class我们可以调查以获取完整列表吗?还是完全可以使用另一个命令? 任何见解都受到赞赏

1 个答案:

答案 0 :(得分:2)

Get-Package类相比,Win32_Product cmdlet提供的信息更多。这是Windows 10系统上两者之间的区别:

PS C:\> Get-WmiObject -Class Win32_Product | Where-Object Name -Match TOSHIBA | Format-Table

IdentifyingNumber                      Name                        Vendor              Version      Caption
-----------------                      ----                        ------              -------      -------
{1E6A96A1-2BAB-43EF-8087-30437593C66C} TOSHIBA System Driver       Toshiba Corporation 2.00.0005    TOSHIBA System Driver
{1515F5E3-29EA-4CD1-A981-032D88880F09} TOSHIBA Audio Enhancement   Toshiba Corporation 3.0.0.9      TOSHIBA Audio Enhancement
{716C8275-A4A9-48CB-88C0-9829334CA3C5} Toshiba Quality Application TOSHIBA             1.0.9.7      Toshiba Quality Application
{E4C7D9D7-19D4-4623-AF0C-EA313C466411} Toshiba TEMPRO              Toshiba Europe GmbH 5.0.0        Toshiba TEMPRO
{72EFCFA8-3923-451D-AF52-7CE9D87BC2A1} TOSHIBA eco Utility         Toshiba Corporation 3.0.1.6403   TOSHIBA eco Utility
{B040D5C9-C9AA-430A-A44E-696656012E61} TOSHIBA System Settings     Toshiba Corporation 3.0.3.6400   TOSHIBA System Settings
{0B39C39A-3ECE-4582-9C91-842D22819A24} TOSHIBA Display Utility     Toshiba Corporation 2.0.1.0      TOSHIBA Display Utility
{EDC626BA-3E59-44C4-96B4-9066E29BF600} TOSHIBA Service Station     Toshiba Corporation 3.1.0.2      TOSHIBA Service Station
{26BB68BB-CF93-4A12-BC6D-A3B6F53AC8D9} TOSHIBA Password Utility    Toshiba Corporation 8.1.1.0      TOSHIBA Password Utility
{B507386D-1F61-4E55-B05B-F56ACB0086B3} TOSHIBA PC Health Monitor   Toshiba Corporation 5.01.02.6400 TOSHIBA PC Health Monitor

这包括额外的条目。您应该能够看到它包含来自Programs提供程序以及msi提供程序的条目。

PS C:\> Get-Package *TOSHIBA*

Name                           Version          Source                           ProviderName
----                           -------          ------                           ------------
TOSHIBA System Driver          2.0.5            C:\Program Files (x86)\TOSHIB... msi
TOSHIBA Audio Enhancement      3.0.0.9          C:\Program Files\TOSHIBA\TOSH... msi
Toshiba Quality Application    1.0.9.7          C:\Program Files (x86)\Toshib... msi
Toshiba TEMPRO                 5.0.0            C:\Program Files (x86)\Toshib... msi
TOSHIBA eco Utility            3.0.1.6403       C:\Program Files\TOSHIBA\Teco\   msi
TOSHIBA System Settings        3.0.3.6400       C:\Program Files\TOSHIBA\Syst... msi
TOSHIBA Display Utility        2.0.1.0          C:\Program Files\Toshiba\TOSH... msi
TOSHIBA Service Station        3.1.0.2                                           msi
TOSHIBA Password Utility       8.1.1.0          C:\Program Files\Toshiba\Pass... msi
TOSHIBA Password Utility       8.1.1.0                                           Programs
TOSHIBA PC Health Monitor      5.1.2.6400       C:\Program Files\TOSHIBA\TPHM\   msi
TOSHIBA Manuals                10.20                                             Programs
TOSHIBA Recovery Media Creator 3.3.00.8003                                       Programs

实际上,从Programs提供商处删除软件包要比一开始听起来困难。那里的条目通常会有一个卸载命令或一个安静的卸载命令,但不能保证。对于存在安静的卸载字符串的情况,则可以执行以下操作:

function Uninstall-Program($Package) {

    $Command = foreach ($i in (0..($Package.Meta.Attributes.Keys.Count - 1))) {
        if ($Package.Meta.Attributes.Keys[$i] -eq 'QuietUninstallString') {
            $Package.Meta.Attributes.Values[$i]
        }  
    }

    Invoke-Expression "& $Command"
}

然后您可以通过以下方式卸载:

$Package = Get-Package "botframework-emulator"
Uninstall-Program $Package