Q: I'm using PowerShell Desired State Configuration and want to create a configuration that will work for any computer; how can I do this?

A: You typicallly specify configuration for specific nodes in a PowerShell configuration; for example:

Node websrv1
{ ... }

There are several ways to make a configuration work for any machine. One method is to just use localhost, which would then work for any machine; for example:

Node localhost
{ ... }

You can also create a hashtable of entries, with each entry a specific node that can then be used and passed in a configuration. This method is discussed in the Windows PowerShell Blog post "Separating 'What' from 'Where' in PowerShell DSC." One of these entries can be * for all hosts.

Another option is to pass the machine name as a parameter to the configuration and then specify a unique name each time you want to compile a new configuration; for example:

Configuration SavillTechWebsite
{
param
(
# Target nodes to apply the configuration
[string[]]$NodeName = 'localhost'
)
# Import the module that defines custom resources
Import-DscResource -Module xWebAdministration
Node $NodeName
{ ... }
}

SavillTechWebsite -Machinename websrv1