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

如何用PowerShell卸载所有用户中版本不达标的AppxPackage

企业环境下Appx包版本统一与漏洞修复方案

问题背景

  • 对AppxPackages的痛点:企业环境中,未登录用户的Appx应用无法自动更新,导致Qualys这类漏洞扫描工具会检测到旧版本的安全漏洞,且不同用户的应用版本不一致,难以统一管理。
  • Appx工作机制理解:用户登录PC时,会安装当前发布版本的Appx应用(比如计算器包名Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe);若用户长期不登录,即便应用发布了漏洞补丁,也得等用户再次登录、应用商店完成更新后,补丁才会生效,无法直接给未登录用户更新应用。

需求目标

用PowerShell实现:检查所有用户的AppxPackage版本,对未安装指定补丁版本的用户卸载对应应用(因为无法为未登录用户更新,只能先卸载旧版本,待用户下次登录时自动安装最新版)。

初始脚本问题

你写的初始脚本存在逻辑漏洞:Get-AppxPackage -AllUsers会返回所有用户的所有版本包,直接把结果赋值给$version会导致版本值混乱,而且Remove-AppxPackage无法正确指定要卸载的旧版本包。

[version]$version=(get-appxpackage -Name *Microsoft.WindowsCalculator* -Allusers).Version

If ($Version -eq [version]"11.2210.0.0")
{
    "Minimum version met"
}
ElseIf ($Version -lt [version]"11.2210.0.0")
{
Remove-AppxPackage -Package $version -Allusers
}

修正后的PowerShell脚本

以下脚本会遍历所有用户的目标Appx包,筛选出版本低于要求的包并逐个卸载:

# 定义目标应用名称和最低要求版本
$targetAppName = "*Microsoft.WindowsCalculator*"
$requiredVersion = [version]"11.2210.0.0"

# 获取所有用户的目标Appx包实例
$allAppPackages = Get-AppxPackage -Name $targetAppName -AllUsers

foreach ($package in $allAppPackages) {
    # 单独对比每个包的版本
    if ($package.Version -lt $requiredVersion) {
        Write-Host "卸载旧版本包:$($package.PackageFullName)"
        # 通过包全名精准卸载旧版本,-AllUsers会移除所有用户下的该版本包
        Remove-AppxPackage -Package $package.PackageFullName -AllUsers -ErrorAction SilentlyContinue
    } else {
        Write-Host "包版本符合要求:$($package.PackageFullName)"
    }
}

脚本说明

  1. 遍历单个包实例:Get-AppxPackage -AllUsers返回的是每个用户的每个Appx包单独实例,通过foreach逐个处理,避免版本值混乱。
  2. 精准版本对比:针对每个包的Version属性单独做对比,确保判断准确。
  3. 指定包卸载:用PackageFullName(即包的完整名称,比如Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe)作为卸载参数,保证只卸载目标旧版本包,不会误删符合要求的版本。
  4. 容错处理:-ErrorAction SilentlyContinue可以避免因权限问题、包已被卸载等情况导致脚本中断。

补充提示

  • 卸载旧版本后,用户下次登录PC时,Windows会自动从应用商店安装最新版本的应用(需确保企业环境允许应用商店自动更新)。
  • 如果需要批量处理多台设备,可以把这个脚本通过组策略或者MDM工具推送执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:10:30