DSC Resource Kit updates are here!

Karol Kaczmarek [MSFT]

You may be wondering what’s happening in the area of DSC Resource Kit and if that’s the case, read on.

Over the last month we’ve accepted 47 pull requests, fixed 16 issues, updated 9 modules and added 5 new resources! The new resources are xExchMaintenanceMode, xExchMailboxServer, xExchTransportService and xExchEventLogLevel in the xExchange module as well as xDefaultGatewayAddress shipped as part of the  Networking module. These new additions bring us to the total of 225 DSC resources!

For details about the updates and bug fixes available in the recent releases, please scroll to the “What has been recently released?” section below.

We strongly encourage you to update to the newest versions of the modules using the PowerShell Gallery, start using them and don’t forget to let us know your feedback in the comments below, on GitHub or Twitter (#PSDSC)!


Where can I find all released DSC modules?

To see a list of all released DSC Resource Kit modules, go to the PowerShell Gallery and display all modules tagged as DSCResourceKit. You can also type a module’s name in the search box on the upper right side of the PowerShell Gallery to find specific module.

Another way is to go directly to a specific module by typing it’s URL:




Of course, you can always use PowerShellGet (available in WMF 5.0) as well:



How can I install DSC resources from the PowerShell Gallery?

We recommend that you use PowerShellGet to install DSC resource modules:

Install-Module –Name <Module_Name>


Install-Module –Name xWebAdministration

If you have previous versions of modules installed, you can update them by calling (from an elevated PowerShell prompt):


If there is an issue you are particularly concerned about, watch the version number in the PowerShell Gallery for updates to that particular resource. You can also file an Issue against the module on GitHub to help get it fixed.

After installing the modules, you can discover all of the resources available to your local system by running:


As with the previous Resource Kits, all the resources are experimental. The “x” prefix in the names stands for experimental – which means these resources are provided AS IS and are not supported through any Microsoft support program or service.


How can I find DSC modules on GitHub?

As we mentioned in April, we’ve open sourced development of DSC resources on GitHub. You can see the most recent state of all resources by going to their GitHub pages at https://github.com/PowerShell/<Module_Name>, e.g. for xCertificate module, go to: https://github.com/PowerShell/xCertificate.

All DSC modules are also listed as submodules of the DscResources repository, so that you can see them in one place (click the xDscResources folder).


How can I contribute?

You are more than welcome to contribute to development of DSC resource modules and there’s many ways to do it. You can create new DSC resources or modules, add test automation, improve documentation, fix existing issues or open new ones. Most of the information you need to get started can be found in our contributing

If you are not sure what can you do, but would like to help anyway, please take a look at list of open issues for DscResources repository. You can also check issues opened for specific modules by going to https://github.com/PowerShell/<Module_Name>/issues , e.g. https://github.com/PowerShell/xPSDesiredStateConfiguration/issues.

Your help in developing DSC is much appreciated!


What has been recently released?

You can see a detailed summary of all recent changes in the table below.

If you want to see a change log for previous versions, go to the GitHub repository page for a given module (see section “How can I find DSC modules on GitHub?” for details).


Module name




  • Added DNS flush in retry loop
  • Bug fixes in xADDomain resource



  • Error output improvements


  • Remove UTF8 BOM
  • Added source parameter for offline use


  • Fix to retrieving settings for record data


  • Fixed issue with not being able to import the module twice 


  • Added following resources:
    • xExchMaintenanceMode
    • xExchMailboxServer
    • xExchTransportService
    • xExchEventLogLevel
  • For all *-ExchangeCertificate functions in
      xExchExchangeCertificate, added ‘-Server $env:COMPUTERNAME’ . This will
      prevent the resource from configuring a certificate on an incorrect server.
  • Fixed issue with reading MailboxDatabases.csv in xExchangeConfigHelper.psm1 caused by a column name changed introduced in v7.7 of the Exchange Server Role Requirements Calculator.
  • Changed function GetRemoteExchangeSession so that it will throw an exception if Exchange setup is in progress. This will prevent resources from trying to execute while setup is running.
  • Fixed issue where VirtualDirectory resources would incorrectly try to restart a Back End Application Pool on a CAS role only server.
  • Added support for the AddUMLanguagePack parameter in xExchInstall 


  • Added following resources:
    • xDefaultGatewayAddress
  • MSFT_xFirewall: Removed code using DisplayGroup to lookup Firewall Rule because it was redundant.
  • MSFT_xFirewall: Set-TargetResource now updates
      firewall rules instead of recreating them.
  • MSFT_xFirewall: Added message localization support.
  • MSFT_xFirewall: Removed unnecessary code for
      handling multiple rules with same name.
  • MSFT_xDefaultGatewayAddress: Removed unnecessary
      try/catch logic from around networking cmdlets.
  • MSFT_xIPAddress: Removed unnecessary try/catch
      logic from around networking cmdlets.
  • MSFT_xDNSServerAddress: Removed unnecessary
      try/catch logic from around networking cmdlets.
  • MSFT_xDefaultGatewayAddress: Refactored to add
      more unit tests and cleanup logic.
  • MSFT_xIPAddress: Network Connection Profile no
      longer forced to Private when IP address changed.
  • MSFT_xIPAddress: Refactored to add more unit
      tests and cleanup logic.
  • MSFT_xDNSServerAddress: Refactored to add more
      unit tests and cleanup logic.
  • MSFT_xFirewall: Refactored to add more unit tests
      and cleanup logic.
  • MSFT_xIPAddress: Removed default gateway
      parameter – use xDefaultGatewayAddress resource.
  • MSFT_xIPAddress: Added check for IP address
      format not matching address family.
  • MSFT_xDNSServerAddress: Corrected error
      message when address format doesn’t match address family.



  • Support for MinRole options in SharePoint 2016

  • Fix to distributed cache deployment of more than one server

  • Additional bug fixes and stability improvements


  • Added support for PsDscRunAsCredential in PowerShell 5 resource use

  • Removed timeout loop in xSPJoinFarm in favor of WaitForAll resource in PowerShell 5


  • Updated documentation: changed parameter name
      Count to RetryCount in xWaitForDisk resource


Questions, comments?

If you’re looking into using PowerShell DSC, but have questions, are blocked by issues with current resources, or a lack of resources, let us know in the comments or create an issue on GitHub.


Karol Kaczmarek          

Software Engineer

PowerShell Team


Discussion is closed.

Feedback usabilla icon