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

PowerShell中校验符合版本要求的AppX包已安装的条件编写方法

问题根因

你写的判断逻辑存在两个核心错误,导致运行不稳定:

  • Get-AppxPackage Microsoft.DesktopAppInstaller | Select Version 返回的是带Version属性的PSCustomObject对象,不是纯版本值,不同类型的对象直接比较结果不可控
  • 使用-eq判断相等不符合需求,你需要的是大于等于指定版本,就算值取对了,更高版本的App Installer也会误触发更新流程

修复方案

直接使用[version]类型做版本大小比较,同时兼容设备未安装Desktop App Installer的场景,修复后的代码如下:

# 定义最低要求版本
$minRequiredVersion = [version]"1.12.11692.0"
# 获取Desktop App Installer安装信息,忽略未安装的报错
$appInstallerPkg = Get-AppxPackage Microsoft.DesktopAppInstaller -ErrorAction SilentlyContinue

# 未安装 或 版本低于要求时走更新流程
if ($null -eq $appInstallerPkg -or $appInstallerPkg.Version -lt $minRequiredVersion) {
    Write-Host "Microsoft Desktop App Installer 不满足脚本运行最低版本要求,将弹出安装窗口,请点击「更新」完成安装。安装完成后按回车键继续运行脚本。"
    .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
    pause
} else {
    Write-Host "Microsoft Desktop App Installer 版本满足要求,继续执行脚本。"
}

# 统一调用后续安装脚本
.\(pathtoInstallationscript).ps1

优化说明

  • 直接调用App Installer包自带的Version属性,该属性本身就是[version]类型,和预定义的最低版本变量类型一致,比较结果稳定不会出现异常
  • 增加了未安装场景的兼容,避免空值报错
  • 后续安装脚本统一放在判断外执行,无需在两个分支重复写,降低维护成本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 05:30:00