Start/Stop VMs v2 overview (2023)

  • Article
  • 7 minutes to read

The Start/Stop VMs v2 feature starts or stops Azure Virtual Machines instances across multiple subscriptions. It starts or stops virtual machines on user-defined schedules, provides insights through Azure Application Insights, and send optional notifications by using action groups. For most scenarios, Start/Stop VMs can manage virtual machines deployed and managed both by Azure Resource Manager and by Azure Service Manager (classic), which is deprecated.

This new version of Start/Stop VMs v2 provides a decentralized low-cost automation option for customers who want to optimize their VM costs. It offers all of the same functionality as the original version available with Azure Automation, but it's designed to take advantage of newer technology in Azure.

Important Start/Stop VMs v2 Updates

  • We've updated our Start/Stop VMs v2 function app resource to use Azure Functions version 4.x, and you'll get this version by default when you install Start/Stop VMs v2 from the marketplace. Existing customers should migrate from Functions version 3.x to version 4.x using our auto-update functionality. This functionality gets the latest version either by running the TriggerAutoUpdate timer function once manually or waiting for the schedule to run, if you've enabled it.

  • We've added a plan (AZ - Availability Zone) to our Start/Stop VMs v2 solution to enable a more reliable offering. You can now choose between Consumption and Availability Zone plans before you start your deployment. In most cases, the monthly cost of the Availability Zone plan is higher when compared to the Consumption plan.

  • Automatic updating functionality was introduced on April 28th, 2022. This new auto update feature helps you stay on the latest version of the solution. This feature is enabled by default when you perform a new installation.
    If you deployed your solution before this date, you can reinstall to the latest version from our GitHub repository


Start/Stop VMs v2 is redesigned and it doesn't depend on Azure Automation or Azure Monitor Logs, as required by the previous version. This version relies on Azure Functions to handle the VM start and stop execution.

(Video) #Demo Start/Stop VMs during Off Hours | Ekascloud | English

A managed identity is created in Azure Active Directory (Azure AD) for this Azure Functions application and allows Start/Stop VMs v2 to easily access other Azure AD-protected resources, such as the logic apps and Azure VMs. For more about managed identities in Azure AD, see Managed identities for Azure resources.

An HTTP trigger function endpoint is created to support the schedule and sequence scenarios included with the feature, as shown in the following table.

ScheduledHTTPThis function is for both scheduled and sequenced scenario (differentiated by the payload schema). It's the entry point function called from the Logic App and takes the payload to process the VM start or stop operation.
AutoStopHTTPThis function supports the AutoStop scenario, which is the entry point function that is called from Logic App.
AutoStopVMHTTPThis function is triggered automatically by the VM alert when the alert condition is true.
VirtualMachineRequestOrchestratorQueueThis function gets the payload information from the Scheduled function and orchestrates the VM start and stop requests.
VirtualMachineRequestExecutorQueueThis function performs the actual start and stop operation on the VM.
CreateAutoStopAlertExecutorQueueThis function gets the payload information from the AutoStop function to create the alert on the VM.
HeartBeatAvailabilityTestTimerThis function monitors the availability of the primary HTTP functions.
CostAnalyticsFunctionTimerThis function calculates the cost to run the Start/Stop V2 solution on a monthly basis.
SavingsAnalyticsFunctionTimerThis function calculates the total savings achieved by the Start/Stop V2 solution on a monthly basis.
VirtualMachineSavingsFunctionQueueThis function performs the actual savings calculation on a VM achieved by the Start/Stop V2 solution.
TriggerAutoUpdateTimerThis function starts the auto update process based on the application setting "EnableAutoUpdate=true".
UpdateStartStopV2QueueThis function performs the actual auto update execution, which validates your current version with the available version and decides the final action.

For example, Scheduled HTTP trigger function is used to handle schedule and sequence scenarios. Similarly, AutoStop HTTP trigger function handles the auto stop scenario.

The queue-based trigger functions are required in support of this feature. All timer-based triggers are used to perform the availability test and to monitor the health of the system.

