DSC Resource Kit September Release

Katie Keim [MSFT]

We just released the DSC Resource Kit!

Since our last release on August 10, we have added 2 brand new modules from the community:

Thanks Brian and Daniel for all your hard work!

This release includes updates to 14 DSC resource modules, including 15 new DSC resources. In these past 6 weeks, 94 pull requests have been merged and 81 issues have been closed, all thanks to our amazing community!

The modules updated in this release are:

  • OfficeOnlineServerDsc
  • SharePointDsc
  • SystemLocaleDsc
  • xDscDiagnostics
  • xExchange
  • xNetworking
  • xPSDesiredStateConfiguration
  • xSCSMA
  • xSmbShare
  • xSQLServer
  • xStorage
  • xSystemSecurity
  • xTimeZone
  • xWebAdministration

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 September 15. Thank you to everyone who joined the call! If you missed it, a recording, an IM transcript, and summarizing notes are available. Join us next time to ask questions and give feedback about your experience with the DSC Resource Kit. Keep an eye on the community agenda for the next call date.

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)!

As with past Resource Kits, 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

  • Initial release

  • Fixed a bug that caused OfficeOnlineServerWebAppsMachine to fail a test when the machine to join was specified using a fully qualified domain name (FQDN)
  • Fixed typo on return value in SPServiceAppProxyGroup
  • Fixed SPJoinFarm to not write output during successful farm join
  • Fixed issue with SPSearchTopology to keep array of strings in the hashtable returned by Get-Target
  • Fixed issue with SPSearchTopology that prevented topology from updating where ServerName was not returned on each component
  • Added ProxyName parameter to all service application resources
  • Changed SPServiceInstance to look for object type names instead of the display name to ensure consistency with language packs
  • Fixed typos in documentation for InstallAccount parameter on most resources
  • Fixed a bug where SPQuotaTemplate would not allow warning and limit values to be equal
  • New resources: SPConfigWizard, SPProductUpdate and SPPublishServiceApplication
  • Updated style of all script in module to align with PowerShell team standards
  • Changed parameter ClaimsMappings in SPTrustedIdentityTokenIssuer to consume an array of custom object MSFT_SPClaimTypeMapping
  • Changed SPTrustedIdentityTokenIssuer to throw an exception if certificate specified has a private key, since SharePoint doesn’t accept it
  • Fixed issue with SPTrustedIdentityTokenIssuer to stop if cmdlet New-SPTrustedIdentityTokenIssuer returns null
  • Fixed issue with SPTrustedIdentityTokenIssuer to correctly get parameters ClaimProviderName and ProviderSignOutUri
  • Fixed issue with SPTrustedIdentityTokenIssuer to effectively remove the SPTrustedAuthenticationProvider from all zones before deleting the SPTrustedIdentityTokenIssuer
  • Initial release
  • Converted appveyor.yml to install Pester from PSGallery instead of from Chocolatey.
  • Added default value of “Present” for the Ensure parameter. (Note: due to how the module”s logic is written, this is a breaking change; DSC configs that did not specify a value for Ensure would have behaved as though it were set to Present in the Test-TargetResource function, but to absent in Set-TargetResource, removing the share instead of creating it.)
  • Add support for Nano Server and WMF5.1 via Get-Timezone/Set-Timezone cmdlets.
  • Minor changes to bring make resource ready for HQRM.
  • Renamed and reworked functions in TimezoneHelper.psm1 to prevent conflicts with new built-in WMF5.1 Timezone Cmdlets.
  • Fixed localization so that failback to en-US if culture specific language files not available.
  • Moved code to init C
  • xExchAutoMountPoint: Fix malformed dash/hyphen characters
  • Fix PSPossibleIncorrectComparisonWithNull issues from PowerShell Script Analyzer
  • Suppress PSDSCUseVerboseMessageInDSCResource Warnings from PowerShell Script Analyzer
  • Added resources
    • xSQLServerReplication
    • xSQLServerScript
    • xSQLAlias
    • xSQLServerRole
  • Added tests for resources
    • xSQLServerPermission
    • xSQLServerEndpointState
    • xSQLServerEndpointPermission
    • xSQLServerAvailabilityGroupListener
    • xSQLServerLogin
    • xSQLAOGroupEnsure
    • xSQLAlias
    • xSQLServerRole
  • Fixes in xSQLServerAvailabilityGroupListener
    • In one case the Get-method did not report that DHCP was configured.
    • Now the resource will throw “Not supported” when IP is changed between Static and DHCP.
    • Fixed an issue where sometimes the listener wasn”t removed.
    • Fixed the issue when trying to add a static IP to a listener was ignored.
  • Fix in xSQLServerDatabase
    • Fixed so dropping a database no longer throws an error
    • BREAKING CHANGE: Fixed an issue where it was not possible to add the same database to two instances on the same server.
    • BREAKING CHANGE: The name of the parameter Database has changed. It is now called Name.
  • Fixes in xSQLAOGroupEnsure
    • Added parameters to New-ListenerADObject to allow usage of a named instance.
    • pass setup credential correctly
  • Changes to xSQLServerLogin
    • Fixed an issue when dropping logins.
    • BREAKING CHANGE: Fixed an issue where it was not possible to add the same login to two instances on the same server.
  • Changes to xSQLServerMaxDop
    • BREAKING CHANGE: Made SQLInstance parameter a key so that multiple instances on the same server can be configured
  • Converted appveyor.yml to install Pester from PSGallery instead of from Chocolatey.
  • Added new example to show how to use xRunbookDirectory to remove all SMA sample Runbooks
  • Added new resource xSmaCredential.
  • xDSCWebService:
    • Added setting of enhanced security
    • Cleaned up Examples
    • Cleaned up pull server verification test
  • xProcess:
    • Fixed PSSA issues
    • Corrected most style guideline issues
  • xPSSessionConfiguration:
    • Fixed PSSA and style issues
    • Renamed internal functions to follow verb-noun formats
    • Decorated all functions with comment-based help
  • xRegistry:
    • Fixed PSSA and style issues
    • Renamed internal functions to follow verb-noun format
    • Decorated all functions with comment-based help
    • Merged with in-box Registry
    • Fixed registry key and value removal
    • Added unit tests
  • xService:
    • Added descriptions to MOF file.
    • Added additional details to parameters in Readme.md in a format that can be generated from the MOF.
    • Added DesktopInteract parameter.
    • Added standard help headers to *-TargetResource functions.
    • Changed indent/format of all function help headers to be consistent.
    • Fixed line length violations.
    • Changed localization code so only a single copy of localization strings are required.
    • Removed localization strings from inside module file.
    • Updated unit tests to use standard test enviroment configuration and header.
    • Recreated unit tests to be non-destructive.
    • Created integration tests.
    • Allowed service to be restarted immediately rather than wait for next LCM run.
    • Changed helper function names to valid verb-noun format.
    • Removed New-TestService function from MSFT_xServiceResource.TestHelper.psm1 because it should not be used.
    • Fixed error calling Get-TargetResource when service does not exist.
    • Fixed bug with Get-TargetResource returning StartupType “Auto” instead of “Automatic”.
    • Converted to HQRM standards.
    • Removed obfuscation of exception in Get-Win32ServiceObject function.
    • Fixed bug where service start mode would be set to auto when it already was set to auto.
    • Fixed error message content when start mode can not be changed.
    • Removed shouldprocess from functions as not required.
    • Optimized Test-TargetResource and Set-TargetResource by removing repeated calls to Get-Service and Get-CimInstance.
    • Added integration test for testing changes to additional service properties as well as changing service binary path.
    • Modified Set-TargetResource so that newly created service created with minimal properties and then all additional properties updated (simplification of code).
    • Added support for changing Service Description and DisplayName parameters.
    • Fixed bug when changing binary path of existing service.
  • Removed test log output from repo.
  • xDSCWebService:
    • Added setting of enhanced security
    • Cleaned up Examples
    • Cleaned up pull server verification test
  • xWindowsOptionalFeature:
    • Cleaned up resource (PSSA issues, formatting, etc.)
    • Added example script
    • Added integration test
    • BREAKING CHANGE: Removed the unused Source parameter
    • Updated to a high quality resource
  • Removed test log output from repo.
  • Removed the prefix MSFT_ from all files and folders of the composite resources in this module
    • xFileUpload
    • xGroupSet
    • xProcessSet
    • xServiceSet
    • xWindowsFeatureSet
    • xWindowsOptionalFeatureSet
  • Converted appveyor.yml to install Pester from PSGallery instead of from Chocolatey.
  • Added xFileSystemAccessRule resource
  • Added ability for New-xDscDiagnosticsZip to only collect the xDscDiagnosticsZipDataPoint collection you specify by data point or by group (called target).
  • Added Get-xDscDiagnosticsZipDataPoint
  • Added ability for New-xDscDiagnosticsZip to collect IIS and HTTPErr logs
  • Fixed bug in MSFT_xIPAddress resource when xIPAddress follows xVMSwitch.
  • Added the following resources:
    • MSFT_xNetworkTeamInterface resource to add/remove network team interfaces
  • Added conditional loading of LocalizedData to MSFT_xHostsFile and MSFT_xNetworkTeam to prevent failures while loading those resources on systems with $PSUICulture other than en-US
  • Converted appveyor.yml to install Pester from PSGallery instead of from Chocolatey.
  • added test for existing file system and no drive letter assignment to allow simple drive letter assignment in MSFT_xDisk.psm1
  • added unit test for volume with existing partition and no drive letter assigned for MSFT_xDisk.psm1
  • xMountImage: Fixed mounting disk images on Windows 10 Anniversary Edition
  • xWebApplication:
    • Fixed bug when setting PhysicalPath and WebAppPool
    • Changes to the application pool property are now applied correctly

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