Bird
Raised Fist0
PowerShellscripting~5 mins

Registry operations 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 the Windows Registry?
The Windows Registry is a database that stores settings and options for the operating system and installed programs. It helps Windows remember configurations like user preferences and system settings.
Click to reveal answer
beginner
How do you read a registry value using PowerShell?
Use the <code>Get-ItemProperty</code> cmdlet with the registry path. For example: <code>Get-ItemProperty -Path 'HKCU:\Software\MyApp' -Name 'Setting'</code> reads the 'Setting' value under 'MyApp' in the current user hive.
Click to reveal answer
beginner
How can you create a new registry key in PowerShell?
Use New-Item with the registry path. For example: New-Item -Path 'HKCU:\Software\MyNewApp' creates a new key named 'MyNewApp' under current user software.
Click to reveal answer
beginner
How do you set or change a registry value in PowerShell?
Use Set-ItemProperty with the path, name, and value. Example: Set-ItemProperty -Path 'HKCU:\Software\MyApp' -Name 'Setting' -Value 'NewValue' changes 'Setting' to 'NewValue'.
Click to reveal answer
beginner
What is the difference between HKCU and HKLM in the registry?
HKCU (HKEY_CURRENT_USER) stores settings for the logged-in user only. HKLM (HKEY_LOCAL_MACHINE) stores settings for all users on the computer.
Click to reveal answer
Which PowerShell cmdlet reads a registry value?
AGet-ItemProperty
BNew-Item
CSet-ItemProperty
DRemove-Item
What does HKLM stand for in the Windows Registry?
AHKEY_LOCAL_MACHINE
BHKEY_LOCAL_MEMORY
CHKEY_LOGGED_MACHINE
DHKEY_LOCAL_MODULE
Which cmdlet creates a new registry key?
ASet-ItemProperty
BGet-ItemProperty
CRemove-ItemProperty
DNew-Item
To change a registry value, which cmdlet should you use?
AGet-ItemProperty
BNew-Item
CSet-ItemProperty
DRemove-Item
Which registry hive stores settings specific to the current user?
AHKLM
BHKCU
CHKCR
DHKU
Explain how to read, create, and modify registry keys and values using PowerShell.
Think about the cmdlets for reading, creating, and setting registry data.
You got /4 concepts.
    Describe the difference between HKCU and HKLM registry hives and when you might use each.
    Consider who the settings affect: one user or all users.
    You got /4 concepts.

      Practice

      (1/5)
      1. What PowerShell cmdlet is used to read a value from the Windows registry?
      easy
      A. Remove-Item
      B. Set-ItemProperty
      C. New-Item
      D. Get-ItemProperty

      Solution

      1. Step 1: Understand cmdlet purposes

        Get-ItemProperty reads registry values, Set-ItemProperty writes values, New-Item creates keys, Remove-Item deletes keys.
      2. Step 2: Identify reading operation

        Since the question asks about reading, Get-ItemProperty is the correct cmdlet.
      3. Final Answer:

        Get-ItemProperty -> Option D
      4. Quick Check:

        Read registry value = Get-ItemProperty [OK]
      Hint: Reading registry uses Get-ItemProperty cmdlet [OK]
      Common Mistakes:
      • Confusing Set-ItemProperty as reading cmdlet
      • Using New-Item or Remove-Item which manage keys, not values
      • Trying to read with Remove-Item
      2. Which of the following is the correct syntax to set a registry value named TestValue to 123 under HKCU:\Software\MyApp?
      easy
      A. Get-ItemProperty -Path 'HKCU:\Software\MyApp' -Name 'TestValue' -Value 123
      B. Set-ItemProperty -Path 'HKCU:\Software\MyApp' -Value 'TestValue' -Name 123
      C. Set-ItemProperty -Path 'HKCU:\Software\MyApp' -Name 'TestValue' -Value 123
      D. New-Item -Path 'HKCU:\Software\MyApp' -Name 'TestValue' -Value 123

      Solution

      1. Step 1: Identify correct cmdlet and parameters

        Set-ItemProperty sets a registry value. The parameters are -Path for key, -Name for value name, and -Value for the data.
      2. Step 2: Check parameter order and names

        Set-ItemProperty -Path 'HKCU:\Software\MyApp' -Name 'TestValue' -Value 123 correctly uses -Path, -Name, and -Value in proper order. Other options mix parameters or use wrong cmdlets.
      3. Final Answer:

        Set-ItemProperty -Path 'HKCU:\Software\MyApp' -Name 'TestValue' -Value 123 -> Option C
      4. Quick Check:

        Set-ItemProperty syntax = Set-ItemProperty -Path 'HKCU:\Software\MyApp' -Name 'TestValue' -Value 123 [OK]
      Hint: Set-ItemProperty uses -Name for value and -Value for data [OK]
      Common Mistakes:
      • Swapping -Name and -Value parameters
      • Using Get-ItemProperty to set values
      • Using New-Item which creates keys, not values
      3. What will be the output of this PowerShell command?
      Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer' -Name 'ShellState'
      medium
      A. Creates a new registry key named 'ShellState'
      B. Displays the value of 'ShellState' property from the specified registry key
      C. Deletes the 'ShellState' value from the registry key
      D. Throws an error because 'ShellState' is not a valid cmdlet

      Solution

      1. Step 1: Understand Get-ItemProperty behavior

        This cmdlet reads the value of a property from a registry key.
      2. Step 2: Analyze the command

        The command reads the 'ShellState' value from the given registry path and outputs it.
      3. Final Answer:

        Displays the value of 'ShellState' property from the specified registry key -> Option B
      4. Quick Check:

        Get-ItemProperty reads registry values [OK]
      Hint: Get-ItemProperty outputs registry value data [OK]
      Common Mistakes:
      • Thinking it creates or deletes keys
      • Confusing property name with cmdlet name
      • Expecting an error for valid property
      4. You run this command to delete a registry key:
      Remove-Item -Path 'HKCU:\Software\MyApp'

      But it fails with an error saying the key is not empty. How can you fix this?
      medium
      A. Add the parameter -Recurse to delete all subkeys
      B. Use Remove-ItemProperty instead
      C. Run New-Item to recreate the key first
      D. Change the path to HKLM:\Software\MyApp

      Solution

      1. Step 1: Understand Remove-Item behavior

        Remove-Item cannot delete a key if it has subkeys unless -Recurse is used.
      2. Step 2: Apply -Recurse parameter

        Adding -Recurse deletes the key and all its subkeys, fixing the error.
      3. Final Answer:

        Add the parameter -Recurse to delete all subkeys -> Option A
      4. Quick Check:

        Remove-Item -Recurse deletes key with subkeys [OK]
      Hint: Use -Recurse with Remove-Item to delete keys with subkeys [OK]
      Common Mistakes:
      • Using Remove-ItemProperty which deletes values, not keys
      • Trying to recreate key before deleting
      • Changing registry hive path without reason
      5. You want to create a new registry key HKCU:\Software\MyApp\Settings only if it does not exist. Which script snippet correctly does this?
      hard
      A. if (-not (Test-Path 'HKCU:\Software\MyApp\Settings')) { New-Item -Path 'HKCU:\Software\MyApp' -Name 'Settings' }
      B. New-Item -Path 'HKCU:\Software\MyApp\Settings' -Force
      C. Set-ItemProperty -Path 'HKCU:\Software\MyApp\Settings' -Name 'Exists' -Value $true
      D. Remove-Item -Path 'HKCU:\Software\MyApp\Settings' -ErrorAction SilentlyContinue

      Solution

      1. Step 1: Check if key exists using Test-Path

        Test-Path returns true if the registry key exists, so -not negates it to check non-existence.
      2. Step 2: Create key only if missing

        New-Item creates the 'Settings' key under 'MyApp' only if it does not exist, avoiding errors.
      3. Final Answer:

        if (-not (Test-Path 'HKCU:\Software\MyApp\Settings')) { New-Item -Path 'HKCU:\Software\MyApp' -Name 'Settings' } -> Option A
      4. Quick Check:

        Use Test-Path before New-Item to avoid duplicates [OK]
      Hint: Use Test-Path to check key before creating with New-Item [OK]
      Common Mistakes:
      • Using New-Item with -Force creates or overwrites without check
      • Using Set-ItemProperty to create keys (it sets values)
      • Deleting key instead of creating it