Creating Registry Values

by Mar 2, 2012

In a previous tip we introduced the new function New-RegKey that could create one or more registry keys. Here is a function that creates registry values. It uses New-RegKey internally if the key you specify does not yet exist, so make sure you include both functions:

function New-Regkey {
  param($key)
  
  $key = $key -replace ':',''
  $parts = $key -split '\\'
  
  $tempkey = ''
  $parts | ForEach-Object {
    $tempkey += ($_ + "\")
    if ( (Test-Path "Registry::$tempkey") -eq $false)  {
      New-Item "Registry::$tempkey"   | Out-Null
    }
  }
}

function Set-RegistryValue {
  param(
    $key,
    $name,
    $value,
    $type='String'
  )
  
  $key = $key -replace ':',''
  New-Regkey $key
  $regkey = "Registry::$key"
  Set-ItemProperty -Path $regkey -Name $name -Value $value -Type $type
}

Now check out how easy it is to set a new registry value! If the key is missing, it will also be created:

Set-RegistryValue HKCU:\Software\TestKey Testvalue -Value 123 Type DWORD

Twitter This Tip! ReTweet this Tip!