$ azcmd compare --with azure-native

AzCmd vs Azure Automation & Start/Stop VMs v2

Azure ships capable native tools for starting and stopping VMs, and for plenty of teams they're the right answer. This page lays out honestly what each tool does well, what it asks of you, and where a purpose-built multi-tenant console earns its keep.

The three options

Start/Stop VMs v2 is Microsoft's maintained successor to the retired v1 solution. It's free to use, and you deploy it into your own subscription — it runs on Azure Functions and Logic Apps that you host. It handles scheduled and sequenced start/stop within the tenant it's deployed in, and it does that job well.

Azure Automation is a general-purpose automation service: you author PowerShell or Python runbooks, attach schedules, and authenticate with managed identities. It's enormously flexible — VM scheduling is one of a thousand things it can do — but everything beyond "run this script at this time" is yours to build: tag-based targeting, reporting, notifications, and operational guardrails.

AzCmd is a purpose-built console for teams that run VMs in more than one tenant: MSPs, consultancies, and IT teams spanning business units. Tenants connect via Microsoft Entra admin consent with certificate-based connectors, and scheduling, on-demand commands, audit, and role-scoped access come out of the box — with no infrastructure deployed per tenant.

Side by side

capabilityAzCmdStart/Stop VMs v2Azure Automation
Multi-tenant console single pane across all connected tenants scoped to its tenant per-tenant accounts; DIY consolidation via Lighthouse
Per-tenant infrastructure none — Entra consent only Functions + Logic Apps deployed per subscription Automation account, runbooks, identities per tenant
Scheduling by tags tags, calendars, business hours schedules and sequenced groups DIY — you write the targeting logic
On-demand commands on VMs targeted by tenant, subscription, or tag start/stop only anything you script
Consolidated audit trail who/what/where/when, every action, all tenants Azure activity logs, per deployment Job logs, per account — aggregation is DIY
Roles for helpdesk & clients per-tenant, per-action scoping built in Azure RBAC on the solution's resources Azure RBAC on automation resources
Maintenance burden None — managed service You update and troubleshoot each deployment You own the runbooks, modules, and identities
Cost Early access — see pricing Free solution; you pay for its infrastructure Pay per job minute + your engineering time

When the native tools are the right call

Honestly: if you run one tenant, your team is comfortable maintaining a deployment or a set of runbooks, and you don't need consolidated audit or client-scoped access, Start/Stop VMs v2 or Azure Automation will serve you well at minimal cost. Microsoft's tools are good at what they're scoped to do.

When AzCmd earns its keep

The equation changes with the second tenant — and keeps changing with every one after it. Per-tenant deployments multiply: separate infrastructure to update, separate identities to rotate, separate logs to check when a customer asks "why was our VM off?". Azure Lighthouse gives MSPs delegated visibility, but the native scheduling tools still deploy and operate per tenant beneath it, and the consolidated reporting layer is yours to build and maintain.

AzCmd collapses that into one console: connect each tenant once via Entra consent, schedule by tag across all of them, run operational commands without RDP, give each engineer and client contact exactly the scope they need, and answer any "who did what, when" question from a single audit trail. That's the product — here's how it connects.

$ azcmd request-access

Managing VMs in more than one tenant? See it on your own fleet.

Request early access