You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Remove-AppxPackage不支持Get-Help显示的-AllUsers参数及替代方案

可靠删除指定开头的Appx包:-AllUsers参数失效问题及替代方案

问题场景

多数系统执行以下命令可批量删除所有以指定字符串开头的Appx包:

Get-AppxPackage -all MyApp* | Remove-AppxPackage -AllUsers

但在两台Windows系统中执行时触发报错:

PS C:\Users\Administrator> Get-AppxPackage -all CDI* | Remove-AppxPackage -AllUsers
Remove-AppxPackage : A parameter cannot be found that matches parameter name 'AllUsers'.
At line:1 char:48
+ Get-AppxPackage -all CDI* | Remove-AppxPackage -AllUsers
+                                                ~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Remove-AppxPackage], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand

矛盾的帮助信息

执行Get-Help Remove-AppxPackage -Parameter AllUsers时,系统显示该参数存在:

Get-Help Remove-AppxPackage -Parameter AllUsers

-AllUsers [<SwitchParameter>]
    {{Fill AllUsers Description}}
    
    Required?                    false
    Position?                    named
    Default value                False
    Accept pipeline input?       False
    Accept wildcard characters?  false

相关版本信息

  • 命令版本:
PS C:\Users\Administrator> Get-Command Remove-AppxPackage

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Remove-AppxPackage                                 1.0        Appx
  • 操作系统版本:
> [System.Environment]::OSVersion.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      14393  0
  • Appx模块版本:
PS > Get-Module -ListAvailable Appx


    Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules


ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   2.0.0.0    Appx                                {Add-AppxPackage, Get-AppxPackage, Get-AppxPackageManifest...

问题

是否存在路径问题?有无可替代-AllUsers参数效果的方法?


原因分析与替代方案

核心原因

Windows 10 1607(Build 14393)的Remove-AppxPackage命令实际不支持-AllUsers参数——该参数是在Windows 10 1709及后续版本才正式引入的。帮助文档提前更新了参数描述,但对应版本的命令未实现该功能,导致文档与实际行为矛盾。

替代实现方法

要实现删除所有用户的指定Appx包,可通过遍历系统用户SID的方式逐个卸载:

# 获取所有目标Appx包
$targetPackages = Get-AppxPackage -AllUsers CDI*

# 遍历每个包,对所有用户执行卸载
foreach ($pkg in $targetPackages) {
    $pkgFullName = $pkg.PackageFullName
    # 读取注册表中安装该包的所有用户SID
    Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\$pkgFullName" | ForEach-Object {
        $userSid = $_.PSChildName
        # 针对指定用户SID卸载包
        Remove-AppxPackage -Package $pkgFullName -User $userSid
    }
}

验证卸载结果

执行以下命令确认目标包已从所有用户账户中删除:

Get-AppxPackage -AllUsers CDI*

若返回空结果,则说明卸载成功。

内容的提问来源于stack exchange,提问作者Liam Kelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 04:48:16