DSC Resource Kit gets even bigger

Karol Kaczmarek [MSFT]

In the last couple of weeks we’ve seen lots of activity from our contributors and collaborators across DSC repositories and are excited to announce what’s the biggest update to DSC Resource Kit yet!

The total number of merged pull requests exceeded one hundred (105) and 53 issues have been closed. You will find updates in 24 DSC modules, 9 of those have new resources added (44 new resources to be exact!). Those modules are: xAdcsDeployment, xDhcpServer, xDnsServer, xNetworking, xPSDesiredStateConfiguration, xSharePoint, xSqlPs, xSqlServer and xWebAdministration.

Thanks to all your hard work, after the latest releases DSC Resource Kit consists of 273 resources!

For detailed list of what resources and fixes have been implemented, please scroll down to the “What has been recently released?” section.

We strongly encourage you to update to the newest versions of the modules using the PowerShell Gallery, start using them and don’t forget to let us know your feedback in the comments below, on GitHub or Twitter (#PSDSC)!


Where can I find all released DSC 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 type a module’s name in the search box on the upper right side of the PowerShell Gallery to find specific module.

Another way is to go directly to a specific module by typing it’s URL:




Of course, you can always use PowerShellGet (available in WMF 5.0) as well to find all modules with DSC Resources:

# To list all modules that are part of the DSC resource kit

Find-Module -Tag DSCResourceKit

# To list all DSC resource from all sources



How can I install DSC resources from the PowerShell Gallery?

We recommend that you use PowerShellGet to install DSC resource modules:


Install-Module –Name <Module_Name>


Install-Module –Name xWebAdministration


If you have previous versions of modules installed, you can update them by calling (from an elevated PowerShell prompt):


If there is an issue you are particularly concerned about, watch the version number in the PowerShell Gallery for updates to that particular resource. You can also file an Issue against the module on GitHub to help get it fixed.

After installing the modules, you can discover all of the resources available to your local system by running:


As with the previous Resource Kits, all the resources are experimental. The “x” prefix in the names stands for experimental – which means these resources are provided AS IS and are not supported through any Microsoft support program or service.


How can I find DSC modules on GitHub?

As we mentioned in April, we’ve open sourced development of DSC resources on GitHub. You can see the most recent state of all resources by going to their GitHub pages at https://github.com/PowerShell/<Module_Name>, e.g. for xCertificate module, go to: https://github.com/PowerShell/xCertificate.

All DSC modules are also listed as submodules of the DscResources repository, so that you can see them in one place (click the xDscResources folder).


How can I contribute?

You are more than welcome to contribute to development of DSC resource modules and there’s many ways to do it. You can create new DSC resources or modules, add test automation, improve documentation, fix existing issues or open new ones. Most of the information you need to get started can be found in our contributing guide.

If you are not sure what can you do, but would like to help anyway, please take a look at list of open issues for DscResources repository. You can also check issues opened for specific modules by going to https://github.com/PowerShell/<Module_Name>/issues , e.g. https://github.com/PowerShell/xPSDesiredStateConfiguration/issues.

Your help in developing DSC is much appreciated!


What has been recently released?

You can see a detailed summary of all recent changes in the table below.

If you want to see a change log for previous versions, go to the GitHub repository page for a given module (see section “How can I find DSC modules on GitHub?” for details).


Module name Version Description
  • xADOrganizationalUnit: Merges xADOrganizationalUnit resource from the PowerShell gallery
  • xADGroup: Added Members, MembersToInclude, MembersToExclude and MembershipAttribute properties.
  • xADGroup: Added ManagedBy property.
  • xADGroup: Added Notes property.
  • xADUser: Adds additional property settings.
  • xADUser: Adds unit test coverage.
  • Added the following resources
    • MSFT_xADCSOnlineResponder resource to install the Online Responder service.
  • Correction to xAdcsCertificationAuthority property title in Readme.md.
  • Addition of .gitignore to ensure DSCResource.Tests folder is commited.
  • Updated AppVeyor.yml to use WMF 5 build environment.
  • Includes compatibility for Update Rollups 6/7/8
  • Includes update for Update Rollup 8
  • Includes dbuser parameter for installation
  • Multiple minor fixes for split deployments
  • Versioning updates
  • Adding Name parameter validation
  • Added xDhcpServerAuthorization resource.
  • Bug Fix: LeaseDuration is no longer mandatory for xDhcpServerScope resource.
  • Bug Fix: DnsServerIPAddress is no longer mandatory for xDhcpServerOption resource.
  • Bug Fix: corrects verbose display output in xDhcpServerOption resource.
  • Added xDnsRecord resource with support for CNames. This will replace xDnsARecord in a future release.
  • Added xDnsServerPrimaryZone resource
  • Error message improvements
  • Add the Get-xDscDiagnosticsZip cmdlet
  • Added DialPlans parameter to xExchUMService
  • xHyperV: Added SecureBoot parameter to enable control of the secure boot BIOS setting on generation 2 VMs.
  • Fixed drive letter when mounting VHD when calling resource xVhdFile. Fixes #20.
  • MSFT_xVMHyperV: Changed the SwitchName parameter to string[] to support assigning multiple NICs to virtual machines.
  • MSFT_xVMHyperV: Changed the MACAddress parameter to string[] to support assigning multiple MAC addresses to virtual machines.
  • MSFT_xVMHyperV: Added enabling of Guest Service Interface.
  • MSFT_xVMSwitch: Added the BandwidthReservationMode parameter which specifies how minimum bandwidth is to be configured on a virtual switch
  • Fixing tests
  • NOTE: This release contains breaking changes
  • Updated all resources to contain unit tests
  • Modified schema on many resources to standardize naming
  • Fixed resources to removing hard coding of MySQL Version (Fixes #2)
  • Removed Debug Tracing of Passwords (Fixes #3)
  • Created standard library to reduce code redundancy
  • Added the following resources:
    • MSFT_xNetworkTeam resource to manage native network adapter teaming.
  • Added the following resources:
    • MSFT_xDhcpClient resource to enable/disable DHCP on individual interfaces.
    • MSFT_xRoute resource to manage network routes.
    • MSFT_xNetBIOS resource to configure NetBIOS over TCP/IP settings on individual interfaces.
  • MSFT_*: Unit and Integration tests updated to use DSCResource.Tests\TestHelper.psm1 functions.
  • MSFT_*: Resource Name added to all unit test Desribes.
  • Templates update to use DSCResource.Tests\TestHelper.psm1 functions.
  • MSFT_xNetConnectionProfile: Integration tests fixed when more than one connection profile present.
  • Changed AppVeyor.yml to use WMF 5 build environment.
  • MSFT_xIPAddress: Removed test for DHCP Status.
  • MSFT_xFirewall: New parameters added:
    • DynamicTransport
    • EdgeTraversalPolicy
    • LocalOnlyMapping
    • LooseSourceMapping
    • OverrideBlockRules
    • Owner
  • All unit & integration tests updated to be able to be run from any folder under tests directory.
  • Unit & Integration test template headers updated to match DSCResource templates.
  • Added parameters which allow you to skip reboots triggered by the individual components. For example, you can choose not to reboot if Windows Update requested a reboot.
  • Added test cases
  • Set now throws most exceptions
  • Added xRegistry resource
  • xService: Fixed a bug where ‘Dependencies’ property was not picked up and caused exception when set.
  • xWindowsOptionalFeature: Fixed bug where Test-TargetResource method always failed.
  • Added support for Windows Server 2012 (and later) SKUs.
  • Improvements in error handling
  • Updates to module manifest file
  • Added following resources:
    • xSPWordAutomationServiceApp
    • xSPHealthAnalyzerRuleState
    • SPUserProfileProperty
    • xSPWorkManagementApp
    • xSPUserProfileSyncConnection
    • xSPShellAdmin
  • Fixed issue with MinRole support in xSPJoinFarm
  • Added following resources:
    • xSPAppCatalog
    • xSPAppDomain
    • xSPWebApplicationAppDomain
    • xSPSessionStateService
    • xSPDesignerSettings
    • xSPQuotaTemplate
    • xSPWebAppSiteUseAndDeletion
    • xSPSearchTopology
    • xSPSearchIndexPartition
    • xSPWebAppPolicy
    • xSPTimerJobState
  • Fixed issue with wrong parameters in use for SP2016 beta 2 prerequisite installer
  • Added following resources:
    • xSPAntivirusSettings
    • xSPFarmAdministrators
    • xSPOutgoingEmailSettings
    • xSPPasswordChangeSettings
    • xSPWebAppBlockedFileTypes
    • xSPWebAppGeneralSettings
    • xSPWebAppThrottlingSettings
    • xSPWebAppWorkflowSettings
  • Fixed issue with xSPInstallPrereqs using wrong parameters in offline install mode
  • Fixed issue with xSPInstallPrereqs where it would not validate that installer paths exist
  • Fixed xSPSecureStoreServiceApp and xSPUsageApplication to use PSCredentials instead of plain text username/password for database credentials
  • Added built in PowerShell help (for calling “Get-Help about_[resource]”, such as “Get-Help about_xSPCreateFarm”)
  • Added the resource
    • xSqlAlias
  • Updated xSqlServerInstall to allow greater control over install paths and alignment to best practices
  • Added the following resources
    • xSQLDatabaseReoveryModeAdded
    • xSQLServerDatabaseOwner
    • xSQLServerDatabasePermissions
    • xSQLServerDatabaseRole
    • xSQLServerLogin
    • xSQLServerMaxDop
    • xSQLServerMemory
    • xSQLServerPowerPlan
  • xSQLServerSetup:
    • Corrected bug in GetFirstItemPropertyValue to correctly handle registry keys with only one value.
    • Added support for SQL Server 2008 R2 installation
    • Removed default values for parameters, to avoid compatibility issues and setup errors
    • Added Replication sub feature detection
    • Added setup parameter BrowserSvcStartupType
    • Change SourceFolder to Source to allow for multiversion Support
    • Add Source Credential for accessing source files
    • Add Paramaters for SQL Server configuration
    • Add Paramaters to SuppressReboot or ForceReboot
  • xSQLServerFirewall
    • Removed default values for parameters, to avoid compatibility issues
    • Updated firewall rule name to not use 2012 version, since package supports 2008, 2012 and 2014 versions
    • Additional of SQLHelper Function and error handling
    • Change SourceFolder to Source to allow for multiversion Support
  • xSQLServerNetwork
    • Added new resource that configures network settings.
    • Currently supports only tcp network protocol
    • Allows to enable and disable network protocol for specified instance service
    • Allows to set custom or dynamic port values
  • xSQLServerRSSecureConnectionLevel
    • Additional of SQLHelper Function and error handling
  • xSQLServerRSConfig
    • Additional of SQLHelper Function and error handling
  • xSQLServerFailoverClusterSetup
    • Additional of SQLHelper Function and error handling
    • Change SourceFolder to Source to allow for multiversion Support
    • Add Paramaters to SuppressReboot or ForceReboot
  • Examples
    • Updated example files to use correct DebugMode parameter value ForceModuleImport, this is not boolean in WMF 5.0 RTM
    • Added xSQLServerNetwork example
  • Fixed bug where AllocationUnitSize was not used
  • Added the following resources:
    • xSSLSettings
  • Fixed an issue in xWebApplication where Set-TargetResource attempted to modify a folder instead of an application.
    • Added Tests to xWebApplication which will allow more changes if desired.
  • Modified README.MD to clean up Code Formatting
  • Modified all unit/integration tests to utilize template system.
  • xWebAppPool is now has feature parity to cWebAppPool – should now support most changes.
  • Added Unit tests to IISFeatureDelegation, general script clean up
  • Refactored xIisHandle to load script variables once, added unit tests.
  • xWebsite updated:
    • Added support for the following binding protocols: msmq.formatname , net.msmq ,   net.pipe , net.tcp .
    • Added support for setting the   EnabledProtocols property.
    • Fixed an issue in bindings comparison which was causing bindings to be reassigned on every consistency check.
    • Fixed an issue where binding conflict was not properly detected and handled. Stopped websites will not be checked for conflicting bindings anymore.
    • The qualifier for the Protocol property of the MSFT_xWebBindingInformation CIM class was changed from Write to Required.
  • MSFT_xWindowsUpdate: Fixed an issue in the Get-TargetResource function, resulting in the Get-DscConfiguration cmdlet now working appropriately when the resource is applied.
  • MSFT_xWindowsUpdate: Fixed an issue in the Set-TargetResource function that was causing the function to fail when the installation of a hotfix did not provide an exit code.


Questions, comments?

If you’re looking into using PowerShell DSC, but have questions, are blocked by issues with current resources, or a lack of resources, let us know in the comments, twitter or create an issue on GitHub.


Karol Kaczmarek (@KarolKaczmarek)

PowerShell Team


Discussion is closed.

Feedback usabilla icon