12

Azure CLI allows people to start & stop VMs.

However, is there any Azure CLI command that can show the VM status? I.e., whether it is started or being stopped? Thx.

Run5k
  • 15,723
  • 24
  • 49
  • 63
xpt
  • 8,261
  • 38
  • 102
  • 156

3 Answers3

23

You can use the '-d' flag with list and status for all VMs

az vm list -d -o table

For single VM, you can use:

az vm list -d -o table --query "[?name=='vm-name']"

If you need more specific results then you can also try:

az vm list -d --query "[?powerState=='VM running']" -o table
ironman
  • 346
  • 2
  • 2
  • 1
    That's indeed a better option than the accepted answer. Thanks & welcome to SU with my +25. – xpt Aug 13 '19 at 12:47
  • I just love that az vm list gives me 174 lines of output per VM, including all sorts of esoteric settings that the doc barely explains, but then if you give it --show-details it only outputs a whole 7 extra lines! And *that's* where they decided to hide the VM state, because who could possibly want to know **that**!! – tux3 Feb 01 '22 at 00:13
  • Just an add on; If you are working with az cli and powershell it is help full to use convertfromjson and look at it that way instead of using table. – AndreasWBJ Sep 26 '22 at 11:43
  • For single VM you can use `az vm show -d` instead. In both cases it's the `-d` (`--show-details`) that's important. – Jan Hudec Feb 20 '23 at 16:23
7

You can get the vm status with this command:

az vm get-instance-view --name vmName --resource-group resourceGroupName --query instanceView.statuses[1] --output table

The output will like this:

enter image description here

Charles Xu
  • 348
  • 1
  • 5
2

You can also run query in Azure Resource Graph Explorer

Resources
| project name, location, 
   PowerState=tostring(properties.extended.instanceView.powerState.code), type
| where type =~ 'Microsoft.Compute/virtualMachines'
| order by name desc
volody
  • 135
  • 4