PowerShell DSC: tips to get started right now


You can either specify the exact hostname or use to trigger deployment across multiple systems. Now that the pull server is set up correctly, you can deploy your first configuration to a node. To do this, create another configuration on your pull server. But this time, we’re going to create it for another server on the network. For those of you who have worked with WMI, you’re familiar with the MOF, which is a way of defining WMI classes and their properties.

  • Once the process completes, ensure that the status reads Connected.
  • Whenever a node onboards to the Automation Account, it gets its own certificate, which is valid only for one year.
  • The PowerShell extension includes PSScriptAnalyzer by default, and automatically performs analysis on PowerShell script files you edit in VS Code.
  • This tutorial will be using a Resource Group called DSC_RG and an Ubuntu VM called UbuntuDSC.

A DSC configuration is written in PowerShell and saved as a .ps1 file. The .mof file is then executed in order to set the configuration of the target node. The files can be part of a source control method and can have version numbers to help track changes. This post is intended for those who are new to DSC, so we will use a simpler pull process to get started.

The important point is that the configuration is written in code and can become part of the source-controlled code of a server project. Obtain the VM’s public IP address with the Get-AzPublicIpAddress PowerShell cmdlet. DSC https://forexaggregator.com/ Compile CheckOnce the compilation job is complete, navigate back to the VM View under the Configuration Management option. Click through the VMs and select “Assign Node configuration” to assign the policy to the nodes.

I often see individuals trying to learn something new on their current work computer but restrict themselves on what they could know. Go spin up a cloud environment and go crazy; try it all, with no limitations, with no worry of ruining your nice work computer. Without a solid connection, remote desktops simply cannot function. VMware has improved Horizon Cloud and added features to Workspace One UEM. It also plans to launch a managed virtual desktop … Windows 11 desktops can run into problems that don’t have a clear cause. Safe Mode runs a pared-down version of the OS, making it…

A tutorial for working with Lability

You can have multiple configuration sections in one script based on your environment needs for server and workstations. The Get-DscConfigurationStatus queries the local configuration status of the machine. You can refer to this command to check the Pull Mode of the DSC and Status to confirm if the node is registered successfully along with the Date and Time of node registration. Desired State Configuration is an essential element of server, support, and administration Windows-based setup. It allows a PowerShell script to provide an explanatory model to effectively handle and manage device set up in a standard, direct way. In this article, we’ll see how you can use PowerShell Desired State Configuration Template in your cloud environment provisioned in any Public or Private Cloud to manage your infrastructure.

  • DSC Compile CheckOnce the compilation job is complete, navigate back to the VM View under the Configuration Management option.
  • CodeLens function reference support shows the number of times a function is referenced within your code and allows you to jump to specific references.
  • Currently, Azure Automation doesn’t support automatic certification renewal.

The configured servers then need to be configured to poll the pull server to determine if there is a new MOF file available. The Push method is perhaps the easiest method to start with. This method requires the user to push the desired state configuration to the server by calling the Start-DscConfiguration cmdlet. This has the advantage of starting immediately to apply the configuration.

Get the DSC resource to configure

I’m talking about server configuration settings that change over time, typically by the “Not Me” ghost from Bil Keane’s Family Circus cartoon. Each target computer defined by a DSC script is called a node. The name of the node is passed into the script using the $ComputerName parameter supplied when compiling the configuraton.

He is a writer, trainer and presenter and authors IT pro course content for Pluralsight. He is also a regular contributor to numerous print and online publications and presents at various user groups and conferences. You can find Adam at his site listed below or on Twitter at @adbertram.

Creating DSC Class-Based Resources

You’ll see that a file ending with .checksum is now in the Configuration directory. This is the line that actually applies the configuration generated from the MOF file. Do you see the message “Applying Configuration” in the previous figure? But if you’re running any prior operating system, this step must happen. This installs the DSC service, Internet Information Services and a few other Windows features necessary for DSC to function correctly.

How do you create an organization that is nimble, flexible and takes a fresh view of team structure? These are the keys to creating and maintaining a successful business that will last the test of time. Creating a lab environment will allow you to isolate what you do and enable full creativity.

powershell dsc tutorial

Refer to the Microsoft documentation for more information. For DSC, we use the Configuration keyword to define the configuration. In this example, WindowsFeature is the component we are configuring. You can see that we define three separate instances of the WindowsFeature component, one for each component we want to configure. Each configured instance needs its own unique name, as the name is used as a key when converting into the MOF file.

DSC allows you to configure the Windows Operating System and Applications using a configuration file with PowerShell commands. It is similar to other configuration management systems such as Puppet or Ansible. You can describe the required configuration, otherwise known as the state in a configuration file, then use PowerShell to apply it to single or multiple computers and servers.

Now that our configuration is set up, we need to configure our test server to point to our new pull server. To do this, we need to run another script on the pull server. After pulling a configuration from a pull server, DSC ensures the copy went correctly by verifying a checksum. After it’s renamed, the MOF file then needs to be copied to the DscService\Configuration directory on the pull server to be retrieved by our target server. This tiny script contains a Configuration script block that’s ensuring the Windows feature Windows-Server-Backup is installed.

The MOF file generated is always the name of the Node inside the Configuration block. After the pull server configuration has run, it’s a good idea to verify the correct websites were created. One way to do that is to simply bring up the website in Internet Explorer on the pull server itself. How to scale a database DSC is a command-line tool that enables admins to use a PowerShell-based scripting language to configure Windows and/or Linux systems. Although it’s possible to configure a system without the aid of DSC using nothing but PowerShell cmdlets, DSC is designed to simplify the process.

This step is subjective to the modules that you use in your script. Since the Automation account is working as a pull server, the server needs to register the modules on its own environment before it’s usable for the nodes. The way Automation Account keeps the inventory of the installed modules is using its Modules Library under the Shared Resource option in the portal.

To compile the configuration, we need to run that configuration and it will generate the Managed Object Format file for each node. You can configure the PowerShell extension to use any supported version of PowerShell installed on your machine by following these instructions. While I do see a DSC log in Event Viewer in the preview version, I did not see any entries that indicate that it’s logging detailed set-operations for a given configuration. So more on logging later, but it does appear to be available at some level. I also think there will be some logging happening at the Pull Server. After creating a class-based PowerShell DSC Resource, it must be “exported” from a module, using a module manifest (.psd1) file.

PowerShell DSC: tips to get started right now

Several third-party solutions such as Ansible, Chef, and Puppet exist, but they are paid Linux-based products. For Windows folks, there is a free and Windows-centric option available; PowerShell Desired State Configuration . In this 8 Outstanding Examples of Human-Centered Design Every Business Needs to See, I’ll show you how to get started with PowerShell DSC and provide some basic examples of how to use it. Both extensions can be installed, but only one should be enabled. This allows you to switch from the stable to the preview version to try out new features. The Pull Server is called the DSC “Service”, although it’s really just an IIS endpoint.

powershell dsc tutorial

PSScriptAnalyzer is a PowerShell module that provides a static source code checker for modules and scripts. PSScriptAnalyzer has rules that verify the quality of PowerShell code. Obviously there is a lot of flexibility in targeting here.


Unfortunately, when I enabled this service on my 2012-R2 Preview server, the install didn’t quite seem to take, so more on this in later builds. For the purpose of this demo, I’ve created a brand new Hyper-V Virtual Machine on my host, which is located in my office in Gatineau, Quebec. That VM is a plain-vanilla install of Windows Server 2019 on which I’ve installed the Azure Connected Machine Agent and which I on-boarded onto Azure Arc.


Please enter your comment!
Please enter your name here