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