如何在 powershell 脚本中添加 else 语句以列出显示为“未就绪”的正在运行的虚拟机

问题描述 投票:0回答:1

我使用的 Powershell 脚本列出了正在运行且代理状态为“未就绪”的虚拟机。

此时,如果所有虚拟机都已就绪,则输出为空。我想添加一条 else 语句以包括如果虚拟机代理状态为“就绪”,则打印“所有虚拟机均已就绪”。

这是脚本:

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
    }
}

$output
powershell for-loop if-statement virtual-machine
1个回答
0
投票

您希望在最后有不同的

If/Else
声明。将最后一行替换为:

If($output){$output}else{"All VMs are Ready"}
© www.soinside.com 2019 - 2024. All rights reserved.