我使用的 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
您希望在最后有不同的
If/Else
声明。将最后一行替换为:
If($output){$output}else{"All VMs are Ready"}