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

如何通过Powershell从Microsoft Office的Build号获取对应版本号

Office 365 版本Build号自动匹配实现方案

核心逻辑说明

不用手动维护Build与版本的对应关系,直接从微软公开的更新元数据接口拉取结构化数据,自动生成最新的映射表,每次执行自动同步微软发布的新版本信息,不需要人工更新规则。

具体实现步骤

1. 管控端拉取最新版本映射表

仅需在管理端执行一次拉取逻辑,不需要每台终端访问公网,示例代码如下:

# 拉取Office 365 正式通道最新版本映射元数据
$updateMeta = Invoke-RestMethod -Method Get -Uri "https://learn.microsoft.com/api/search/rss?filter=products%2Foffice%2F365&locale=zh-cn"
# 解析生成Build号-版本号哈希映射表
$buildVersionMap = @{}
foreach ($item in $updateMeta.items) {
    if ($item.title -match '版本\s*(\d+)\s*.*Build\s*(\d+\.\d+)') {
        $buildVersionMap[$matches[2]] = $matches[1]
    }
}
# 可选:保存映射表到本地供后续批量查询使用
$buildVersionMap | Export-Clixml -Path ".\OfficeBuildMap.xml"

2. 远程终端版本校验逻辑

通过远程PowerShell在终端执行版本提取,返回Build号后和管控端的映射表匹配即可:

# 远程终端执行的版本提取命令
$remoteOfficeVersion = Invoke-Command -ComputerName $终端主机名 -ScriptBlock {
    $regPath = 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration'
    if (Test-Path $regPath) {
        $fullVer = Get-ItemProperty -Path $regPath | Select-Object -ExpandProperty VersionToReport -ErrorAction SilentlyContinue
        return $fullVer -replace '^16\.0\.',''
    }
    return $null
}

# 匹配版本
if ($remoteOfficeVersion -and $buildVersionMap.ContainsKey($remoteOfficeVersion)) {
    $output = "终端$($终端主机名) Office版本正常:$($buildVersionMap[$remoteOfficeVersion]),Build号$remoteOfficeVersion"
} else {
    $output = "终端$($终端主机名) Office版本非最新,请检查更新,返回Build号:$remoteOfficeVersion"
}
# 输出到报告
$output | Out-File ".\Office版本检查报告.txt" -Append

批量部署优化建议

  • 映射表每周同步一次即可,Office正式通道每月仅更新1-2次,不需要频繁拉取
  • 对于离线环境,可以手动导出映射表后导入到离线管控端使用
  • 可以添加版本号对比逻辑,自动标记低于指定版本的终端,实现批量告警

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:36:02