avd-opsDeploy quietly
Personal project. Not for production. No warranty.Not for production
  • Personal project, not for production. Provided as is, without warranty of any kind (MIT License).
  • Not affiliated with, endorsed by or supported by the author's employer, and not an official Microsoft product.
  • Use a lab subscription and tenant.

AVD deployment portal

Deploys the AVD landing zone, one step at a time. Pasted output never leaves this browser.

      Choose a region ,

      Pick the Azure region closest to your users. This page can measure it for you.

      Takes about 20 seconds. Run it where your users work, off the VPN.

      How regions are rated

      Round-trip time from this browser, so run it where your users work, not from Cloud Shell or over a VPN. Under 100 ms is good for AVD, 100 to 150 ms is usable, above 150 ms feels sluggish. Each region gets a warm-up request and 5 timed ones; the median counts.

      Size the host pool ,

      Choose how many session hosts to run. One host and a 100 GiB profile share is enough to start.

        How sizing works

        It starts from the minimum viable kit: one memory-optimized E4as_v5 host and a 100 GiB profile share. Automatic sizes the hosts from how many people use them and how they work (Microsoft's multi-session guidance: light 6, medium 4, heavy 2, power 1 user per vCPU). It suggests memory-optimized E-series sizes, because hosts shared by many users run out of memory before CPU, and every host gets a Premium SSD OS disk.

        Once you apply a sizing, the commands carry it: the pre-deployment preflight checks quota and availability for it, and deploy.sh deploys it. The next step prices it.

        One pooled host pool for now; the sizing is kept per host pool so more can be added later.

        Cost ,

        Hosts bill for the hours they run. These two settings decide those hours.

        How the cost is worked out

        Most of the cost is the hours the session hosts run. Both settings are deployed with the landing zone. The pre-deployment preflight prices the plan at Azure list prices for your region; after that, changing a setting here reprices it without running anything.

        Pre-deployment preflight

        Check that the subscription is ready. Nothing gets changed.

        Deploy the landing zone

        Deploy it once the preflight says Ready. It takes 30 to 45 minutes and keeps running in Azure if Cloud Shell disconnects.

        Post-deployment setup

        Finish what the deployment can't do on its own: admin consent, the Conditional Access exclusion and the profile share permissions.

        Sign in

        Open the desktop as a member of the users group.

        Verify access , not checked

        Check that this device can reach AVD, then open the desktop. Run it where people will connect from.

        Can this device reach AVD?

        A few seconds: each host gets a warm-up request and 5 timed ones. Nothing you paste or measure leaves this browser.
        What this check proves

        Open the desktop

        Open the web client

        Sign in as a member of the users group, and choose Yes when asked to allow the remote desktop connection.

        What to expect

        The prompt to allow the connection comes once for each session host (Microsoft Entra single sign-on). A stopped host starts on the first connection, which then takes a few minutes and isn't representative. To test the Windows App and its RDP path, open the Windows App and choose the same desktop. There's no direct Windows App link: its parameters aren't confirmed yet.

        Report a problem

        Opens a public GitHub issue on avd-ops/avd-landing-zone (the repo the commands run from) with the output you pasted and what the portal made of it. The report is redacted here, in your browser: email addresses and UPNs, IDs, subscription, tenant, storage and key vault names, public IP addresses, your name prefix and group names, and anything that looks like a password, key or token. Nothing is sent until you submit the issue on GitHub (you need a GitHub account), and issues are public, so read the report first.

        A prignano.ai production