Repository Breakdown by file

On this page, you’ll find an in-depth breakdown of all the files associated with the WVD QuickStart solution. This is intended for any advanced users who wish to customize the WVD QuickStart for their needs or to do some advanced troubleshooting. The GitHub repository consists of two branches:

The folder structure in the master branch is as follows:

ARMRunbookScripts

ARMRunbookScripts/static

The azuremodules.zip in this folder contains the following PowerShell modules:

Modules/ARM

Every module in this folder follows the same folder structure:

One important module is UserCreation, as this folder contains the script createUsers.ps1 that is used in Native AD deployments to create a new user in on the domain controller through a custom script extension.

QS-WVD

This is a crucial folder, as it contains the deployment parameters as well as the DevOps automation files. Directly in the folder you will find the pipeline.yml and variables.template.yml files, which are both further explained here. The remaining subfolders are explained below.

QS-WVD/parameters

While this folder only holds a Readme.MD file, it is used in the automation to store the WVD ARM deployment parameter files, and it should therefore not be deleted.

QS-WVD/scripts

This folder contains certain Powershell scripts that are invoked by the DevOps pipeline:

QS-WVD/static

This folder contains the appliedParameters.template.psd1, which is the template used by the initial ARM deployment to generate the appliedParameters.psd1 file explained here.

QS-WVD/static/templates/pipelineinput

This folder contains all the templates for ARM deployment parameter files. These templates are used by the DevOps pipeline as explained here to generate the parameter files for the deployment of WVD resources in the pipeline. The name of the template file indicates what resource it’s used for - I will not go deeper into these here.

SharedDeploymentFunctions

SharedDeploymentFunctions/Storage

This folder contains three scripts that are used in the deployment of the Assets storage account (where we store the Custom Script Extension (CSE) files):

Uploads

This folder contains the CSEs for the WVD VMs, and it’s named uploads as it will in its entirety be uploaded to the assets storage account. It also contains the ZIP folder Configuration.zip which contains the configuration files for the DSC extension to be installed on the WVD VMs.

Uploads/WVDScripts

Every CSE is run through the cse_run.ps1 file in each subfolder - These scripts are called by the scriptExtensionMasterInstaller.ps1 script. This script unzips the downloaded CSE folders and proceeds to look for cse_run.ps1 files to execute. The other file you will find in this folder is the downloads.parameters.json file. This file contains parameters for certain files that need to be downloaded from the internet to install some of the applications configured in the CSEs. For example, it specifies where to find the FSLogix executable, so that it can be downloaded onto the VM. Let’s now dive into each specific CSE in a little more depth:

deploy.json

This is the ARM template used for the initial deployment, which is explained in a high-level here and in a detailed breakdown here.


Microsoft Support is not handling issues for any published tools in this repository. These tools are published as is with no implied support. However, we would like to welcome you to open issues using GitHub issues to collaborate and improve these tools. You can open an issue here.