DSC Resource Kit Release October 2017

We just released the DSC Resource Kit!This release includes updates to 6 DSC resource modules. In these past 6 weeks, 52 pull requests have been merged and 39 issues have been closed, all thanks to our amazing community!

The modules updated in this release are:

  • SecurityPolicyDsc
  • SharePointDsc
  • xAdcsDeployment
  • xComputerManagement
  • xNetworking
  • xSqlServer

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 27. A recording of our updates as well as summarizing notes will be available soon. Join us for the next call at 12PM (Pacific time) on November 8 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)!

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
SecurityPolicyDsc 2.0.0.0
  • Added SecurityOption and AccountPolicy
  • Removed SecuritySetting
SharePointDsc 1.9.0.0
  • New resource: SPServiceIdentity
xAdcsDeployment 1.2.0.0
  • xAdcsWebEnrollment:
    • xAdcsWebEnrollment.psm1 – Change reference and variable from CAType to CAConfig
xComputerManagement 3.0.0.0
  • xComputer: Added parameter to set the local computer description along with documentation and unit tests for this change.
  • BREAKING CHANGE: xScheduledTask:
    • Converted all Interval/Duration type parameters over to be string format to prevent the Timezone the MOF file was created in from being stored. This is to fix problems where MOF files are created in one timezone but deployed nodes to a different timezone – See Issue 85
    • Added ConvertTo-TimeSpanFromScheduledTaskString function and refactored to reduce code duplication.
    • Added support for setting repetition duration to Indefinitely.
  • xComputer:
    • Moved strings to localization file.
    • Updated to meet HQRM guidelines.
  • xVirtualMemory:
    • Refactored shared common code into new utility functions to reduce code duplication and improve testability.
    • Moved strings into localizable strings file.
    • Converted calls to throw to use New-InvalidOperationException in CommonResourceHelper.
    • Improved unit test coverage.
    • Updated to meet HQRM guidelines.
xNetworking 5.2.0.0
  • Added Documentation and Examples section to Readme.md file – see issue 259.
  • Prevent unit tests from DSCResource.Tests from running during test execution fixes Issue 264.
  • MSFT_xNetworkTeamInterface:
    • Updated Test-TargetResource to substitute VLANID value 0 to $null
  • MSFT_xNetAdapterRsc:
    • Created new resource configuring Rsc
  • MSFT_xNetAdapterRss:
    • Created new resource configuring Rss
  • MSFT_xHostsFile:
    • Corrected style and formatting to meet HQRM guidelines.
    • Converted exceptions to use ResourceHelper functions.
xSQLServer 8.2.0.0
  • Changes to xSQLServer
    • Updated appveyor.yml so that integration tests run in order and so that the SQLPS module folders are renamed to not disturb the units test, but can be renamed back by the integration tests xSQLServerSetup so that the integration tests can run successfully (issue 774).
    • Changed so the maximum version to be installed is 4.0.6.0, when running unit tests in AppVeyor. Quick fix until we can resolve the unit tests (see issue 807).
    • Moved the code block, that contains workarounds in appveyor.yml, so it is run during the install phase instead of the test phase.
    • Fix problem with tests breaking with Pester 4.0.7 (issue 807).
  • Changes to xSQLServerHelper
    • Changes to Connect-SQL and Import-SQLPSModule
      • Now it correctly loads the correct assemblies when SqlServer module is present (issue 649).
      • Now SQLPS module will be correctly loaded (discovered) after installation of SQL Server. Previously resources depending on SQLPS module could fail because SQLPS was not found after installation because the PSModulePath environment variable in the (LCM) PowerShell session did not contain the new module path.
    • Added new helper function “Test-ClusterPermissions” (issue 446).
  • Changes to xSQLServerSetup
    • Fixed an issue with trailing slashes in the “UpdateSource” property (issue 720).
    • Fixed so that the integration test renames back the SQLPS module folders if they was renamed by AppVeyor (in the appveyor.yml file) (issue 774).
    • Fixed so integration test does not write warnings when SQLPS module is loaded (issue 798).
    • Changes to integration tests.
      • Moved the configuration block from the MSFT_xSQLServerSetup.Integration.Tests.ps1 to the MSFT_xSQLServerSetup.config.ps1 to align with the other integration test. And also get most of the configuration in one place.
      • Changed the tests so that the local SqlInstall account is added as a member of the local administrators group.
      • Changed the tests so that the local SqlInstall account is added as a member of the system administrators in SQL Server (Database Engine) – needed for the xSQLServerAlwaysOnService integration tests.
      • Changed so that only one of the Modules-folder for the SQLPS PowerShell module for SQL Server 2016 is renamed back so it can be used with the integration tests. There was an issue when more than one SQLPS module was present (see more information in issue 806).
      • Fixed wrong variable name for SQL service credential. It was using the integration test variable name instead of the parameter name.
      • Added ErrorAction “Stop” to the cmdlet Start-DscConfiguration (issue 824).
  • Changes to xSQLServerAlwaysOnAvailabilityGroup
    • Change the check of the values entered as parameter for BasicAvailabilityGroup. It is a boolean, hence it was not possible to disable the feature.
    • Add possibility to enable/disable the feature DatabaseHealthTrigger (SQL Server 2016 or later only).
    • Add possibility to enable the feature DtcSupportEnabled (SQL Server 2016 or later only). The feature currently can’t be altered once the Availability Group is created.
    • Use the new helper function “Test-ClusterPermissions”.
    • Refactored the unit tests to allow them to be more user friendly. Added the following read-only properties to the schema (issue 476)
      • EndpointPort
      • EndpointURL
      • SQLServerNetName
      • Version
    • Use the Get-PrimaryReplicaServerObject helper function
  • Changes to xSQLServerAlwaysOnAvailabilityGroupReplica
    • Fixed the formatting for the AvailabilityGroupNotFound error.
    • Added the following read-only properties to the schema (issue 477)
      • EndpointPort
      • EndpointURL
    • Use the new helper function “Test-ClusterPermissions”.
    • Use the Get-PrimaryReplicaServerObject helper function
  • Changes to xSQLServerHelper
    • Fixed Connect-SQL by ensuring the Status property returns “Online” prior to returning the SQL Server object (issue 333).
  • Changes to xSQLServerRole
    • Running Get-DscConfiguration no longer throws an error saying property Members is not an array (issue 790).
  • Changes to xSQLServerMaxDop
    • Fixed error where Measure-Object cmdlet would fail claiming it could not find the specified property (issue 801)
  • Changes to xSQLServerAlwaysOnService
    • Added integration test (issue 736).
      • Added ErrorAction “Stop” to the cmdlet Start-DscConfiguration (issue 824).
    • Changes to SMO.cs
      • Added default properties to the Server class
        • AvailabilityGroups
        • Databases
        • EndpointCollection
      • Added a new overload to the Login class
      • Added default properties to the AvailabilityReplicas class
        • AvailabilityDatabases
        • AvailabilityReplicas
      • Added new resource xSQLServerAccount (issue 706)
        • Added localization support for all strings
        • Added examples for usage
      • Changes to xSQLServerRSConfig
        • No longer returns a null value from Test-TargetResource when Reporting Services has not been initialized (issue 822).
        • Fixed so that when two Reporting Services are installed for the same major version the resource does not throw an error (issue 819).
        • Now the resource will restart the Reporting Services service after initializing (issue 592). This will enable the Reports site to work.
        • Added integration test (issue 753).
        • Added support for configuring URL reservations and virtual directory names (issue 570)

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 DSC Team
@katiedsc (Twitter)
@kwirkykat (GitHub)