DSC Resource Kit Release December 2016

We just released the DSC Resource Kit!Since our last release on November 2, we have added 1 new module, AuditPolicyDsc, which allows you to edit your audit policy subcategories and options. Thank you to Adam Haynes for this great new module!

Outside of the DSC Resource Kit, we also recently published an update to GPRegistryPolicy in the PowerShell Gallery. The latest version now includes a DSC resource to help you locally manage policy registry keys.

We have also added two new maintainers to the DSC Resource Kit:

  • Johan Ljunggren (xSqlServer)
  • Daniel Scott-Raynsford (xAdcsDeployment, xCertificate, xNetworking, xStorage)

These guys have shown outstanding dedication to their modules and continue to be invaluable contributors to the DSC Resource Kit. Congrats!

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

Update (12/16) – xPSDesiredStateConfiguration and PSDscResources have now also been released! PSDscResources now includes Script, Registry, WindowsProcess, GroupSet, ServiceSet, ProcessSet, WindowsFeatureSet, and WindowsOptionalFeatureSet.

The modules updated in this release are:

  • PSDscResources
  • SharePointDsc
  • xActiveDirectory
  • xAdcsDeployment
  • xCertificate
  • xComputerManagement
  • xDatabase
  • xDscDiagnostics
  • xExchange
  • xFailOverCluster
  • xHyper-V
  • xNetworking
  • xPSDesiredStateConfiguration
  • xSCSMA
  • xSQLServer
  • xStorage
  • 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 December 7. A recording of our updates as well as 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
AuditPolicyDsc 1.0.0.0
  • Initial release with the following resources:
    • AuditPolicySubcategory
    • AuditPolicyOption
PSDscResources 2.2.0.0, 2.3.0.0 (Just updated the manifest)
  • WindowsFeature:
    • Added Catch to ignore RuntimeException when importing ServerManager module. This solves the issue described here.
    • Updated unit tests.
  • Added WindowsProcess
  • CommonTestHelper:
    • Added Get-AppVeyorAdministratorCredential.
    • Added Set-StrictMode -“Latest” and $errorActionPreference -“Stop”.
  • Service:
    • Updated resource module, unit tests, integration tests, and examples to reflect the changes made in xPSDesiredStateConfiguration.
  • Group:
    • Updated resource module, examples, and integration tests to reflect the changes made in xPSDesiredStateConfiguration.
  • Added Script.
  • Added GroupSet, ServiceSet, WindowsFeatureSet, WindowsOptionalFeatureSet, and ProcessSet.
  • Added Set-StrictMode -“Latest” and $errorActionPreference -“Stop” to Group, Service, User, WindowsFeature, WindowsOptionalFeature, WindowsPackageCab.
  • Fixed bug in WindowsFeature in which is was checking the “Count” property of an object that was not always an array.
  • Cleaned Group and Service resources and tests.
  • Added Registry.
SharePointDsc 1.5.0.0
  • Fixed issue with SPManagedMetaDataServiceApp if ContentTypeHubUrl parameter is null
  • Added minimum PowerShell version to module manifest
  • Added testing for valid markdown syntax to unit tests
  • Added support for MinRole enhancements added in SP2016 Feature Pack 1
  • Fixed bug with search topology that caused issues with names of servers needing to all be the same case
  • Fixed bug in SPInstallLanguagePack where language packs could not be installed on SharePoint 2016
  • Added new resource SPSearchFileType
  • Updated SPDatabaseAAG to allow database name patterns
  • Fixed a bug were PerformancePoint and Excel Services Service Application proxies would not be added to the default proxy group when they are provisioned
  • Added an error catch to provide more detail about running SPAppCatalog with accounts other than the farm account
xActiveDirectory 2.15.0.0
  • xAdDomainController: Fixes SiteName being required field.
xAdcsDeployment 1.1.0.0
  • Converted AppVeyor.yml to pull Pester from PSGallery instead of Chocolatey.
  • Changed AppVeyor.yml to use default image.
  • xAdcsCertificateAuthority:
    • Change property format in Readme.md to be standard layout.
    • Converted style to meet HQRM guidelines.
    • Added verbose logging support.
    • Added string localization.
    • Fixed Get-TargetResource by removing IsCA and changing Ensure to return whether or not CA is installed.
    • Added unit tests.
    • Updated parameter format to meet HQRM guidelines.
  • xAdcsOnlineResponder:
    • Change property format in Readme.md to be standard layout.
    • Added unit test header to be latest version.
    • Added function help.
    • Updated parameter format to meet HQRM guidelines.
    • Updated resource to meet HQRM guidelines.
  • xAdcsWebEnrollment:
    • Change property format in Readme.md to be standard layout.
    • Added unit test header to be latest version.
    • Added function help.
    • Updated parameter format to meet HQRM guidelines.
    • Updated resource to meet HQRM guidelines.
  • Added CommonResourceHelper.psm1 (copied from xPSDesiredStateConfiguration).
  • Removed Technet Documentation HTML file from root folder.
  • Removed redundant code from AppVeyor.yml.
  • Fix markdown violations in Readme.md.
  • Updated readme.md to match DSCResource.Template\Readme.md.
