如何使用 PowerShell 删除 Windows 10 应用程序
Windows 10 包含许多内置应用程序,从计算器和天气等基本应用程序到邮件和照片等更多以任务为中心的应用程序。虽然这些内置应用程序适用于大多数情况,但在商业环境中,它们可能不合适、多余或不受支持。很多时候,这些应用程序会给我带来安全风险。这就是为什么在这篇文章中,您将学习如何使用 PowerShell 删除 Windows 10 应用程序。
问题是微软并没有让卸载其中一些应用程序变得容易。使用正常方法卸载时没有卸载按钮。必须通过 PowerShell 卸载内置应用程序。
免责声明:请勿卸载所有 Windows 10 应用程序。其中许多是 Windows 10“体验”所需要的,而其他程序(例如 .NET 框架)则是其他程序所需要的。请谨慎选择要卸载的应用程序。不过,您可以重新安装所有应用程序,并且您将在本文末尾看到 PowerShell 命令。
使用 PowerShell 查找 Windows 10 应用程序
实际上我们将使用两种不同类型的应用程序。
- AppX 软件包 - 随操作系统一起安装的应用程序
- AppX 配置包 - 作为用户配置文件首次设置的一部分安装的应用程序。
第一步是获取已安装应用程序的清单。为此,请使用提升的权限启动 PowerShell 并运行命令 Get-AppxPackage。这将返回 Windows 10 上安装的所有 AppX 软件包。
PS C:\> Get-AppxPackage
Name : Microsoft.NET.Native.Framework.1.6
Publisher : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture : X64
ResourceId :
Version : 1.6.24903.0
PackageFullName : Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
InstallLocation : C:\Program Files\WindowsApps\Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
IsFramework : True
PackageFamilyName : Microsoft.NET.Native.Framework.1.6_8wekyb3d8bbwe
PublisherId : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
IsPartiallyStaged : False
SignatureKind : Store
Status : Ok
--snip--
预配的包的命令略有不同,并且还需要 Online 参数。 Online 参数从当前在线操作系统中提取软件包,而不是从本地目录中的映像文件中提取软件包。这将显示有关每个包的所有详细信息的列表。
PS C:\> Get-AppxProvisionedPackage -Online
DisplayName : Microsoft.3DBuilder
Version : 16.1.1431.0
Architecture : neutral
ResourceId : ~
PackageName : Microsoft.3DBuilder_16.1.1431.0_neutral_~_8wekyb3d8bbwe
Regions :
DisplayName : Microsoft.BingWeather
Version : 4.31.11905.0
Architecture : neutral
ResourceId : ~
PackageName : Microsoft.BingWeather_4.31.11905.0_neutral_~_8wekyb3d8bbwe
Regions :
--snip--缩小应用程序列表范围
这两个命令都会生成相当详细的列表,您感兴趣的只是 Appx 包的名称和已配置包的显示名称,如下所示。
为了使事情变得更简单,请通过Select-Object管道传输结果,并选择Name和DisplayName属性。这将为您提供一个如下所示的列表。这个列表更容易使用。
Get-AppxPackage | Select-Object Name现在您可以查看要删除的 Windows 10 应用程序。此时,您需要列出要删除的所有软件包的名称。一种方法是复制并粘贴您感兴趣的 Windows 10 应用程序,然后以这种方式删除并构建列表。我使用的一个技巧是将结果保存到文本文件,然后在 Visual Studio Code 中打开该文件。例如:
Get-AppxPackage | Select-object name | Out-File apps.txt | code apps.txt在外部编辑器中,开始构建一系列要删除的应用程序。
$ProvisionedAppPackageNames = @()现在您已经有了列表,您可以开始构建 PowerShell 脚本了。
使用 PowerShell 删除 Windows 10 应用程序
您现在应该在编辑器中定义了一个数组,其中包含您想要删除的所有 AppX 包的名称。我在下面举了一个例子。
$ProvisionedAppPackageNames = @(
"Microsoft.BingFinance"
"Microsoft.BingNews"
"Microsoft.BingSports"
"Microsoft.BingWeather"
"Microsoft.MicrosoftOfficeHub"
"Microsoft.Getstarted"
"microsoft.windowscommunicationsapps" # Mail,Calendar
"Microsoft.Office.OneNote"
"Microsoft.People"
"Microsoft.SkypeApp"
"Microsoft.XboxApp"
"Microsoft.ZuneMusic"
"Microsoft.ZuneVideo"
)使用要删除的特定应用程序填充数组后,您现在可以使用 Remove-AppXProvisionedPackage cmdlet 和 Remove-AppXPackage 设置 foreach 循环来逐步卸载要卸载的每个包代码> cmdlet。
foreach ($ProvisionedAppName in $ProvisionedAppPackageNames) {
Get-AppxPackage -Name $ProvisionedAppName -AllUsers | Remove-AppxPackage
Get-AppXProvisionedPackage -Online | Where-Object DisplayName -EQ $ProvisionedAppName | Remove-AppxProvisionedPackage -Online
}如果出于任何原因您想要重新安装所有应用程序,您始终可以使用 add-AppXPackage cmdlet 通过指定其应用程序清单 XML 文件来重新注册 Windows 10 应用程序,如下所示。
Get-AppxPackage -AllUsers | Foreach {
Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
}概括
尽管 Microsoft 并没有让卸载 Windows 10 应用程序变得容易,但您可以看到 PowerShell 始终可供您使用!