We just released the DSC Resource Kit!

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

OfficeOnlineServerDsc by Brian Farnhill (@BrianFarnhill)

SystemLocaleDsc by Daniel Scott-Raynsford (@PlagueHO)

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 OfficeOnlineServerDsc 0.1.0.0, 0.2.0.0 0.1.0.0 Initial release 0.2.0.0 Fixed a bug that caused OfficeOnlineServerWebAppsMachine to fail a test when the machine to join was specified using a fully qualified domain name (FQDN) SharePointDSC 1.3.0.0 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 SystemLocaleDsc 1.0.0.0 Initial release xSmbShare 2.0.0.0 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.) xTimeZone 1.6.0.0 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 xExchange 1.10.0.0 xExchAutoMountPoint: Fix malformed dash/hyphen characters

Fix PSPossibleIncorrectComparisonWithNull issues from PowerShell Script Analyzer

Suppress PSDSCUseVerboseMessageInDSCResource Warnings from PowerShell Script Analyzer xSQLServer 2.0.0.0 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

xSCSMA 1.4.0.0 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. xPSDesiredStateConfiguration 4.0.0.0 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

xSystemSecurity 1.2.0.0 Converted appveyor.yml to install Pester from PSGallery instead of from Chocolatey.

Added xFileSystemAccessRule resource xDscDiagnostics 2.5.0.0 Added ability for New-xDscDiagnosticsZip to only collect the xDscDiagnosticsZipDataPoint collection you specify by data point or by group (called target).

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 xNetworking 2.12.0.0 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 xStorage 2.7.0.0 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 xWebAdministration 1.14.0.0 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 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!

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)