DSC Resource Kit Release March 2017

Katie Keim [MSFT]

We just released the DSC Resource Kit!

This release includes updates to 10 DSC resource modules, including 19 new DSC resources. In these past 6 weeks, 155 pull requests (the most ever!) have been merged and 71 issues have been closed, all thanks to our amazing community!

A few weeks ago we also released a new DSC resource module called SecurityPolicyDsc with resources to configure local security policies through secedit. Thank you to Jason Walker for this great new module!

The modules updated in this release are:

  • OfficeOnlineServerDsc
  • PSDscResources
  • SecurityPolicyDsc
  • SharePointDsc
  • xCertificate
  • xExchange
  • xPSDesiredStateConfiguration
  • xRemoteDesktopSessionHost
  • xSQLServer
  • xWindowsUpdate

For a detailed list of the resource modules and fixes in this release, see the Included in this Release section below.

Our last community call for the DSC Resource Kit was last week on March 1. A recording of our updates as well as summarizing notes are available. Join us next time at 9AM PST on April 12 to ask questions and give feedback about your experience with the DSC Resource Kit. Keep an eye on the community agenda for the link to the call.

We strongly encourage you to update to the newest version of all modules using the PowerShell Gallery, and don’t forget to give us your feedback in the comments below, on GitHub, or on Twitter (@PowerShell_Team)!

All resources with the ‘x’ prefix in their names are still experimental – this means that those resources are provided AS IS and are not supported through any Microsoft support program or service. If you find a problem with a resource, please file an issue on GitHub.

Included in this Release

You can see a detailed summary of all changes included in this release in the table below. For past release notes, go to the README.md or Changelog.md file on the GitHub repository page for a specific module (see the How to Find DSC Resource Modules on GitHub section below for details on finding the GitHub page for a specific module).

Module Name Version Release Notes
  • Added documentation to the module to finalise for release
  • Renamed resources to shorten names before release
    • “OfficeOnlineServerWebAppsFarm” becomes “OfficeOnlineServerFarm”
    • “OfficeOnlineServerWebAppsMachine” becomes “OfficeOnlineServerMachine”
  • Enable codecov.io code coverage reporting
  • Group
    • Added support for domain based group members on Nano server.
  • Added the Archive resource
  • Update Test-IsNanoServer cmdlet to properly test for a Nano server rather than the core version of PowerShell
  • Registry
    • Fixed bug where an error was thrown when running Get-DscConfiguration if the registry already existed
  • SecurityTemplate: Remove [ValidateNotNullOrEmpty()] attribute for IsSingleInstance parameter
  • Fixed typos
    • Updated SPWebApplication to allow Claims Authentication configuration
    • Updated documentation in regards to guidance on installing binaries from

network locations instead of locally

  • New resources: SPFarmPropertyBag
  • Bugfix in SPSite, which wasnt returing the quota template name in a correct way
  • Bugfix in SPAppManagementServiceApp which wasnt returning the correct database


  • Bugfix in SPAccessServiceApp which did not return the database server
  • Bugfix in SPDesignerSettings which filtered site collections with an incorrect


  • Updated the parameters in SPFarmSolution to use the full namespace
  • Bugfix in SPFarmsolution where it returned non declared parameters
  • Corrected typo in parameter name in Get method of SPFeature
  • Added check in SPHealAnalyzerRuleState for incorrect default rule schedule of

one rule

  • Improved check for CloudSSA in SPSearchServiceApp
  • Bugfix in SPSearchServiceApp in which the database and dbserver were not

returned correctly

  • Improved runtime of SPSearchTopology by streamlining wait processes
  • Fixed bug with SPSearchServiceApp that would throw an error about SDDL string
  • Improved output of test results for AppVeyor and VS Code based test runs
  • Fixed issue with SPWebAppPolicy if OS language is not En-Us
  • Added SPFarm resource, set SPCreateFarm and SPJoinFarm as deprecated to be

