VM státusz PowerShell lekérdezés ARM

Azure Resource Manager (ARM) PowerShellben nem olyan egyszerű lekérdezni a gépek bekapcsolt státuszát, mint Service Managerben (ASM). Amennyiben egyszerűen a Get-AzureVM paranccsal lekérdezzük a gépeket, csak a ProvisioningStatus-t kapjuk meg a VM egyéb állapotáról nem kapunk információt.

A Get-AzureVM parancsnak van egy –Status kapcsolója, amivel a részletes státusz is elérhető. Így már elő tudjuk állítani az egysorosunkat:

get-azurevm | Select-Object @{Name="VirtualMachineName";Expression={$_.Name}}, ResourceGroupName, @{Name="Status";Expression={((get-azurevm -ResourceGroupName $_.ResourceGroupName -Name $_.Name -Status).Statuses | ? { $_.Code -like "PowerState*" } ).displaystatus}}

Format-Table –AutoSize –al szebb lehet az eredmény, de ekkor nem kapunk azonnali válaszokat, meg kell várni az összes gép lekérdezését:

get-azurevm | Select-Object Name, ResourceGroupName, @{Name="Status";Expression={((get-azurevm -ResourceGroupName $_.ResourceGroupName -Name $_.Name -Status).Statuses | ? { $_.Code -like "PowerState*" } ).displaystatus}} | Format-Table -AutoSize