Automating the world one-liner at a time…
In September, Microsoft released PowerShell Desired State Configuration (DSC) with twelve built in resources.
Three months later (December), we added eight more resources with Wave One of the DSC Resource Kit.
Two months after that (February), we totaled fourteen additional resources with Wave Two of the DSC Resource Kit.
Can you guess what happens now, the month after the release of Wave Two?
We're happy to announce Wave Three of the DSC Resource Kit. This wave contains eighteen new DSC resources. This brings our total count to over 50 DSC Resources -- without even mentioning the community created resources available on the PowerShell.Org's GitHub.
Click here to see all of the resources in the Resource Kit!
The resources available in this wave allow you to get more done. We've drastically improved the support of IIS and SQL Server, adding resources for managing things like Web App Pools, Virtual Directories, Web Applications, and DACPACs. We've added a whole new set of resources to support Remote Desktop Session Host. We've added other new resources, allowing you to manage PowerShell Remoting endpoints, download files from a URI, compress/decompress .zip files, and more.
Now, you might be thinking, "That is an awful lot of resources. Am I going to have to download them all individually?" Not to worry -- you can download all of the latest DSC resources from this page. If you want to take a more à la carte approach, you can still search for “DSC Resource Kit” on TechNet Script Center.
In addition to the new resources, we have also made some updates to existing resources based on feedback we have received.
If you're looking into using PowerShell DSC, but are blocked by a lack of resources, let us know in the comments or the TechNet QA Section.
As always, 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 moving forward. Also, don’t forget to check out the community versions of many resources on PowerShell.Org's GitHub.
After installing the modules, you can discover all of the resources available by using the Get-DSCResource cmdlet. Here is a brief description of each resource (for more details on a resource, check out the TechNet pages).
Create, remove, start, stop an IIS Application Pool
Create or remove a virtual directory
Create or remove a web application
Configure AppSettings section of Web.Config
Create, drop & deploy databases
Backup & restore databases
Enable or disable User Account Control prompt
Enable or disable IE Enhanced Security Configuration
Creates and configures a deployment in RDSH.
Creates a RDSH collection.
Configures a RDSH collection.
Publish applications for your RDSH collection
Adds ability to run as a specific user to the existing WindowsProcess resource
Update to existing Service resource to include create/configure service
Download files from a URI
Adds ability to run as a specific user to the existing resource, includes VS Setup
Create, update, extract a Zip file
Creates a remoting endpoint
xDscResourceDesigner, xComputer, xVMHyperV, xDNSServerAddress
Feature additions and bug fixes
The specific changes to existing resources will be noted on the individual TechNet pages.
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)
b. Folder name (ex: MSFT_xWebsite becomes Contoso_cWebsite)
c. Resource Name (ex: MSFT_xWebsite becomes Contoso_cWebsite)
d. Resource Friendly Name (ex: xWebsite becomes cWebsite)
e. MOF class name (ex: MSFT_xWebsite becomes Contoso_cWebsite)
f. 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.
How do you suggest we remove the old resources?
i.e. should an Admin take ownership of following directory, apply full permissions and delete it . . .
We strongly recommend to install the resources under the "C:\Program files\WindowsPowerShell\Modules" folder instead of the System32 path.
Ben, to add on with the above, I would advise you not remove the existing resources (e.g. those that ship "in box" in System32). Because the names are different (e.g. xPackage vs Package), you can use them side by side if you would like.