Azure Logic Apps is used to configure and manage the start and stop schedules for the VM take action by calling the function using a JSON payload. By default, during initial deployment it creates a total of five Logic Apps for the following scenarios:

  • Scheduled - Start and stop actions are based on a schedule you specify against Azure Resource Manager and classic VMs. ststv2_vms_Scheduled_start and ststv2_vms_Scheduled_stop configure the scheduled start and stop.

  • Sequenced - Start and stop actions are based on a schedule targeting VMs with pre-defined sequencing tags. Only two named tags are supported - sequencestart and sequencestop. ststv2_vms_Sequenced_start and ststv2_vms_Sequenced_stop configure the sequenced start and stop.

    The proper way to use the sequence functionality is to create a tag named sequencestart on each VM you wish to be started in a sequence. The tag value needs to be an integer ranging from 1 to N for each VM in the respective scope. The tag is optional and if not present, the VM simply won't participate in the sequencing. The same criteria applies to stopping VMs with only the tag name being different and use sequencestop in this case. You have to configure both the tags in each VM to get start and stop action. If two or more VMs share the same tag value, those VMs would be started or stopped at the same time.

    (Video) Auto Start/Stop of Azure VM || Step-by-step with troubleshooting the issue -Linuxfork

    For example, the following table shows that both start and stop actions are processed in ascending order by the value of the tag.

    Start/Stop VMs v2 overview (1)

  • AutoStop - This functionality is only used for performing a stop action against both Azure Resource Manager and classic VMs based on its CPU utilization. It can also be a scheduled-based take action, which creates alerts on VMs and based on the condition, the alert is triggered to perform the stop action. ststv2_vms_AutoStop configures the auto stop functionality.

Each Start/Stop action supports assignment of one or more subscriptions, resource groups, or a list of VMs.

An Azure Storage account, which is required by Functions, is also used by Start/Stop VMs v2 for two purposes:

(Video) Azure Automation Start Stop VMs During Off-Hours

  • Uses Azure Table Storage to store the execution operation metadata (that is, the start/stop VM action).

  • Uses Azure Queue Storage to support the Azure Functions queue-based triggers.

All trace logging data from the function app execution is sent to your connected Application Insights instance. You can view the telemetry data stored in Application Insights from a set of pre-defined visualizations presented in a shared Azure dashboard.

Start/Stop VMs v2 overview (2)

Email notifications are also sent as a result of the actions performed on the VMs.

New releases

When a new version of Start/Stop VMs v2 is released, your instance is auto-updated without having to manually redeploy.

Supported scoping options


Scoping to a subscription can be used when you need to perform the start and stop action on all the VMs in an entire subscription, and you can select multiple subscriptions if necessary.

You can also specify a list of VMs to exclude and it will ignore them from the action. You can also use wildcard characters to specify all the names that simultaneously can be ignored.

(Video) SAVE MONEY on Azure by Starting and Stopping Your VMs on a Schedule Using Start Stop v2 (2021)

Resource group

Scoping to a resource group can be used when you need to perform the start and stop action on all the VMs by specifying one or more resource group names, and across one or more subscriptions.

You can also specify a list of VMs to exclude and it will ignore them from the action. You can also use wildcard characters to specify all the names that simultaneously can be ignored.


Specifying a list of VMs can be used when you need to perform the start and stop action on a specific set of virtual machines, and across multiple subscriptions. This option doesn't support specifying a list of VMs to exclude.


  • You must have an Azure account with an active subscription. Create an account for free.

  • Your account has been granted the Contributor permission in the subscription.

  • Start/Stop VMs v2 is available in all Azure global and US Government cloud regions that are listed in Products available by region page for Azure Functions.

Next steps

To deploy this feature, see Deploy Start/Stop VMs.


How do I start a stop VM solution? ›

On the Start/Stop VM page, select Manage the solution under Manage Start/Stop VM Solutions. Navigate to the Log Analytics workspace linked to your Automation account. After after selecting the workspace, choose Solutions from the left pane. On the Solutions page, select Start-Stop-VM[workspace] from the list.

How do I start a stop VM solution in Azure? ›

Sign in to the Azure portal. Search for and select Automation Accounts. On the Automation Accounts page, select your Automation account from the list. From the Automation account, select Start/Stop VM under Related Resources.

How do I stop all VMs in resource group in Azure? ›