xCertificate 2.3.0.0
  • xCertReq:
    • Added additional parameters KeyLength, Exportable, ProviderName, OID, KeyUsage, CertificateTemplate, SubjectAltName
  • Fixed most markdown errors in Readme.md.
  • Corrected Parameter decoration format to be consistent with guidelines.
xComputerManagement 1.9.0.0
  • Added resources
    • xPowerPlan
xDatabase 1.5.0.0
  • Converted appveyor.yml to install Pester from PSGallery instead of from Chocolatey.
  • Added logging for when dac deploy fails
xDscDiagnostics 2.6.0.0
  • Added JobId parameter set to Get-xDscConfiguration
  • Added IIS binding collection
xExchange 1.12.0.0
  • xExchangeCommon : In StartScheduledTask corrected throw error check to throw last error when errorRegister has more than 0 errors instead of throwing error if errorRegister was not null, which would otherwise always be true.
  • Fix PSAvoidUsingWMICmdlet issues from PSScriptAnalyzer
  • Fix PSUseSingularNouns issues from PSScriptAnalyzer
  • Fix PSAvoidUsingCmdletAliases issues from PSScriptAnalyzer
  • Fix PSUseApprovedVerbs issues from PSScriptAnalyzer
  • Fix PSAvoidUsingEmptyCatchBlock issues from PSScriptAnalyzer
  • Fix PSUsePSCredentialType issues from PSScriptAnalyzer
  • Fix erroneous PSDSCDscTestsPresent issues from PSScriptAnalyzer for modules that do actually have tests in the root Tests folder
  • Fix array comparison issues by removing check for if array is null
  • Suppress PSDSCDscExamplesPresent PSScriptAnalyzer issues for resources that do have examples
  • Fix PSUseDeclaredVarsMoreThanAssignments issues from PSScriptAnalyzer
  • Remove requirements for second DAG member, or second Witness server, from MSFT_xExchDatabaseAvailabilityGroup.Integration.Tests
xFailOverCluster 1.6.0.0
  • xCluster: Fixed bug in which failure to create a new cluster would hang
xHyper-V 3.6.0.0
  • xVHD: Updated incorrect property name MaximumSize in error message
xNetworking 3.1.0.0
  • Changed parameter format in Readme.md to improve information coverage and consistency.
  • Changed all MOF files to be consistent and meet HQRM guidelines.
  • Removed most markdown errors (MD*) in Readme.md.
  • Added xNetAdapterRDMA resource
  • Fixes to support changes to DSCResource.Tests.
xPSDesiredStateConfiguration 5.1.0.0
  • xWindowsFeature:
    • Added Catch to ignore RuntimeException when importing ServerManager module.
    • Updated unit tests.
  • xPackage:
    • No longer checks for package installation when a reboot is required.
    • Ensures a space is added to MSI installation arguments.
    • Adds RunAsCredential parameter to permit installing packages with specific user account.
    • Fixes null verbose log output error.
  • xDSCWebService
    • Fixed issue where resource would fail to read redirection.config file.
  • xArchive
    • Fixed issue where resource would throw exception when file name contains brackets.
  • xScript
    • Cleaned resource for high quality requirements
    • Added unit tests
    • Added integration tests
    • Updated documentation and example
  • ResourceSetHelper:
    • Updated common functions for all ‘Set’ resources.
    • Added unit tests
  • xGroupSet:
    • Updated resource to use new ResouceSetHelper functions and added integration tests.
  • xGroup:
    • Cleaned module imports, fixed PSSA issues, and set ErrorActionPreference to stop.
  • xService:
    • Cleaned resource functions to enable StrictMode.
    • Fixed bug in which Set-TargetResource would create a service when Ensure set to Absent and Path specified.
    • Added unit tests.
    • Added integration tests for BuiltInAccount and Credential.
  • xServiceSet:
    • Updated resource to use new ResouceSetHelper functions and added integration tests.
    • Updated documentation and example
  • xWindowsProcess
    • Cleaned resource as per high quality guidelines.
    • Added unit tests.
    • Added integration tests.
    • Updated documentation.
    • Updated examples.
    • Fixed bug in Get-TargetResource.
    • Added a ‘Count’ value to the hashtable returned by Get-TargetResource so that the user can see how many instances of the process are running.
    • Fixed bug in finding the path to the executable.
    • Changed name to be xWindowsProcess everywhere.
  • xWindowsOptionalFeatureSet
    • Updated resource to use new ResouceSetHelper functions and added integration tests.
    • Updated documentation and examples
  • xWindowsFeatureSet
    • Updated resource to use new ResouceSetHelper functions and added integration tests.
    • Updated documentation and examples
  • xProcessSet
    • Updated resource to use new ResouceSetHelper functions and added integration tests.
    • Updated documentation and examples
  • xRegistry
    • Updated resource to be high-quality
    • Fixed bug in which the user could not set a Binary registry value to 0
    • Added unit and integration tests
    • Added examples and updated documentation