removed in version 2.0

  • Converted AppVeyor build process to use AppVeyor.psm1.
  • Correct Param block to meet guidelines.
  • Moved shared modules into modules folder.
  • xCertificateExport:
    • Added new resource.
  • Cleanup xCertificate.psd1 to remove unneccessary properties.
  • Converted AppVeyor.yml to use DSCResource.tests shared code.
  • Opted-In to markdown rule validation.
  • Examples modified to meet standards for auto documentation generation.
  • xExchDatabaseAvailabilityGroup: Added parameter AutoDagAutoRedistributeEnabled,PreferenceMoveFrequency
  • Moved DSC pull server setup tests to DSCPullServerSetup folder for new common tests
  • xArchive:
    • Updated the resource to be a high quality resource
    • Transferred the existing “unit” tests to integration tests
    • Added unit and end-to-end tests
    • Updated documentation and examples
  • xUser
    • Fixed error handling in xUser
  • xRegistry
    • Fixed bug where an error was thrown when running Get-DscConfiguration if the registry key already existed
  • Updated Test-IsNanoServer cmdlet to properly test for a Nano server rather than the core version of PowerShell
  • Updated CollectionName parameter to validate length between 1 and 15 characters, and added tests to verify.
  • Changes to xSQLServerConfiguration
    • BREAKING CHANGE: The parameter SQLInstanceName is now mandatory.
    • Resource can now be used to define the configuration of two or more different DB instances on the same server.
  • Changes to xSQLServerRole
    • xSQLServerRole now correctly reports that the desired state is present when the login is already a member of the server roles.
  • Added new resources
    • xSQLServerAlwaysOnAvailabilityGroup
  • Changes to xSQLServerSetup
    • Properly checks for use of SQLSysAdminAccounts parameter in $PSBoundParameters. The test now also properly evaluates the setup argument for SQLSysAdminAccounts.
    • xSQLServerSetup should now function correctly for the InstallFailoverCluster action, and also supports cluster shared volumes. Note that the AddNode action is not currently working.
    • It now detects that feature Client Connectivity Tools (CONN) and Client Connectivity Backwards Compatibility Tools (BC) is installed.
    • Now it can correctly determine the right cluster when only parameter InstallSQLDataDir is assigned a path (issue 401).
    • Now the only mandatory path parameter is InstallSQLDataDir when installing Database Engine (issue 400).
    • It now can handle mandatory parameters, and are not using wildcards to find the variables containing paths (issue 394).
    • Changed so that instead of connection to localhost it is using $env:COMPUTERNAME as the host name to which it connects. And for cluster installation it uses the parameter FailoverClusterNetworkName as the host name to which it connects (issue 407).
    • When called with Action = “PrepareFailoverCluster”, the SQLSysAdminAccounts and FailoverClusterGroup parameters are no longer passed to the setup process (issues 410 and 411).
    • Solved the problem that InstanceDir and InstallSQLDataDir could not be set to just a qualifier, i.e “E:” (issue 418). All paths (except SourcePath) can now be set to just the qualifier.
  • Enables CodeCov.io code coverage reporting.
  • Added badge for CodeCov.io to README.md.
  • Examples
    • xSQLServerMaxDop
      • 1-SetMaxDopToOne.ps1
      • 2-SetMaxDopToAuto.ps1
      • 3-SetMaxDopToDefault.ps1
    • xSQLServerMemory
      • 1-SetMaxMemoryTo12GB.ps1
      • 2-SetMaxMemoryToAuto.ps1
      • 3-SetMinMaxMemoryToAuto.ps1
      • 4-SetMaxMemoryToDefault.ps1
    • xSQLServerDatabase
      • 1-CreateDatabase.ps1
      • 2-DeleteDatabase.ps1
  • Added tests for resources
    • xSQLServerMaxDop
    • xSQLServerMemory
  • Changes to xSQLServerMemory
    • BREAKING CHANGE: The mandatory parameter now include SQLInstanceName. The DynamicAlloc parameter is no longer mandatory
  • Changes to xSQLServerDatabase
    • When the system is not in desired state the Test-TargetResource will now output verbose messages saying so.
  • Changes to xSQLServerDatabaseOwner
    • Fixed code style, added updated parameter descriptions to schema.mof and README.md.
    • Converted appveyor.yml to install Pester from PSGallery instead of from


  • Fixed PSScriptAnalyzer issues.
  • Fixed common test breaks (markdown style, and example style).
  • Added CodeCov.io reporting
  • Deprecated xMicrosoftUpdate as it”s functionality is replaced by xWindowsUpdateAgent

How to Find Released DSC Resource 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 enter a module’s name in the search box in the upper right corner of the PowerShell Gallery to find a specific module.

Of course, you can also always use PowerShellGet (available in WMF 5.0) to find modules with DSC Resources:

# To list all modules that are part of the DSC Resource Kit
Find-Module -Tag DSCResourceKit 
# To list all DSC resources from all sources 

To find a specific module, go directly to its URL on the PowerShell Gallery: http://www.powershellgallery.com/packages/< module name > For example: http://www.powershellgallery.com/packages/xWebAdministration

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

Install-Module -Name < module name >

For example:

Install-Module -Name xWebAdministration

To update all previously installed modules at once, open an elevated PowerShell prompt and use this command:


After installing modules, you can discover all DSC resources available to your local system with this command:


How to Find DSC Resource Modules on GitHub

All resource modules in the DSC Resource Kit are available open-source on GitHub. You can see the most recent state of a resource module by visiting its GitHub page at: https://github.com/PowerShell/< module name > For example, for the xCertificate module, go to: https://github.com/PowerShell/xCertificate.

All DSC modules are also listed as submodules of the DscResources repository in the xDscResources folder.

How to Contribute

You are more than welcome to contribute to the development of the DSC Resource Kit! There are several different ways you can help. You can create new DSC resources or modules, add test automation, improve documentation, fix existing issues, or open new ones. See our contributing guide for more info on how to become a DSC Resource Kit contributor.

If you would like to help, please take a look at the list of open issues for the DscResources repository. You can also check issues for specific resource modules by going to: https://github.com/PowerShell/< module name >/issues For example: https://github.com/PowerShell/xPSDesiredStateConfiguration/issues

Your help in developing the DSC Resource Kit is invaluable to us!

Questions, comments?

If you’re looking into using PowerShell DSC, have questions or issues with a current resource, or would like a new resource, let us know in the comments below, on Twitter (@PowerShell_Team), or by creating an issue on GitHub.

Katie Keim Software Engineer PowerShell Team @katiedsc (Twitter) @kwirkykat (GitHub)


Discussion is closed.

Feedback usabilla icon