{"id":20831,"date":"2025-06-18T06:12:40","date_gmt":"2025-06-18T14:12:40","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/powershell\/?p=20831"},"modified":"2025-06-18T06:16:55","modified_gmt":"2025-06-18T14:16:55","slug":"announcing-dsc-v3-1-0","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/announcing-dsc-v3-1-0\/","title":{"rendered":"Announcing Microsoft Desired State Configuration v3.1.0"},"content":{"rendered":"<p><!-- markdownlint-disable MD041 --><\/p>\n<p>We&#8217;re pleased to announce the General Availability of Microsoft&#8217;s Desired State Configuration (DSC)\nversion 3.1.0. This release marks a significant milestone in our effort to deliver cloud-native\nconfiguration management for cross-platform environments. DSC is a declarative configuration and\norchestration platform that defines a standard way of exposing settings for applications and\nservices. DSC v3.1.0 is built on collaboration with key improvements driven by partner requests.\nSpecial thanks to the Windows Package Manager (WinGet) team and the incredible support of the DSC\ncommunity.<\/p>\n<p>For additional details about the initial DSC v3.0.0 release, see:<\/p>\n<ul>\n<li>DSC v3.0.0 <a href=\"https:\/\/devblogs.microsoft.com\/powershell\/announcing-dsc-v3\/\">Announcement<\/a><\/li>\n<li>DSC v3.0.0 <a href=\"https:\/\/devblogs.microsoft.com\/powershell\/get-started-with-dsc-v3\/\">Get Started<\/a><\/li>\n<li>DSC v3.0.0 <a href=\"https:\/\/devblogs.microsoft.com\/powershell\/enhanced-authoring-with-dsc-v3\/\">Enhanced Authoring<\/a><\/li>\n<\/ul>\n<h2>What\u2019s New in DSC v3.1<\/h2>\n<p>This release continues our momentum by delivering features and improvements\ndriven by real world use, partner feedback, and community contributions.<\/p>\n<p>DSC v3.1 includes updates and fixes across the platform. Here are some of the\nmost important improvements:<\/p>\n<p><strong>WinGet and partner-driven enhancements<\/strong><\/p>\n<ul>\n<li>Core infrastructure updates to enable DSC-based management in WinGet scenarios.<\/li>\n<li>Extended resource invocation APIs, allowing for richer integration by external tools.<\/li>\n<li>Increased flexibility for configuration refresh and reporting, driven by partner needs.<\/li>\n<\/ul>\n<p><strong>Resource authoring improvements<\/strong><\/p>\n<ul>\n<li>Improved handling and validation for resource schema files, with clearer error messages.<\/li>\n<li>Fixed issues with module loading and path resolution that impacted PSDSC resources.<\/li>\n<li>More robust handling of resources with required and optional properties.<\/li>\n<\/ul>\n<p><strong>Cross-Platform reliability and bug fixes<\/strong><\/p>\n<ul>\n<li>Fixed several Linux-specific issues in resource execution, state detection, and error\nreporting.<\/li>\n<li>Improved Windows compatibility, particularly for recent versions and in mixed-OS\nenvironments.<\/li>\n<li>Addressed inconsistencies in the application of <strong>ensure<\/strong> properties and desired state\nevaluation.<\/li>\n<\/ul>\n<p><strong>Performance and quality<\/strong><\/p>\n<ul>\n<li>Optimized configuration drift detection, resulting in faster and more reliable test\noperations.<\/li>\n<li>Reduced occurrence of configuration runs left in an indeterminate or failed state.<\/li>\n<li>Improved error handling for edge cases in <code>set<\/code>, <code>test<\/code>, and <code>get<\/code> operations.<\/li>\n<\/ul>\n<p><strong>Diagnostics and usability<\/strong><\/p>\n<ul>\n<li>Expanded logging and diagnostics, making it easier to trace resource behavior and\nconfiguration activity.<\/li>\n<li>Improved the clarity and usefulness of error and warning messages across platforms.<\/li>\n<li>More consistent reporting of operation outcomes in both interactive and automated\nscenarios.<\/li>\n<\/ul>\n<p>For a full list of changes, see the <a href=\"https:\/\/github.com\/PowerShell\/DSC\/blob\/main\/CHANGELOG.md\">DSC v3.1 changelog<\/a><\/p>\n<h2>Installing DSC<\/h2>\n<p>To get started, follow these steps to install DSC on your system:<\/p>\n<p>On Windows, you can install DSC from the Microsoft Store using <code>winget<\/code>. By installing from the\nStore or using <code>winget<\/code>, you get automatic updates for DSC.<\/p>\n<p>Search for the latest version of DSC:<\/p>\n<pre><code class=\"language-powershell\">winget search DesiredStateConfiguration --source msstore<\/code><\/pre>\n<pre><code class=\"language-output\">Name                              Id           Version Source\n---------------------------------------------------------------\nDesiredStateConfiguration         9NVTPZWRC6KQ Unknown msstore\nDesiredStateConfiguration-Preview 9PCX3HX4HZ0Z Unknown msstore<\/code><\/pre>\n<p>Install DSC using the <code>id<\/code> parameter:<\/p>\n<pre><code class=\"language-powershell\"># Install latest stable\nwinget install --id 9NVTPZWRC6KQ --source msstore<\/code><\/pre>\n<pre><code class=\"language-powershell\"># Install latest preview\nwinget install --id 9PCX3HX4HZ0Z --source msstore<\/code><\/pre>\n<p>On Linux and macOS, you can install DSC using the following steps:<\/p>\n<ol>\n<li>Download the latest release from the <a href=\"https:\/\/github.com\/PowerShell\/DSC\/releases\">PowerShell\/DSC<\/a> repository.<\/li>\n<li>Expand the release archive.<\/li>\n<li>Add the folder containing the expanded archive contents to your <code>PATH<\/code> environment variable.<\/li>\n<\/ol>\n<h2>Support lifecycle<\/h2>\n<p>DSC follows semantic versioning. <\/p>\n<p>The first release of DSC version 3.0.0 is a Stable release. DSC version 3.1.0 is the current Stable\nrelease. Patch releases update the third digit of the semantic version number. For example, 3.1.1 is\na patch update to 3.1.0. Stable releases receive patches for critical bugs and security\nvulnerabilities for three months after the next Stable release. For example, version 3.1.0 is\nsupported for three months after 3.2.0 is released.<\/p>\n<p>Always update to the latest patch version of the release you&#8217;re using.<\/p>\n<h2>Call to action<\/h2>\n<p>For more information about Desired State Configuration v3.0 (DSC), see the <a href=\"https:\/\/learn.microsoft.com\/powershell\/dsc\/overview?view=dsc-3.0\">DSC documentation<\/a>.\nWe value your feedback. Stop by our <a href=\"https:\/\/github.com\/PowerShell\/DSC\">GitHub repository<\/a> and let us know of any issues you find.<\/p>\n<p>Jason Helmick<\/p>\n<p>Sr. Product Manager, PowerShell<\/p>\n<p><!-- link references --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post announces the release of Microsoft Desired State Configuration v3.1.0. We discuss the features and benefits of DSC and how it differs from PowerShell DSC.<\/p>\n","protected":false},"author":7527,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[3197],"class_list":["post-20831","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-powershell-dsc"],"acf":[],"blog_post_summary":"<p>This post announces the release of Microsoft Desired State Configuration v3.1.0. We discuss the features and benefits of DSC and how it differs from PowerShell DSC.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/20831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/7527"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=20831"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/20831\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=20831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=20831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=20831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}