xSCSMA 1.5.0.0
  • Added $IdentifyingNumber for TP5/RTM and small WMI improvements
xSQLServer 4.0.0.0
  • Fixes in xSQLServerConfiguration
    • Added support for clustered SQL instances
    • BREAKING CHANGE: Updated parameters to align with other resources (SQLServer / SQLInstanceName)
    • Updated code to utilize CIM rather than WMI
  • Added tests for resources
    • xSQLServerConfiguration
    • xSQLServerSetup
    • xSQLServerDatabaseRole
    • xSQLAOGroupJoin
    • xSQLServerHelper and moved the existing tests for Restart-SqlService to it.
    • xSQLServerAlwaysOnService
  • Fixes in xSQLAOGroupJoin
    • Availability Group name now appears in the error message for a failed Availability Group join attempt.
    • Get-TargetResource now works with Get-DscConfiguration
  • Fixes in xSQLServerRole
    • Updated Ensure parameter to “Present” default value
  • *-SqlServerRole to *-SqlServerRoleMember
  • Changes to xSQLAlias
    • Add UseDynamicTcpPort parameter for option “Dynamically determine port”
    • Change Get-WmiObject to Get-CimInstance in Resource and associated pester file
  • Added CHANGELOG.md file
  • Added issue template file (ISSUE_TEMPLATE.md) for “New Issue” and pull request template file (PULL_REQUEST_TEMPLATE.md) for “New Pull Request”
  • Add Contributing.md file
  • Changes to xSQLServerSetup
    • Now Features parameter is case-insensitive.
  • BREAKING CHANGE: Removed xSQLServerPowerPlan from this module. The resource has been moved to xComputerManagement and is now called xPowerPlan.
  • Changes and enhancements in xSQLServerDatabaseRole
    • BREAKING CHANGE: Fixed so the same user can now be added to a role in one or more databases, and/or one or more instances. Now the parameters SQLServer and SQLInstanceName are mandatory.
    • Enhanced so the same user can now be added to more than one role
  • BREAKING CHANGE: Renamed xSQLAlias to xSQLServerAlias to align with naming convention.
  • Changes to xSQLServerAlwaysOnService
    • Added RestartTimeout parameter
    • Fixed bug where the SQL Agent service did not get restarted after the IsHadrEnabled property was set.
    • BREAKING CHANGE: The mandatory parameters now include Ensure, SQLServer, and SQLInstanceName. SQLServer and SQLInstanceName are keys which will be used to uniquely identify the resource which allows AlwaysOn to be enabled on multiple instances on the same machine.
  • Moved Restart-SqlService from MSFT_xSQLServerConfiguration.psm1 to xSQLServerHelper.psm1.
xStorage 2.9.0.0
  • Updated readme.md to remove markdown best practice rule violations.
  • Updated readme.md to match DSCResources/DscResource.Template/README.md.
  • xDiskAccessPath:
    • Fix bug when re-attaching disk after mount point removed or detatched.
    • Additional log entries added for improved diagnostics.
    • Additional integration tests added.
    • Improve timeout loop.
  • Converted integration tests to use $TestDrive as working folder or temp folder when persistence across tests is required.
  • Suppress PSUseShouldProcessForStateChangingFunctions rule violations in resources.
  • Rename Test-AccessPath function to Assert-AccessPathValid.
  • Rename Test-DriveLetter function to Assert-DriveLetterValid.
  • Added CommonResourceHelper.psm1 module (based on PSDscResources).
  • Added CommonTestsHelper.psm1 module (based on PSDscResources).
  • Converted all modules to load localization data using Get-LocalizedData from CommonResourceHelper.
  • Converted all exception calls and tests to use functions in CommonResourceHelper.psm1 and CommonTestsHelper.psm1 respectively.
  • Fixed examples:
    • Sample_InitializeDataDisk.ps1
    • Sample_InitializeDataDiskWithAccessPath.ps1
    • Sample_xMountImage_DismountISO.ps1
  • xDisk:
    • Improve timeout loop.
xWebAdministration 1.16.0.0
  • Log directory configuration on xWebsite used the logPath attribute instead of the directory attribute. Bugfix for

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 
Find-DscResource

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

How to Install DSC Resource Modules From the PowerShell Gallery

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:

Update-Module

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

Get-DscResource

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)