Note
The next generation of this platform is in development. Please submit your feedback on DSC v3.
PSDesiredStateConfiguration (DSC) is the PowerShell module that enables writing configuration as code.
The DSC platform was originally built on top of WMI for Windows. Starting in PowerShell 7.1 and working
with internal partner teams
Azure Guest Configuration
and Automanage, we started making
DSC cross-platform by enabling Invoke-DSCResource
to directly use resources without going through
the Local Configuration Manager (LCM).
Our initial cross-platform work to enable partner teams:
- Separated out the DSC parts in the PowerShell engine and moved them as a subsystem into the PSDesiredStateConfiguration module
- Remove PSDesiredStateConfiguration module from the PowerShell 7 package. This allows the
PSDesiredStateConfiguration module to be developed independently of PowerShell and users can mix
and match versions of PowerShell and PSDesiredStateConfiguration for their environment.
- This is now available on the PowerShell Gallery: PSDesiredStateConfiguration 2.x
- Removing the dependency on MOF: Initially, only support DSC Resources written as PowerShell classes. This includes tooling to convert existing script based DSC Resources to be wrapped as PowerShell classes.
The documentation for PSDesiredStateConfiguration 3.0.0-beta1 is a work-in-progress. We invite the community to review the documentation and assist us as we work on new documentation during the platform development.
For more information about DSC v3, see PowerShell Desired State Configuration Overview
To download the latest release from the PowerShell Gallery, see PSDesiredStateConfiguration 3.0.0-beta1
As we continue this journey to make DSC a cross-platform technology, we invite the community to share your ideas and open issues. During the PowerShell 7.3 timeframe, we remain focused on enabling partner teams and will not be accepting public pull requests.
- Any recent PowerShell Core release to run the build script
- .NET Core SDK of the version specified in
global.json
(dotnet
should be visible through PATH env var) PSPackageProject
module installed from PS Gallery
- Run
build.ps1 -Build -Clean
- Compiled module will be in
./out/PSDesiredStateConfiguration
CI pipeline definition is in .vsts-ci\azure-pipelines-ci.yml
and running Compliance and Pester tests in test\PSDesiredStateConfiguration.Tests.ps1
on Windows, Linux and Mac. CI builds are not signed.
The module is released on Powershell Gallery.
For a release the code of this repo is mirrored into an internal repo and .vsts-ci\azure-pipelines-release.yml
pipeline is run. Release builds are signed.