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

如何在PowerShell脚本中添加else语句,实现VM Agent全就绪时输出提示

以下是修改后的脚本,已实现你需要的功能:

Set-AzContext -Subscription "MySub"
$WarningPreference = 'SilentlyContinue'
$output = @()
$VMs_running = Get-AzVM -status | ?{$_.PowerState -eq 'VM running'}

foreach($VM in $VMs_running)
{
    $VM_status = Get-AzVM -ResourceGroupName $VM.ResourceGroupName -Name $VM.Name -Status
    
    $Row = "" | select Name, ResourceGroupName, VMAgent_Status, VMAgent_Version
    $Row.Name = $VM_status.Name
    $Row.ResourceGroupName = $VM_status.ResourceGroupName
    $Row.VMAgent_Status = $VM_status.VMAgent.Statuses.DisplayStatus
    $Row.VMAgent_Version = $VM_status.VMAgent.VmAgentVersion
    if ($Row.VMAgent_Status -ne "Ready"){
      $output += $Row
    }
}

# 判断是否有未就绪的VM,若无则输出提示
if (-not $output) {
    Write-Host "All VMs are Ready"
} else {
    $output
}

修改说明

在脚本末尾新增了判断逻辑:

  • 当$output为空(即所有运行中的VM Agent状态均为Ready)时,输出提示信息All VMs are Ready
  • 若存在未就绪的VM,则正常输出这些VM的信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:03:30