Can a PowerShell DSC configuration file be created from a current system build?

Is there a way to build a PowerShell desired state configuration (DSC) configuration file from a current system? Opposed of building the entire file from scratch?


Not directly. You'd have to approach each resource you want to module independently.

For example, if you want to model the existing windows roles and features, you could script out something like

Get-WindowsFeature -ComputerName ny-web01 | 
? installed |
% {$t = ''} { $t += @"

WindowsFeature "Role-$($_.Name)"
{
    Name = '$($_.Name)'
    Ensure = 'Present'
"@ 
    if ($_.dependson)
    {
        $t += @"
    DependsOn = '[WindowsFeature]Role-$($_.Name)'
"@
    }

    $t += @'

}
'@
} {$t}

Each resource will be unique in how you want to identify those things you want to control.


If you have a web-server, you can use Desired State Generator to create configurations for your web sites, application pools and IIS components.

Not everything, but it could give you a head start.


There is now something called ReverseDSC which allows you to create DSC configuration files based on an existing system. It still doesn't work for all aspects of the system but supports many common scenarios.