Bird
Raised Fist0
PowerShellscripting~20 mins

Registry operations in PowerShell - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Registry Operations Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:30remaining
What is the output of this PowerShell command?
Given the following command, what will it output if the registry key HKCU:\Software\MyApp contains a string value Version set to 1.2.3?
PowerShell
Get-ItemProperty -Path 'HKCU:\Software\MyApp' -Name Version | Select-Object -ExpandProperty Version
AHKCU:\Software\MyApp
BVersion
C1.2.3
DGet-ItemProperty
Attempts:
2 left
💡 Hint
The command extracts the value of the property named 'Version' from the registry key.
📝 Syntax
intermediate
1:30remaining
Which option correctly creates a new registry key?
You want to create a new registry key HKCU:\Software\MyApp\Settings. Which command is syntactically correct?
ANew-ItemProperty -Path 'HKCU:\Software\MyApp\Settings'
BNew-RegistryKey -Path 'HKCU:\Software\MyApp\Settings'
CCreate-Item -Path 'HKCU:\Software\MyApp\Settings'
DNew-Item -Path 'HKCU:\Software\MyApp\Settings'
Attempts:
2 left
💡 Hint
The cmdlet to create a new registry key is similar to creating a new item in a provider path.
🔧 Debug
advanced
2:00remaining
Why does this script fail to set a registry value?
This script tries to set a string value Theme to Dark under HKCU:\Software\MyApp but fails with an error. What is the cause?
Set-ItemProperty -Path 'HKCU:\Software\MyApp' -Name Theme -Value Dark
AThe -Value parameter requires a string in quotes.
BThe registry key 'HKCU:\Software\MyApp' does not exist.
CSet-ItemProperty cannot set string values.
DThe -Name parameter should be omitted.
Attempts:
2 left
💡 Hint
Check if the registry key exists before setting a property.
🚀 Application
advanced
2:00remaining
How to delete a registry value safely?
You want to delete the registry value Theme under HKCU:\Software\MyApp only if it exists. Which script snippet correctly does this?
ARemove-ItemProperty -Path 'HKCU:\Software\MyApp' -Name Theme -ErrorAction SilentlyContinue
BRemove-ItemProperty -Path 'HKCU:\Software\MyApp' -Name Theme
CRemove-ItemProperty -Path 'HKCU:\Software\MyApp' -Name Theme -Force
DRemove-Item -Path 'HKCU:\Software\MyApp\Theme'
Attempts:
2 left
💡 Hint
Use error handling to avoid errors if the value does not exist.
🧠 Conceptual
expert
2:30remaining
What is the effect of this PowerShell script on the registry?
Consider this script:
$keyPath = 'HKCU:\Software\MyApp'
if (-not (Test-Path $keyPath)) {
  New-Item -Path $keyPath | Out-Null
}
Set-ItemProperty -Path $keyPath -Name 'LastRun' -Value (Get-Date).ToString('yyyy-MM-dd')
What does this script do?
ACreates the key if missing and sets 'LastRun' value to today's date in yyyy-MM-dd format.
BDeletes the key if it exists and sets 'LastRun' value to current time.
COnly sets 'LastRun' value without creating the key if missing.
DCreates a new key every time without setting any value.
Attempts:
2 left
💡 Hint
Check the logic: it tests for key existence, creates if missing, then sets a value.

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