Need more DSC Resources? Announcing DSC Resource Kit Wave 2

PowerShell Team

Good news everyone! Starting today, you can use Windows PowerShell Desired State Configuration (DSC) to configure Active Directory and SQL Server (including High Availability Groups). We are pleased to release the next wave of the DSC Resource Kit – one that enables you to start using DSC to solve your real world problems and scenarios.

When we shipped DSC in Windows Server 2012 R2, we shipped a platform with great infrastructure for configuration.  The next step for any platform like DSC is the creation of resources to make it immediately usable in significant real world scenarios.  With the resources we shipped in box, configuring SQL Server was out of reach for most of our customers.  That’s changing today.  Now is the time to create a vibrant ecosystem and expansive community.

Over the past few months, we’ve worked hard to kick start this community.  Last month, we released the first wave of the DSC Resource Kit.  That release contained six experimental DSC resources, enabling you to configure IIS websites and Hyper-V.  Those were a limited subset of resources – a first pass at the process.  Now, we’re ready to turn it up a notch.

This wave of the DSC Resource Kit includes fourteen new resources.  These resources are all focused on enabling you to configure Active Directory and SQL Server (including High Availability Groups).  These are real world scenarios where DSC can make an impact.  Soon, we will be blogging an involved example that uses these resources to set up a SQL High Availability Group using DSC.  In addition, we’ve updated many of the resources from the initial release, adding features and fixing bugs.

Click here to see the latest DSC Resource Kit modules.

We hope these resources will be a starting point for the DSC community – something to facilitate DSC resource creation.  Feel free to take and modify these resources to meet your needs (while following the Renaming Guidelines). We were thrilled to see that several community members created modified versions of last wave’s resources in PowerShell.Org’s GitHub repository.  Also, don’t forget that you can create your own resources – for help, check out this blog post and the DSC Resource Designer.

On a more serious note, we must reiterate that these resources come without any guarantees.  The “x” prefix stands for experimental – which means these resources are provided AS IS and are not supported through any Microsoft support program or service. We will monitor the TechNet pages, take feedback, and may provide fixes on a “fix forward” basis.

Finally – before diving into the details – we want to invite everyone to give feedback on the DSC Resource Kit.  Are you hungry for even more resources?  Do you need DSC to enable any important scenarios?  Let us know through the comments or TechNet Q&A — there’s definitely more to come.

Description of Resources

After installing the modules, you can discover all of the resources available through the Get-DSCResource cmdlet:

Image 6888 forblogpost

Here is a brief description of each resource (for more details on a resource, check out the TechNet pages).


Resource Description Module Name Link
xADDomain Create and manage an Active Directory Domain xActiveDirectory  click here
xADDomainController Create and manage an AD Domain Controller xActiveDirectory  click here
xADUser Create and manage an AD User xActiveDirectory  click here
xWaitForADDomain Pause configuration implementation until the AD Domain is available.  Used for cross machine synchronization. xActiveDirectory  click here
xSqlServerInstall Create and manage a SQL Server Installation. xSqlps  click here
xSqlHAService Create and manage a SQL High Availability Service. xSqlps  click here
xSqlHAEndpoint Create and manage the endpoint used to access a SQL High Availability Group. xSqlps  click here
xSqlHAGroup Create and manage a SQL High Availability Group. xSqlps  click here
xWaitForSqlHAGroup Pause configuration implementation until a SQL HA Group is available.  Used for cross machine synchronization. xSqlps  click here
xCluster Create and manage a cluster. xFailOverCluster  click here
xWaitForCluster Pause configuration until a cluster is available.  Used for cross machine synchronization. xFailOverCluster  click here
xSmbShare Create and manage a SMB Share. xSmbShare  click here
xFirewall Create and manage Firewall rules xNetworking  click here
xVhdFile Manage files to be copied into a Vhd. xHyper-V  click here
xWebsite Added functionality to xWebsite to support configuration of https websites. xWebAdministration  click here
xVhd Bug fixes xHyper-V  click here


Renaming Guidelines

When making changes to these resources, we urge the following practice:

1.     Update the following names by replacing MSFT with your company/community name and replacing the “x” with “c” (short for “Community”) or another prefix of your choice:

a.     Module name (ex: xWebAdministration becomes cWebAdministration)

a.     Folder name (ex: MSFT_xWebsite becomes Contoso_cWebsite)

b.     Resource Name (ex: MSFT_xWebsite becomes Contoso_cWebsite)

c.     Resource Friendly Name (ex: xWebsite becomes cWebsite)

d.     MOF class name (ex: MSFT_xWebsite becomes Contoso_cWebsite)

e.     Filename for the <resource>.schema.mof (ex: MSFT_xWebsite.schema.mof becomes Contoso_cWebsite.schema.mof)

2.     Update module and metadata information in the module manifest

3.     Update any configuration that use these resources


We reserve resource and module names without prefixes (“x” or “c”) for future use (e.g. “MSFT_WebAdministration” or “Website”).  If the next version of Windows Server ships with a “Website” resource, we don’t want to break any configurations that use any community modifications.  Please keep a prefix such as “c” on all community modifications.

As specified in the license, you may copy or modify this resource as long as they are used on the Windows Platform.


The DSC Resource Kit requires Windows 8.1 or Windows Server 2012 R2 with update KB2883200 (aka the GA Update Rollup). You can check whether it is installed by running the following command:


PS C:\WINDOWS\system32> Get-HotFix -Id KB2883200


Source        Description      HotFixID      InstalledBy          InstalledOn             

——        ———–      ——–      ———–          ———–             

NANA-TOUCH    Update           KB2883200     NANA-TOUCH\Admini… 9/30/2013 12:00:00 AM   


On supported down level operating systems, they require WMF 4.0. Refer to these previous blog posts for more information on WMF 4.0 and issues with partial installation.

Using Resources

For simple examples of configurations that use these resources, check out the respective TechNet pages. Soon, we will be blogging an involved example that details the configuration of a SQL High Availability Group using DSC. If you need help deploying the resources, see this blog post.




John Slack

Program Manager

PowerShell Team


Discussion is closed.

Feedback usabilla icon