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

使用PowerShell/Invoke-WebRequest从微软网站通过版本号获取SQL产品名称

通过版本号查找SQL Server产品名称的PowerShell脚本

原脚本存在的问题

  • 变量赋值错误:$html.content = Invoke-WebRequest -Uri $url写法错误,应直接将请求结果赋值给变量
  • ParsedHtml依赖IE组件,PowerShell Core版本不支持,兼容性差
  • 模糊匹配逻辑(-match)可能导致误匹配,比如包含目标版本号的其他版本

修正后的兼容版脚本

# 目标页面URL
$url = "https://learn.microsoft.com/en-us/troubleshoot/sql/releases/download-and-install-latest-updates"

# 发送请求获取HTML内容,添加错误处理
try {
    $response = Invoke-WebRequest -Uri $url -ErrorAction Stop
}
catch {
    Write-Error "页面请求失败:$_"
    exit 1
}

# 定义要搜索的目标版本号
$searchVersion = '11.0.5058.0'

# 将HTML转为XML格式,用XPath解析表格行
$xmlContent = [xml]$response.Content
$rows = Select-Xml -Xml $xmlContent -XPath "//tr"

# 遍历所有表格行查找匹配项
foreach ($row in $rows) {
    $cells = $row.Node.SelectNodes("td")
    # 确保行有足够单元格,且版本列(第二列)精确匹配目标版本
    if ($cells.Count -ge 2 -and $cells[1].InnerText.Trim() -eq $searchVersion) {
        Write-Output "匹配结果:$($cells[0].InnerText.Trim())"
        exit 0
    }
}

# 未找到匹配时输出提示
Write-Output "未找到版本号 '$searchVersion' 对应的SQL产品名称"

脚本说明

  • 增加了请求错误处理,避免脚本因页面无法访问直接崩溃
  • 使用Select-Xml+XPath解析HTML,兼容PowerShell 5.x和Core全版本
  • 采用精确匹配(-eq)避免误匹配,若需模糊匹配(如匹配主版本),可将条件改为:
    $cells[1].InnerText.Trim() -like "$searchVersion*"
    
  • 对单元格文本做Trim()处理,消除空格对匹配结果的影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:07:27