Bird
Raised Fist0
PowerShellscripting~5 mins

Desired State Configuration (DSC) basics in PowerShell - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is Desired State Configuration (DSC) in PowerShell?
DSC is a management platform in PowerShell that helps you define and maintain the configuration of your computers automatically, ensuring they stay in a desired state.
Click to reveal answer
beginner
What is a DSC Configuration script?
A DSC Configuration script is a special PowerShell script that defines the desired settings for a computer or environment using a declarative syntax.
Click to reveal answer
beginner
What does the 'Node' keyword do in a DSC Configuration?
The 'Node' keyword specifies which computer(s) the configuration applies to. It can be a single computer or multiple computers.
Click to reveal answer
beginner
What is a 'Resource' in DSC?
A Resource is a building block in DSC that defines how to configure a specific part of the system, like installing software or setting a service state.
Click to reveal answer
beginner
How do you apply a DSC configuration to a computer?
You compile the configuration script to create a .mof file, then use the Start-DscConfiguration cmdlet to apply it to the target computer.
Click to reveal answer
What is the main purpose of Desired State Configuration (DSC)?
ATo monitor network traffic
BTo write scripts that run only once
CTo create user accounts manually
DTo automatically keep computers in a defined configuration state
Which PowerShell keyword defines the target computers in a DSC configuration?
AResource
BNode
CConfiguration
DApply
What file type is generated after compiling a DSC configuration script?
A.mof
B.txt
C.xml
D.ps1
Which cmdlet applies a DSC configuration to a computer?
ASet-ExecutionPolicy
BInvoke-Command
CStart-DscConfiguration
DNew-Item
In DSC, what is a Resource used for?
ATo define how to configure a system component
BTo store user data
CTo write logs
DTo schedule tasks
Explain the basic workflow of creating and applying a DSC configuration.
Think about the steps from writing to applying the configuration.
You got /4 concepts.
    Describe what a DSC Resource is and give an example of its use.
    Resources are like building blocks for configurations.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of Desired State Configuration (DSC) in PowerShell?
      easy
      A. To monitor network traffic continuously
      B. To write scripts that run only once manually
      C. To automatically keep your computer setup as you want it
      D. To create user accounts interactively

      Solution

      1. Step 1: Understand DSC's role

        DSC is designed to keep system configurations consistent automatically.
      2. Step 2: Compare options

        Only To automatically keep your computer setup as you want it describes automatic maintenance of computer setup, which is DSC's goal.
      3. Final Answer:

        To automatically keep your computer setup as you want it -> Option C
      4. Quick Check:

        DSC purpose = automatic setup maintenance [OK]
      Hint: DSC means automatic setup enforcement [OK]
      Common Mistakes:
      • Thinking DSC only runs scripts once
      • Confusing DSC with network monitoring
      • Assuming DSC manages user accounts interactively
      2. Which of the following is the correct way to start a DSC configuration block in PowerShell?
      easy
      A. Start-DSCConfig MyConfig { }
      B. Configuration MyConfig { }
      C. Config MyConfig { }
      D. New-DSCConfig -Name MyConfig { }

      Solution

      1. Step 1: Recall DSC syntax

        The DSC configuration block always starts with the keyword 'Configuration' followed by the name.
      2. Step 2: Check options

        Only Configuration MyConfig { } uses the correct keyword 'Configuration' to define the block.
      3. Final Answer:

        Configuration MyConfig { } -> Option B
      4. Quick Check:

        DSC block starts with 'Configuration' [OK]
      Hint: DSC configs start with 'Configuration' keyword [OK]
      Common Mistakes:
      • Using 'Config' instead of 'Configuration'
      • Trying to use cmdlets to start config blocks
      • Confusing DSC syntax with other PowerShell commands
      3. Given this DSC configuration snippet, what will be the output file name generated after running MyConfig?
      Configuration MyConfig {
        Node 'localhost' {
          File ExampleFile {
            DestinationPath = 'C:\temp\example.txt'
            Contents = 'Hello DSC'
          }
        }
      }
      MyConfig
      medium
      A. localhost.mof
      B. MyConfig.ps1
      C. example.txt
      D. MyConfig.mof

      Solution

      1. Step 1: Understand DSC output files

        Running a DSC configuration generates a MOF file named after the Node, here 'localhost'.
      2. Step 2: Identify the MOF file name

        The MOF file will be 'localhost.mof' because the Node is 'localhost'.
      3. Final Answer:

        localhost.mof -> Option A
      4. Quick Check:

        DSC MOF file = NodeName.mof [OK]
      Hint: DSC MOF file named after Node, not config [OK]
      Common Mistakes:
      • Assuming MOF file is named after config
      • Confusing MOF with script files
      • Expecting output as the destination file
      4. You wrote this DSC configuration but get an error when running it:
      Configuration SampleConfig {
        Node 'localhost' {
          File MyFile {
            DestinationPath = 'C:\temp\file.txt'
            Content = 'Test content'
          }
        }
      }
      SampleConfig
      What is the error in this script?
      medium
      A. The Node name 'localhost' is invalid
      B. The configuration block must end with 'End-Configuration' command
      C. The DestinationPath must be a folder, not a file
      D. The property 'Content' should be 'Contents' in the File resource

      Solution

      1. Step 1: Check File resource properties

        The File resource requires the property 'Contents' (plural), not 'Content'.
      2. Step 2: Validate other parts

        Node 'localhost' is valid, DestinationPath can be a file path, and no 'End-Configuration' command exists.
      3. Final Answer:

        The property 'Content' should be 'Contents' in the File resource -> Option D
      4. Quick Check:

        File resource uses 'Contents' property [OK]
      Hint: File resource property is 'Contents' plural [OK]
      Common Mistakes:
      • Using 'Content' instead of 'Contents'
      • Thinking Node names must be IP addresses
      • Expecting a special end command for configuration
      5. You want to ensure a folder C:\Logs always exists on a remote computer using DSC. Which configuration snippet correctly enforces this desired state?
      hard
      A.
      Configuration EnsureFolder {
        Node 'RemotePC' {
          File LogsFolder {
            DestinationPath = 'C:\Logs'
            Type = 'Directory'
            Ensure = 'Present'
          }
        }
      }
      B.
      Configuration EnsureFolder {
        Node 'RemotePC' {
          Directory LogsFolder {
            Path = 'C:\Logs'
            State = 'Exists'
          }
        }
      }
      C.
      Configuration EnsureFolder {
        Node 'RemotePC' {
          File LogsFolder {
            DestinationPath = 'C:\Logs'
            Ensure = 'Present'
          }
        }
      }
      D.
      Configuration EnsureFolder {
        Node 'RemotePC' {
          File LogsFolder {
            DestinationPath = 'C:\Logs'
            Type = 'File'
            Ensure = 'Present'
          }
        }
      }

      Solution

      1. Step 1: Identify correct resource and properties

        To ensure a folder exists, use the File resource with Type='Directory' and Ensure='Present'.
      2. Step 2: Check options for correctness

        Configuration EnsureFolder {
          Node 'RemotePC' {
            File LogsFolder {
              DestinationPath = 'C:\Logs'
              Type = 'Directory'
              Ensure = 'Present'
            }
          }
        }
        correctly uses File resource with Type='Directory' and Ensure='Present'.
        Configuration EnsureFolder {
          Node 'RemotePC' {
            File LogsFolder {
              DestinationPath = 'C:\Logs'
              Ensure = 'Present'
            }
          }
        }
        misses Type, D wrongly uses Type='File', B uses a non-existent Directory resource.
      3. Final Answer:

        Option A snippet correctly ensures folder presence -> Option A
      4. Quick Check:

        File resource + Type='Directory' + Ensure='Present' = folder exists [OK]
      Hint: Use File resource with Type='Directory' to create folders [OK]
      Common Mistakes:
      • Using Type='File' for folders
      • Omitting Type property for directories
      • Using non-existent 'Directory' resource