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

PowerCLI脚本无法将VMware Tools更新添加至已有基准的问题

解决VMware Tools补丁基准自动化脚本失效问题

排查与修复步骤

1. 确保PowerCLI连接上下文完整

命令行执行时通常已手动连接vCenter,但自动化脚本中必须显式建立连接,否则无法获取或修改基准对象:

# 显式连接vCenter,添加错误处理确保连接成功
Connect-VIServer -Server "你的vCenter地址" -User "账号" -Password "密码" -ErrorAction Stop

2. 确认基准对象的正确获取

脚本中的$baseline变量需明确指定基准名称/ID,避免依赖命令行上下文的默认对象:

$baseline = Get-PatchBaseline -Name "目标基准名称" -ErrorAction Stop

3. 区分静态/动态基准的操作逻辑

  • 动态基准:无法通过-IncludePatch手动添加补丁,需通过规则自动匹配。若要自动包含最新VMware Tools,需设置动态规则:
    Set-PatchBaseline -Baseline $baseline -DynamicCriteria @(
      New-PatchBaselineDynamicCriteria -Property "Product" -Operator "Equals" -Value "VMware Tools"
      New-PatchBaselineDynamicCriteria -Property "IsLatest" -Operator "Equals" -Value $true
    )
    
  • 静态基准:需确保获取的补丁对象是完整的PowerCLI对象,避免Select-Object丢失关键属性。修正补丁获取逻辑:
    # 直接取排序后的最后一个完整对象,而非只选择部分属性
    $latest_tools = (Get-Patch | Where-Object {$_.Name -like "*VMware Tools*"} | Sort-Object -Property Version)[-1]
    # 执行添加操作,禁用交互确认
    Set-PatchBaseline -Baseline $baseline -IncludePatch $latest_tools -Confirm:$false
    

4. 检查执行权限与上下文

  • 脚本运行账号需拥有补丁基准修改权限,确保与命令行执行账号的权限一致
  • 若脚本以系统服务或计划任务运行,需确认账号具备vCenter的访问权限

5. 验证修改结果

执行脚本后,可通过以下命令验证补丁是否成功添加至基准:

Get-PatchBaseline -Name "目标基准名称" | Select-Object -ExpandProperty IncludedPatches

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:02:39