There is no direct way to start or stop all VMs of a resource group in Azure. In Azure, shutting down the server is not enough, you still pay the full compute price. It is recommended that you deallocate your servers if you want to avoid being charged while the servers are not in use.

How do I start and stop Azure VM in PowerShell? ›

Azure PowerShell script
  1. From your workstation, use the PowerShell Connect-AzAccount cmdlet to sign in to your Azure account. ...
  2. Provide values for the <lab name> and <VM name> , and enter which action you want for <Start or Stop> . ...
  3. Start or stop the VM, based on the value you passed to $vmAction .
Mar 31, 2022

What happens when you stop a VM? ›

A stopped VM retains its persistent disks, its internal IPs, and its MAC addresses. However, the VM shuts down the guest OS and loses its application state. If you need to retain the guest OS and application state, suspend the VM instead. Essentially, a stopped VM resets to its power-on state and no data is saved.

What does stop VM do? ›

Stopping the VM retains all the VM's settings / configurations, as well as the . vhd image stored in Azure Storage. As a result, you will still incur some cost for the storage, but at least you will save on the VM resources.

What happens when you stop Azure VM? ›

When you stop a VM through Azure, rather than through the OS, it goes into a “Stopped (deallocated)” state. This means that any non-static public IPs will be released, but you'll also stop paying for the VM's compute costs.

How long does it take to stop Azure VM? ›

The VMs are automatically powered back on after storage connectivity has been restored. The duration of the shutdown can be as short as five minutes but can be significantly longer.

How will you turn start/stop a VM through command prompt? ›

To power on a virtual machine from the command line:
  1. List the inventory ID of the virtual machine with the command: vim-cmd vmsvc/getallvms |grep <vm name> ...
  2. Check the power state of the virtual machine with the command: vim-cmd vmsvc/power.getstate <vmid>
  3. Power-on the virtual machine with the command:
Feb 12, 2020

How do I stop all VMs in Azure command line? ›

To stop the azure VM using Azure CLI we can use the az vm stop command. Before running this command make sure that you are connected to the Azure account and the proper Azure subscription. When we run this command, we need to provide the Azure VM name (-n) and the resource group name (-g).

How do you prevent a virtual machine from a resource group? ›

In this question, we would create an Azure policy assigned to the resource group that denies the creation of virtual machines in the resource group. You could place a read-only lock on the resource group. However, that would prevent the creation of any resources in the resource group, not virtual machines only.

How do you clean unused resources in Azure? ›

It is important to remove unused Azure resources to keep your costs in check and your Azure subscription clear. A good way to do that is by tagging resources with a tag that states when they are no longer needed and running a PowerShell script that uses that tag to remove those resources.

How do I automatically start and stop Azure VM? ›

On your lab Overview page, select the VM under My virtual machines. On the VM's Overview page, select Auto-start under Operations in the left navigation. On the Auto-start page, select Yes for Allow this virtual machine to be scheduled for automatic start, and then select Save.

How can you stop a VM using PowerShell? ›

  1. Example 1. PowerShell Copy. PS C:\> Stop-VM -Name TestVM. Shuts down virtual machine TestVM through the guest operating system.
  2. Example 2. PowerShell Copy. PS C:\> Stop-VM -Name VM1 -Force. ...
  3. Example 3. PowerShell Copy. PS C:\> Stop-VM -Name TestVM -TurnOff.

What is the command to stop VM in Azure? ›

The Stop-AzVM cmdlet stops an Azure virtual machine.

What is the difference between suspend and stop VM? ›

Suspending an instance differs from stopping an instance in the following ways: Suspended instances preserve the guest OS memory, device state, and application state. Google charges for the storage necessary to save instance memory. You can only suspend an instance for up to 60 days.

How can I tell when a virtual machine was shut down? ›

Check how long a VM is turned off in vSphere using vROPs
  1. Click home on the vROPs interface.
  2. Click on “Reclaim” from the navigation left hand pane.
  3. Click the datacenter your interested in.
  4. Click Powered off VM's tab.
  5. Look for your VM and it will show how many days the VM is powered off for.
Mar 2, 2021

What is the difference between VM deallocated and stopped? ›

