DSC Resource Kit flourishes as open source

We are excited to announce the recent updates which were made to DSC Resource Kit since open sourcing it on GitHub! We were working hard on improving coverage and robustness of DSC as well as saw incredible engagement from the community in the recent months.

That effort resulted in adding 32 new DSC resources across 8 modules and fixing bugs in 22 resources across 17 modules since last release at the beginning of May! It means that we’ve achieved our next milestone of 200 resources and are now up to a total of 212 DSC resources!

For those who love numbers as much as we do, here’s couple other statistics from our GitHub repositories:

  • 19 contributors from outside of the PowerShell team participated in DSC development
  • 109 pull requests have been merged
  • 28 issues have been closed                                                    

Let’s not forget to mention that many of bug fixes and almost all (30) new resources are coming from the community. We are thrilled to see such great enthusiasm to contribute to and help improve DSC and encourage you to continue this effort (see “How can I contribute?” section for details on how you can get started). Thank you, you are awesome!

You may have noticed that today’s announcement does not mention anything about new DSC Resource Kit Wave and may be wondering why that’s the case. The answer is simple: waves are gone!

So far (till Wave 10 in April 2015) we’ve been releasing Resource Kit Waves on TechNet and the PowerShell Gallery. Since moving DSC Resource Kit to GitHub, we will no longer release to TechNet, but will update modules regularly in the PowerShell Gallery.

We will be working on development of DSC resources and accepting contributions on GitHub on an ongoing basis. Once updates of given DSC resource module are significant enough to release a new version, we will pull
recent code from GitHub and publish it to the PowerShell Gallery with a new version number.

Periodically, you can expect a blog post here describing what has been released recently – just as this one does :).

 

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:

http://www.powershellgallery.com/packages/<Module_Name>

e.g.:

http://www.powershellgallery.com/packages/xWebAdministration

Of course, you can always use PowerShellGet (available in WMF 5.0) as well:

Find-DscResource 

 

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>

e.g.

Install-Module –Name xWebAdministration

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

Update-Module

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:

Get-DscResource

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).

You may be wondering why some of the modules have two versions listed. The reason for that is that since Wave 10 we’ve released them to the PowerShell Gallery twice – in May and June. Some of the modules were updated only once, but others got fixes in both releases – for those we list both versions together with the changes they contain.

Module name

Version

Description

xActiveDirectory

2.4.0.0

  •   Added xADRecycleBin resource
  •   Minor fixes for xADUser resource

xCertificate

1.0.0.0

(New)

  •   Initial public release of xCertificate module with following resources:
    •   xCertReq

xChrome

1.0.1.0

  •   Minor changes in module manifest

xComputerManagement

1.3.0

  •   Fixed issue with Test-TargetResource in xComputer resource when domain or workgroup name is not specified
  •   Added tests

xDatabase

1.2.0

  •   Improved support for credentials

xDhcpServer

1.2

  •   Fixed “Cannot set default gateway on
      xDhcpServerOption” bug

xDisk

Deprecated

  •   xDisk module has been deprecated and replaced
      by xStorage

xDnsServer

1.1

  •   Added xDnsARecord resource

xDscResourceDesigner

1.4.0.0

  •   Added support and tests for -FriendlyName on
      Update-xDscResource
  •   Added tests for creating and updating
      resources
  •   Minor fixes for Update-xDscResource

1.3.0.0

Merged changes from PowerShell.org fork:

  •   Removed requires -RunAsAdministrator
  •   Added support for Enum types (with associated
      ValueMap)
  •   Added support for EmbeddedInstances other than
      MSFT_Credential and MSFT_KeyValuePair
  •   Fixed parameter name in Test-xDscResource
      comment-based help to match actual command definition
  •   Updated Test-xDscResource to use a process
      block, since it accepts pipeline input
  •   Fixed invalid use of try/catch/finally in
      Test-MockSchema and Test-DscResourceModule
  •   Updated code related to Common parameters, now
      handles all common parameters properly based on command metadata.
  •   Added very basic tests for Test-xDscResource

xExchange

