如何在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
相关产品推荐
相关产品推荐

