DSC Resource Kit Release February 2018

Katie Keim [MSFT]

We just released the DSC Resource Kit! This release includes updates to 12 DSC resource modules. In these past 7 weeks, 83 pull requests have been merged and 70 issues have been closed, all thanks to our amazing community! The modules updated in this release are:

  • OfficeOnlineServerDsc
  • SharePointDsc
  • SqlServerDsc
  • StorageDsc (previously xStorage)
  • xActiveDirectory
  • xCertificate
  • xComputerManagement
  • xDatabase
  • xExchange
  • xFailOverCluster
  • xHyper-V
  • xNetworking

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 on January 31. A recording of our updates is coming soon. Join us for the next call at 12PM (Pacific time) on March 14 to ask questions and give feedback about your experience with the DSC Resource Kit. 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)! Please see our new documentation here for information on the support of these resource modules.

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 fix for Multiple Language Pack Installs
  • General
    • Updated the integration tests for building the Azure environment
      • Works in any Azure environment.
      • Updated the SqlServer configuration to use SqlServerDsc version
  • SPAlternateURL
    • Added the ability to manage the Central Administration AAMs
  • SPDiagnosticsProvider
    • Added the resource
  • SPFarm
    • Corrected issue where ServerRole parameter is returned in SP2013
  • SPInfoPathFormsServiceConfig
    • Added the resource
  • SPInstallPrereqs
    • Fixed two typos in to be installed Windows features for SharePoint 2016
  • SPSearchAutoritativePage
    • Added missing readme.md
  • SPSearchCrawlerImpactRule
    • Fixed issue where an error was thrown when retrieving Crawl Impact rules
    • Added missing readme.md
  • SPSearchCrawlMapping
    • Added missing readme.md
  • SPSecureStoreServiceApp
    • Fixed issue in Get-TargetResource to return AuditingEnabled property
  • SPSecurityTokenServiceConfig
    • Added the resource
  • SPServiceIdentity
    • Fixed issue with correctly retrieving the process identity for the Search instance
    • Added support for LocalSystem, LocalService and NetworkService
  • SPUserProfileProperty
    • Fixed issues with the User Profile properties for 2016
  • SPUserProfileServiceAppPermissions
    • Removed the mandatory requirement from secondary parameters
  • SPUserProfileSyncConnection
    • Fixed issues with the User Profile Sync connection for SharePoint 2016
  • SPUserProfileSyncService
    • Added returning the FarmAccount to the Get method
  • SPWebAppAuthentication
    • Corrected issue where parameter validation wasn’t performed correctly
  • SPWebApplicationExtension
    • Fixed issue with test always failing when Ensure was set to Absent
  • SPWorkManagementServiceApp
    • Added check for SharePoint 2016, since this functionality has been removed in SharePoint 2016
  • Changes to SqlServerDsc
    • BREAKING CHANGE: Resource SqlRSSecureConnectionLevel was remove (issue 990). The parameter that was set using that resource has been merged into resource SqlRS as the parameter UseSsl. The UseSsl parameter is of type boolean. This change was made because from SQL Server 2008 R2 this value is made an on/off switch. Read more in the article ConfigurationSetting Method – SetSecureConnectionLevel.
    • Updated so that named parameters are used for New-Object cmdlet. This was done to follow the style guideline.
    • Updated manifest and license to reflect the new year (issue 965).
    • Added a README.md under Tests\Integration to help contributors to write integration tests.
    • Added “Integration tests” section in the CONTRIBUTING.md.
    • The complete examples were removed. They were no longer accurate and some referenced resources that no longer exist. Accurate examples can be found in each specific resource example folder. Examples for installing Failover Cluster can be found in the resource examples folders in the xFailOverCluster resource module (issue 462).
    • A README.md was created under the Examples folder to be used as reference how to install certain scenarios (issue 462).
    • Removed the local specific common test for compiling examples in this repository and instead opted-in for the common test in the “DscResource.Tests” repository (issue 669).
    • Added new resource SqlServerDatabaseMail for configuring SQL Server Database Mail (issue 155).
    • Updated the helper function Test-SQLDscParameterState to handle the data type UInt16.
    • Fixed typo in SqlServerDscCommon.Tests.
    • Updated README.md with known issue section for each resource.
    • Resources that did not have a description in the README.md now has one.
    • Resources that missed links to the examples in the README.md now has those links.
    • Style changes in all examples, removing type [System.Management.Automation.Credential()] from credential parameters (issue 1003), and renamed the credential parameter so it is not using abbreviation.
    • Updated the security token for AppVeyor status badge in README.md. When we renamed the repository the security token was changed (issue 1012).
    • Now the helper function Restart-SqlService, after restarting the SQL Server service, does not return until it can connect to the SQL Server instance, and the instance returns status “Online” (issue 1008). If it fails to connect within the timeout period (defaults to 120 seconds) it throws an error.
    • Fixed typo in comment-base help for helper function Test-AvailabilityReplicaSeedingModeAutomatic.
    • Style cleanup in helper functions and tests.
  • Changes to SqlAG
    • Fixed typos in tests.
    • Style cleanup in code and tests.
  • Changes to SqlAGDatabase
    • Style cleanup in code and tests.
  • Changes to SqlAGListener
    • Fixed typo in comment-based help.
    • Style cleanup in code and tests.
  • Changes to SqlAGReplica
    • Minor code style cleanup. Removed unused variable and instead piped the cmdlet Join-SqlAvailabilityGroup to Out-Null.
    • Fixed minor typos in comment-based help.
    • Fixed minor typos in comment.
    • Style cleanup in code and tests.
    • Updated description for parameter Name in README.md and in comment-based help (issue 1034).
  • Changes to SqlAlias
    • Fixed issue where exception was thrown if reg keys did not exist (issue 949).
    • Style cleanup in tests.
  • Changes to SqlAlwaysOnService
    • Refactor integration tests slightly to improve run time performance (issue 1001).
    • Style cleanup in code and tests.
  • Changes to SqlDatabase
    • Fix minor Script Analyzer warning.
  • Changes to SqlDatabaseDefaultLocation
    • Refactor integration tests slightly to improve run time performance (issue 1001).
    • Minor style cleanup of code in tests.
  • Changes to SqlDatabaseRole
    • Style cleanup in tests.
  • Changes to SqlRS
    • Replaced Get-WmiObject with Get-CimInstance to fix Script Analyzer warnings (issue 264).
    • Refactored the resource to use Invoke-CimMethod.
    • Added parameter UseSsl which when set to $true forces connections to the Reporting Services to use SSL when connecting (issue 990).
    • Added complete example for SqlRS (based on the integration tests) (issue 634).
    • Refactor integration tests slightly to improve run time performance (issue 1001).
    • Style cleanup in code and tests.
  • Changes to SqlScript
    • Style cleanup in tests.
    • Updated examples.
    • Added integration tests.
    • Fixed minor typos in comment-based help.
    • Added new example based on integration test.
  • Changes to SqlServerConfiguration
    • Fixed minor typos in comment-based help.
    • Now the verbose message say what option is changing and to what value (issue 1014).
    • Changed the RestartTimeout parameter from type SInt32 to type UInt32.
    • Added localization (issue 605).
    • Style cleanup in code and tests.
  • Changes to SqlServerEndpoint
    • Updated README.md with links to the examples (issue 504).
    • Style cleanup in tests.
  • Changes to SqlServerLogin
    • Added integration tests (issue 748).
    • Minor code style cleanup.
    • Removed unused variable and instead piped the helper function Connect-SQL to Out-Null.
    • Style cleanup in tests.
  • Changes to SqlServerMaxDop
    • Minor style changes in the helper function Get-SqlDscDynamicMaxDop.
  • Changes to SqlServerMemory
    • Style cleanup in code and tests.
  • Changes to SqlServerPermission
    • Fixed minor typos in comment-based help.
    • Style cleanup in code.
  • Changes to SqlServerReplication
    • Fixed minor typos in verbose messages.
    • Style cleanup in tests.
  • Changes to SqlServerNetwork
    • Added sysadmin account parameter usage to the examples.
  • Changes to SqlServerReplication
  • Changes to SqlServerRole
    • Added localization (issue 621).
    • Added integration tests (issue 756).
    • Updated example to add two server roles in the same configuration.
    • Style cleanup in tests.
  • Changes to SqlServiceAccount
    • Default services are now properly detected (issue 930).
    • Made the description of parameter RestartService more descriptive (issue 960).
    • Added a read-only parameter ServiceAccountName so that the service account name is correctly returned as a string (issue 982).
    • Added integration tests (issue 980).
    • The timing issue that the resource returned before SQL Server service was actually restarted has been solved by a change in the helper function Restart-SqlService (issue 1008). Now Restart-SqlService waits for the instance to return status “Online” or throws an error saying it failed to connect within the timeout period.
    • Style cleanup in code and tests.
  • Changes to SqlSetup
    • Added parameter ASServerMode to support installing Analysis Services in Multidimensional mode, Tabular mode and PowerPivot mode (issue 388).
    • Added integration tests for testing Analysis Services Multidimensional mode and Tabular mode.
    • Cleaned up integration tests.
    • Added integration tests for installing a default instance of Database Engine.
    • Refactor integration tests slightly to improve run time performance (issue 1001).
    • Added PSSA rule “PSUseDeclaredVarsMoreThanAssignments” override in the function Set-TargetResource for the variable $global:DSCMachineStatus.
    • Style cleanup in code and tests.
  • Changes to SqlWaitForAG
    • Style cleanup in code.
  • Changes to SqlWindowsFirewall
    • Fixed minor typos in comment-based help.
    • Style cleanup in code.
    • Renamed xStorage to StorageDsc
    • Renamed MSFT_xDisk to MSFT_Disk
    • Renamed MSFT_xDiskAccessPath to MSFT_DiskAccessPath
    • Renamed MSFT_xMountImage to MSFT_MountImage
    • Renamed MSFT_xOpticalDiskDriveLetter to MSFT_OpticalDiskDriveLetter
    • Renamed MSFT_xWaitForDisk to MSFT_WaitForDisk
    • Renamed MSFT_xWaitForVolume to MSFT_WaitforVolume
    • Deleted xStorage folder under StorageDsc/Modules
    • See [Issue 129](https://github.com/PowerShell/xStorage/issues/129)
  • Converted AppVeyor.yml to use DSCResource.tests shared code.
  • Opted-In to markdown rule validation.
  • Readme.md modified resolve markdown rule violations.
  • Added CodeCov.io support.
  • Added xADServicePrincipalName resource.
  • Get-CertificateTemplateName: Fix missing template name
  • BREAKING CHANGE: xScheduledTask:
    • Breaking change because Get-TargetResource no longer outputs ActionExecutable and ScheduleType properties when the scheduled task does not exist. It will also include TaskPath in output when scheduled task does not exist.
  • xScheduledTask:
    • Add support to disable built-in scheduled tasks – See Issue 74.
    • Fix unit test mocked schedule task object structure.
    • Fix error message when trigger type is unknown – See Issue 121.
    • Moved strings into separate strings file.
    • Updated to meet HQRM guidelines.
  • xComputer:
    • Resolved bug in Get-ComputerDomain where LocalSystem doesn”t have rights to the domain.
  • Updated tests to meet Pester V4 guidelines – See Issue 106.
  • Converted module to use auto documentation format.
  • Added support SQL Server 2016
  • Added missing parameters to xExchActiveSyncVirtualDirectory
  • Added missing parameters to xExchAutoDiscoverVirtualDirectory
  • Added missing parameters to xExchWebServicesVirtualDirectory
  • Changes to xFailoverCluster
    • Update Pester syntax to v4
    • Updated year to 2018 in license file and module manifest (issue 167).
  • Changes to xClusterNetwork
    • Updated readme to describe process for adding and removing additional networks on clusters
  • Changes to xCluster
    • Allow the cluster to be assigned an IP address from a DHCP (issue 109). When the parameter StaticIPAddress is not specified then the cluster will be configured to use an IP address from a DHCP.
    • Get-TargetResource now correctly returns the IP address instead of throwing and error (issue 28).
    • Added -IgnoreNetwork parameter (issue 143).
  • Changes to xClusterQuorum
    • When using NodeAndFileShareMajority on Windows Server 2016 any subsequent run failed when Test-TargetResource validated the configuration.
    • Cleaned up tests which was using over complicated evaluation code.
    • Added cloud witness (Azure storage) functionality on Windows 2016 (issue 37).
  • Added the following resources:
    • MSFT_xVMHardDiskDrive to manage additional attached VHD/Xs.
    • MSFT_xVMScsiController to manage virtual machine SCSI controllers.
  • MSFT_xVMSwitch:
    • Added parameter ot specify the Load Balancing Algorithm of a vSwitch with Switch Embedded Teaming (SET)
  • MSFT_xNetAdapterAdvancedProperty:
    • Created new resource configuring AdvancedProperties for NetAdapter
  • MSFT_xNetAdapterLso:
    • Corrected style and formatting to meet HQRM guidelines.
    • Updated tests to meet Pester v4 guidelines.
  • MSFT_xNetAdapterName:
    • Corrected style and formatting to meet HQRM guidelines.
    • Updated tests to meet Pester v4 guidelines.
  • MSFT_xNetAdapterRDMA:
    • Corrected style and formatting to meet HQRM guidelines.
    • Updated tests to meet Pester v4 guidelines.
    • Converted exceptions to use ResourceHelper functions.
    • Improved integration tests to preserve system status and run in more scenarios.
  • MSFT_xNetBIOS:
    • Corrected style and formatting to meet HQRM guidelines.
    • Updated tests to meet Pester v4 guidelines.
    • Converted exceptions to use ResourceHelper functions.
    • Improved integration tests to preserve system status, run in more scenarios and more effectively test the resource.
    • Changed to report back error if unable to set NetBIOS setting.
  • MSFT_xWinsSetting:
    • Created new resource for enabling/disabling LMHOSTS lookup and enabling/disabling WINS name resoluton using DNS.
  • MSFT_xNetworkTeam:
    • Corrected style and formatting to meet HQRM guidelines.
    • Updated tests to meet Pester v4 guidelines.
    • Converted exceptions to use ResourceHelper functions.

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 tagged as DSCResourceKit
Find-Module -Tag DSCResourceKit 
# To list all DSC resources from all sources 


Please note only those modules released by the PowerShell Team are currently considered part of the ‘DSC Resource Kit’ regardless of the presence of the ‘DSC Resource Kit’ tag in the PowerShell Gallery. 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 DSC Team @katiedsc (Twitter) @kwirkykat (GitHub)


Comments are closed. Login to edit/delete your existing comments

Feedback usabilla icon