The Windows PowerShell Desired State Configuration (DSC) is a powerful and easy to use the system for implementing configuration management in your environment. This blog post will provide you with an introduction to what DSC is, how it works, and why you should be using it.
DSC is a declarative system, meaning that you define the desired state of your environment and DSC takes care of ensuring that it is always in this state. This can be done by defining configuration files that describe the desired state, or by using PowerShell scripts to manage your configurations.
Benefits of DSC
One of the great benefits of DSC is that it can be used to define configurations for both Windows and non-Windows devices. One of the most popular examples of this is managing IIS hosting websites using DSC on a Linux server, with site definitions being stored in configuration files such as web.config or applicationHost.config rather than XML schema files which are managed by WAP (Windows Application Platform), the IIS application hosting framework for Windows servers.
The DSC system is comprised of two components: a client and server component which work together to manage configurations on devices in your environment referred to as nodes. The DSC Client can be installed on any Microsoft operating system that has PowerShell version 5 or higher installed. The DSC Server is a management server role that can be installed on any Windows operating system.
In order to use the DSC, you must first install the WMF (Windows Management Framework) which includes PowerShell and the DSC resource modules. On Windows machines with PowerShell 5.1 installed there is no need to manually install it as it is already installed by default.
Once you have installed WMF, you can then update the DSC default resources by running the following PowerShell command:
You can also install the DSC server role by running the following PowerShell command:
Add-WindowsFeature -Name Windows-PowerShell-DSC
Note: The DSC Server is only needed for an advanced configuration where pull mode is used.
Once you have installed the DSC Windows PowerShell modules, you will be able to build your own configurations using a variety of resources that are available for configuring devices.
You can also download pre-built configuration files from Microsoft’s GitHub repository.
Once you have downloaded these files, you can import them into the local directory on your computer by running the following PowerShell command:
Import-DSCResource -ModuleName xPSDesiredStateConfiguration
This will add all of the resources defined in the configuration files to your local DSC resource module. You can then use these resources to create configurations for your nodes.
Configurations are written in a declarative format, meaning that you define the desired state of a device is.
In the next few blog posts, we will cover DSC in-depth including managing Microsoft 365 using DSC.