1. Home
  2. Training Library
  3. Microsoft Azure
  4. Courses
  5. Azure Resource Manager Virtual Machines

Overview of PowerShell DSC


Overview of the course
Course Intro
Course Overview
Start course
2h 17m

Azure Resource Manager Virtual Machines

Virtual Machines are a very foundational and fundamental resource in Cloud Computing. Deploying virtual machines gives you more flexibility and control over your cloud infrastructure and services, however, it also means you have more responsibility to maintain and configure these resources. This course gives you an overview of why use virtual machines as well as how to create, configure, and monitor VMs in Azure Resource Manager.

Azure Resource Manager Virtual Machines: What You'll Learn

Lesson What you'll learn
Overview Overview of the course and the Learning Objectives
What is a Virtual Machine? Understand what are Azure Virtual Machines and what workloads are ideal for VMs
Creating and Connecting to Azure VMs Learn to deploy Windows and Linux VMs as well as how to connect to these VMs
Scaling Azure Virtual Machines Understand VM scaling, load-balancing, and Availability Sets in Azure Resource Manager
Configuration Management Understand the basic concepts of Desired State Configuration and the options available to Azure VMs
Design and Implement VM Storage Gain an understanding of the underlying Storage options available to VMs as well as Encryption
Configure Monitoring & Alerts for Azure VMs Learn to monitor VMs in Azure Resource Manager as well as configure alerts.
Summary Course summary and conclusion


GitHub Code Repository



First, let’s look at an overview of what we’re going to build and how PowerShell DSC works. PowerShell Desired State Configuration was first introduced in Windows Server 2012 R2. It was widely used for on-premises infrastructure management well before it was brought to Azure. PowerShell DSC also supports for several Linux operating systems which runs on top of the Open Management Infrastructure, or OMI.

You see several items, which I will define. First, a “DSC_IIS.ps1” file represents the actual DSC Configuration which is a PowerShell script that serves as a wrapper around the cross-platform industry standard MOF or Managed Object Format file format as we mentioned earlier. In fact, you could create configurations directly in the MOF format, but for our purposes, we’re going to use the PowerShell syntax for ease of use with our Azure Resources. We can optionally have Configuration Data which is just a .PSD1 file containing environmental data for the configuration. Second we have a PowerShell script “DeployDSC_IIS.ps1” we use to actually push our configuration to Azure, which can also be done through the Portal as well. Also, our deploy script will push the PowerShell DSC extension to our Target VM. We have the storage account where our PowerShell configuration will live in Azure once we push it from our client machine where we developed the configuration. I should note that since this is a simple configuration file, we can easily imagine having source control around these configuration changes such that we always know who made what change when or simply integrate with your current Change Management processes. Since the PowerShell DSC extension is installed on the VM, it knows to “pull” the configuration from the storage account. Finally, we have a “Node” which is simply the Azure VM which is the target of the DSC Configuration.

As you can see in the diagram, we want to ensure our Target VM or Node is an IIS Web-Server if not already in order to meet our Desired state.

About the Author
Learning Paths

Chris has over 15 years of experience working with top IT Enterprise businesses.  Having worked at Google helping to launch Gmail, YouTube, Maps and more and most recently at Microsoft working directly with Microsoft Azure for both Commercial and Public Sectors, Chris brings a wealth of knowledge and experience to the team in architecting complex solutions and advanced troubleshooting techniques.  He holds several Microsoft Certifications including Azure Certifications.

In his spare time, Chris enjoys movies, gaming, outdoor activities, and Brazilian Jiu-Jitsu.