You can deallocate a VM using the Azure portal by clicking Stop which actually stops and deallocates the VM. You can also deallocate a VM using an Azure CLI command, such as azure vm deallocate. Deallocating stops the VM and releases all the compute resources so you are no longer charged for the VM compute resources.

What is the main purpose of VM? ›

Virtual machines are best for running multiple applications together, monolithic applications, isolation between apps, and for legacy apps running on older operating systems. Containers and virtual machines may also be used together.

Does a VM mask your IP? ›

Using a virtual machine to browse the Internet doesn't mask your IP address or automatically shield you from threats. And although your VM and host computer are technically separate, some things could still be shared between the two if you're not careful.

Does a VM make you anonymous? ›

tl;dr: Using a VM does not provide anonymity. It only increases the time before you're located and fingerprinted.

What happens when a VM runs out of memory? ›

If a Hyper-V virtual machine ran out of memory, you cannot start your virtual machine or create a new VM. Troubleshooting in Hyper-V virtual machines takes up a lot of time and causes financial loss for business.

Is it possible to break out of a VM? ›

Virtual machine escape is an exploit in which the attacker runs code on a VM that allows an operating system running within it to break out and interact directly with the hypervisor. Such an exploit could give the attacker access to the host operating system and all other virtual machines (VMs) running on that host.

How do I stop a VM from shutting down automatically after a period of inactivity? ›

In VMWare Workstation go to: Edit menu > Preferences > in Preferences window > Workspace tab and make sure that the "Keep VMs running after Workstation closes" option is checked. Save this answer.

Why does Azure VM take so long to start? ›

Because you're using an Azure VM that doesn't have local ephemeral disks, cloud-init must wait until the process times out. The timeout interval for ephemeral disks is 120 seconds before the startup process continues.

How long does it take to restart VM? ›

VM/OS Reboot (1-2 min): Rebooting a VM from within the operating system itself may be one of the quickest and simplest troubleshooting methods you can perform if you are encountering issues with a single VM.

Do virtual machines need to be rebooted? ›

With this in mind there is no regular, required reboot required as performance will not degrade over time. The only reboots you perform will be for hardware updates or where patches require a reboot. as part of the cluster node drain operation. Once the node is patched and rebooted the VMs can be migrated back.

How to check the status of VM using command-line? ›

Run this command to verify the power state of the virtual machine.
  1. In ESX – vmware-cmd <cfg> getstate. Where <cfg> is the path to the configuration file as determined by the vmware-cmd –l command. ...
  2. In ESXi – # vm-support -x ( Note: For ESXi 5.x - # vm-support -V ) OR # vim-cmd vmsvc/getallvms.
Sep 24, 2020

How do I set VM to automatically start? ›

On the VMware ESXi web management page, go to “Manage“. Under the “System” tab, click on “Autostart“. Click “Edit Settings“. Below that, select the Virtual Machines you want to auto start and click “Enable” above them.

Which command is used to start the virtual machine? ›

Description. The Start-VM cmdlet starts a virtual machine.

How do I stop a VM in terminal? ›

To start|stop a vm just use: $ virsh start|shutdown <vmname> (you can list by $ virsh list --all). You can use this tool in bash script or crontab for instance.

What is the command to start VM in Azure? ›

In the search bar, enter Azure Virtual Desktop and select the matching service entry. Select Host pools, then select the name of the host pool where you want to enable the setting. Select Properties. In the configuration section, you'll see Start VM on connect.

How do I list VMs on Azure CLI? ›

Once the Azure subscription is set, we can use the below command to retrieve the Azure VMs. To get the particular azure VM using CLI, we need to provide the VM name and resource group name. “az vm show” command finds the VM from the list using parameter -n (VMName) -g (resource group Name).

What are three reasons why a virtual machine might fail to power on? ›

The failure of a VM to power on may be caused by any of the following reasons:
  • ESXi OS problems.
  • File corruption.
  • File locks.
  • Guest OS problems.
  • License problems.
  • Network problems.
  • Storage Array/Datastore problems.
  • User permissions.
Jan 11, 2022

What is a method to prevent data loss on a VM? ›

To prevent this from occurring, always store your backup VMs and your active VMs in different places. It also makes sense to make multiple backups and store them on a different local server/hard disk, whether in the cloud or on tape. Having two additional backups will help you in the event of a data loss.

