Test-RegValue Function

Powershell has a great CMDLET called Test-Path that can check to see if a registry key exists but unfortunately it does not have the ability to check for registry values. In order to get around this, I created the following function to check to see if a registry value exists. This can be extremely useful when you are using a registry key to verify if a script has already executed in the past.

Test-RegValue -Key “HKCU:\Control Panel\Desktop” -Value WallPaper
Test-RegValue -Key “HKLM:\SOFTWARE\Custom” -Value Test

Function Test-RegValue {
    Determine if a registry value exists

    Provide registry key path

    .PARAMETER Value
    Provide registry value that you would like to test

    Test-RegValue -Key "HKCU:\Control Panel\Desktop" -Value WallPaper

    Test-RegValue -Key "HKLM:\SOFTWARE\Custom" -Value Test
    param (

    $ValueExist = (Get-ItemProperty $Key).$Value -ne $null
    Return $ValueExist

Post your questions in the comments below!


  1. I’m teaching myselft PS and still not clear on how these functions work, if i was looking for value “X” in the following key “HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\KeyManagementServiceName”

    in order for me to get a result I would just have to modify the scritpt with the following code at the top?

    $key = “HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\KeyManagementServiceName”
    $Value = “x”

    • Jose Espitia


      The great thing about functions is that you do not need to edit the code inside of them. For your example, you can use:
      Test-RegValue -Key “HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\KeyManagementServiceName” -Value X

      Hope this helps!

  2. Thank you Josh … it was helpful.. Thank you and God bless!

Leave a Reply