Your Configuration is exactly that: the configuration of the nodes you specified in your ConfigurationData.
From Part 1:
Let’s take a look at a very basic Configuration:
Configuration XPSRemover #Keyword + name of the keyword { Import-DscResource -ModuleName PSDesiredStateConfiguration #Here we are importing a special resource used by DSC to enact the configuration Node localhost #Here we are telling DSC that we want to run this on the localhost, i.e. the machine we run the configuration on { WindowsFeature XPS-Viewer-Removal #Here we say what we want to configure (a windows feature) and give that configuration block a name. { Name = "XPS-Viewer" #Here we declare the name of the feature we want to remove. Ensure = "Absent" #Here we declare that we want the feature to be uninstalled if it is currently installed } } }
Let us unpack this line by line:
Configuration XPSRemover #Keyword + name of the keyword
When you create a function, you use the keyword ‘Function’ in the format:
Function Import-MyFancyFunction
With the Configuration keyword, you can now call the configuration from a PowerShell prompt like you would a function you wrote.
Import-DscResource -ModuleName PSDesiredStateConfiguration #Here we are importing a special resource used by DSC to enact the configuration
The Import-DSCResource is a special command that you only use within a Configuration, you can’t just use it from a PowerShell prompt.
“PSDesiredStateConfiguration” is a special resource as mentioned in Part 1. This allows PowerShell DSC to configure settings that the resource knows about. You will find
This is similar in function to how you need to “Import-Module ActiveDirectory” in order to use any of the AD PowerShell CMDlets.
Node localhost #Here we are telling DSC that we want to run this on the localhost, i.e. the machine we run the configuration on
This tells PowerShell DSC that we want to run this configuration on the local host. You could have an actual hostname here, and later we’ll look at how to use roles.
WindowsFeature XPS-Viewer-Removal #Here we say what we want to configure (a windows feature) and give that configuration block a name.
Here we tell PowerShell DSC that we want to configure a WindowsFeature. The name we give this block should tell us, the human reading the code, what we want to do, rather than tell PowerShell anything.
Name = "XPS-Viewer" #Here we declare the name of the feature we want to remove.
Here we need the exact name of the windows feature we want to install/remove. This needs to match what you see when you run Get-WindowsFeature at a PowerShell prompt.
Ensure = "Absent" #Here we declare that we want the feature to be uninstalled if it is currently installed
If ensure is set to ‘Present’, then the feature will be installed if it is missing, if ‘Absent’ is declared, then the feature will be removed if found.
So, that’s a very very basic Configuration. Running this in PowerShell will not make any changes to your system, but will instead create a MOF (Management Object Format) file as can be seen in this screenshot:
Good overview Lars! Looking forward to more 🙂
LikeLike