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

使用Azure PowerShell添加KB排除项:显示异常与有效性确认

问题解答:Azure自动化更新配置排除KB显示与生效验证

核心结论

GUI中排除KB显示在同一行是正常UI渲染差异,不影响排除规则生效;但你的代码存在格式转换错误,需调整参数传递方式确保后台正确识别多个KBID。


1. 显示差异的原因

Azure自动化GUI手动添加排除项时,会自动将每个KBID拆分行展示;而通过PowerShell提交时,若传递的是逗号分隔字符串或正确数组,后台会正确解析为多个排除项,但UI会直接展示原始输入格式(如逗号分隔的一行)。本质上后台存储的是数组结构,显示格式不影响功能。

2. 你的代码错误点

你在处理$excludedKBs时,错误地将数组转换为了单个字符串(比如把["4476698","4506163"]转成了"4476698 4506163"),导致后台无法正确识别为多个排除项。正确做法是保留数组类型,不要强制转为[string]。

修正后的代码示例

# 从MSSQL获取原始格式
$excludedKBs = "KB4476698-KB4506163-KB4339279"
# 处理为纯数字的字符串数组(去掉KB前缀,按-分割)
$excludedKBArray = $excludedKBs.Replace("KB","").Split("-")

# 调用命令时直接传递数组,不要加引号
New-AzAutomationSoftwareUpdateConfiguration -ResourceGroupName $ResourceGroupName `
    -AutomationAccountName $AutomationAccountName `
    -Schedule $schedule `
    -Windows `
    -NonAzureComputer $AdFqdn `
    -IncludedUpdateClassification $UpdateType `
    -ExcludedKbNumber $excludedKBArray `
    -Duration $duration `
    -RebootSetting Always `
    -PreTaskRunbookName $PreScript `
    -PreTaskRunbookParameter $PreScriptParams `
    -PostTaskRunbookName $PostScript `
    -PostTaskRunbookParameter $PostScriptParams | Out-Null

3. 验证排除项是否生效

  • 通过PowerShell验证后台存储:

    $config = Get-AzAutomationSoftwareUpdateConfiguration -ResourceGroupName $ResourceGroupName -AutomationAccountName $AutomationAccountName
    $config.ExcludedKbNumber
    

    输出应为每个KBID单独一行,说明后台已正确识别为数组。

  • 通过作业日志验证执行效果:
    运行更新部署后,查看作业日志,搜索关键词Excluded KB numbers,确认列出的KBID与你设置的一致,且对应补丁不会被安装。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:12:27