1.1.0.0

  •   xExchAutoMountPoint resource: Added
      parameter EnsureExchangeVolumeMountPointIsLast
  •   xExchExchangeCertificate resource: Added error
      logging for the Enable-ExchangeCertificate cmdlet
  •   xExchExchangeServer resource: Added pre-check
      for deprecated Set-ExchangeServer parameter, WorkloadManagementPolicy
  •   xExchJetstressCleanup resource: When
      OutputSaveLocation is specified, Stress* files will also now be saved
  •   xExchMailboxDatabase resource:
    • Added AdServerSettingsPreferredServer parameter
    • Added SkipInitialDatabaseMount parameter,
        which can help in an enviroments where databases need time to be able to mount successfully after creation
    • Added better error logging for Mount-Database
    • Databases will only be mounted at initial database creation
        if MountAtStartup is $true or not specified
    •   xExchMailboxDatabaseCopy resource:
      • Added SeedingPostponed parameter
      • Added AdServerSettingsPreferredServer parameter
      • Changed so that ActivationPreference will only be set if the number of existing copies for the database is greater than or equal to the specified ActivationPreference
      • Changed so that a seed of a new copy is only performed if SeedingPostponed is not specified or set to $false
      • Added better error logging for Add-MailboxDatabaseCopy
      • Added missing tests for EdbFilePath and LogFolderPath
    •   xExchOwaVirtualDirectory resource: Added
        missing test for InstantMessagingServerName
    •   xExchWaitForMailboxDatabase resource:
        Added AdServerSettingsPreferredServer parameter
    •   ExchangeConfigHelper.psm1:
        Updated DBListFromMailboxDatabaseCopiesCsv so that the DB copies that are returned are sorted by Activation Preference in ascending order.

xHyper-V

2.4.0.0

  •   Fixed VM power state issue in xVMHyperV
      resource

2.3.0

  •   Fixed check for presence of param
      AllowManagementOS

xNetworking

2.2.0.0

  •   Changes in xFirewall resources to meet
      Test-xDscResource criteria

xPhp

1.1.0.0

  •   Updated module name to support WMF 5

xPSDesiredStateConfiguration

3.3.0.0

  •   Add support to xPackage resource for checking
      different registry hives
  •   Added support for new registration properties in
      xDscWebService resource

3.2.0.0

  •   Fix problems with file names containing square
      brackets in xArchive resource
  •   Fix default culture issue in xDSCWebService
      resource
  •   Security enhancements in xPackage resource

xRemoteDesktopAdmin

1.0.3.0

  •   Updated examples

xRobocopy

1.0.0.0

(New)

  •   Initial public release of xRobocopy module
      with following resources:
    •   xRobocopy

xSharepoint

0.3.0.0

  •   Fixed issue with detection of Identity
      Extensions in xSPInstallPrereqs resource
  •   Changes to comply with PSScriptAnalyzer rules

0.2.0.76

(New)

  •   Initial public release of xSharePoint module
      with following resources:
    • xBCSServiceApp
    • xSPCacheAccounts
    • xSPClearRemoteSessions
    • xSPCreateFarm
    • xSPDiagnosticLoggingSettings
    • xSPDistributedCacheService
    • xSPFeature
    • xSPInstall
    • xSPInstallPreReqs
    • xSPJoinFarm
    • xSPManagedAccount
    • xSPManagedMetadataServiceApp
    • xSPManagedPath
    • xSPSearchServiceApp
    • xSPSecureStoreServiceApp
    • xSPServiceAppPool
    • xSPServiceInstance
    • xSPSite
    • xSPStateServiceApp
    • xSPUsageApplication
    • xSPUserProfileServiceApp
    • xSPUserProfileSyncService
    • xSPWebApplication

xSmbShare

1.1.0.0

  •   Fixed bug in xSmbShare resource which was
      causing Test-TargetResource to return false negatives when  more than three parameters were specified.

xSqlServer

1.3.0.0

  •   Made features case-insensitive in
      xSqlServerSetup resource

xStorage

1.0.0.0

(New)

  •   Initial release of xStorage module with
      following resources (contains resources from deprecated xDisk module):
    •   xDisk (from xDisk)
    •   xMountImage
    •   xWaitForDisk (from xDisk)

xTimeZone

1.1.0.0

  •   Added tests

xWebAdministration

1.6.0.0

  •   Fixed bug in xWebsite resource regarding
      incorrect name of personal certificate store

1.5.0.0

  •   Fix issue with Get-Website when there are
      multiple sites in xWebsite resource
  •   Fix issue when trying to add a new website
      when no websites currently exist in xWebsite resource.

xWebDeploy

1.0.0.0

(New)

  •   Initial release of xWebDeloy module following
      resources:
    • xWebDeploy
    • xWebPackageDeploy

xWindowsEventForwarding

1.0.0.0

(New)

  •   Initial release of xWindowsEventForwarding
      module with following modules:
    •   xWEFCollector
    •   xWEFSubscription

xWindowsUpdate

2.0.0

  •   Minor changes in documentation

xWinEventLog

1.0.0.0

  •   Fixed Set-TargetResource function in
      xWinEventLog resource not to reapply if resource is in desired state already.

 

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 or create an issue on GitHub.

 

Karol Kaczmarek          

Software Engineer

PowerShell Team