What are the 2 types of locks we can create on a resource? ›

In the portal, these locks are called Delete and Read-only. In the command line, these locks are called CanNotDelete and ReadOnly. CanNotDelete means authorized users can read and modify a resource, but they can't delete it. ReadOnly means authorized users can read a resource, but they can't delete or update it.

How do I get rid of unused resources? ›

In Android Studio Menu > Refactor > Remove Unused Resources... Select the resources you want to remove. You can exclude resources you want to keep by right-clicking on the resource item. Use Do Refactor to remove all Resources at once.

What is purge in Azure? ›

Use data purge to delete personal data from a device or service in Azure Data Explorer | Microsoft Learn.

How do I restart my VM? ›

  1. Open the Server Automation domain.
  2. From the navigation tree in the Server Automation domain, click Virtualization > Virtual Machine Management > Power Configuration to open the list of Power Configuration Tasks.
  3. From the Power Configuration list, select Restart VM (soft).

How do I restart VM agent? ›

Log in as root. Use the Up/Down arrows to navigate to Troubleshooting Options > Restart Management Agents. Press Enter. Press F11 to restart the services.

How do I stop a VM in vmware? ›

To force a virtual machine to power off:
  1. From the Workstation menu bar, select the virtual machine to be powered off.
  2. Click VM > Power > Power Off.
Apr 11, 2022

Do VMs need to be restarted? ›

With this in mind there is no regular, required reboot required as performance will not degrade over time. The only reboots you perform will be for hardware updates or where patches require a reboot. as part of the cluster node drain operation. Once the node is patched and rebooted the VMs can be migrated back.

How would you troubleshoot a VM that isn't booting? ›

Identify the reason why the boot disk isn't booting
  1. Verify that your boot disk is not full. ...
  2. Examine your virtual machine instance's serial port output. ...
  3. Enable interactive access to the serial console. ...
  4. Verify that your disk has a valid file system. ...
  5. Verify that the disk has a valid master boot record (MBR).

Is resetting a VM the same as reboot? ›

Power cycle is a combination of a power off followed by a power on. Reset is equivalent to holding the power button pressed forcing the host to reboot.

Will restarting management agents affect my VMs? ›

Will restarting management agents affect my VMs? No, but it might affect any tasks that may be running on the ESXi host at the time of the restart. But there are no worries for VMs.

How do I restart a VM in Vsphere? ›

  1. In the vCenter Server Appliance Management Interface, click Summary.
  2. From the top menu pane, click the Actions drop-down menu.
  3. Click Reboot or Shutdown to restart or power off the virtual machine.
  4. In the confirmation dialog box, click Yes to confirm the operation.
May 31, 2019

What is agent in VM? ›

The VM Agent has a primary role in enabling and executing Azure virtual machine extensions. VM Extensions enable post-deployment configuration of VM, such as installing and configuring software. VM extensions also enable recovery features such as resetting the administrative password of a VM.


1. Auto Shutdown and Auto Start an Azure VM 🛑
(Thomas Maurer)
2. Schedule Azure VM Shutdown and Restart
3. Using Azure Automation to start and stop VMs
(Olutayo Adaraloye)
4. #Start/Stop VMs during Off-hours | Ekascloud | English
(EkasCloud Online Courses)
5. Save Azure Compute cost! A new way to automate start/stop VMs
(Azure Demos)
6. How to start and stop Azure VM without using Azure portal
(Addend Analytics - Microsoft Gold Partner)
Top Articles
Latest Posts
Article information

Author: Edwin Metz

Last Updated: 03/09/2023

Views: 5898

Rating: 4.8 / 5 (58 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Edwin Metz

Birthday: 1997-04-16

Address: 51593 Leanne Light, Kuphalmouth, DE 50012-5183

Phone: +639107620957

Job: Corporate Banking Technician

Hobby: Reading, scrapbook, role-playing games, Fishing, Fishing, Scuba diving, Beekeeping

Introduction: My name is Edwin Metz, I am a fair, energetic, helpful, brave, outstanding, nice, helpful person who loves writing and wants to share my knowledge and understanding with you.