ps/Modules/Alkami.PowerShell.Configuration/Public/Set-RegistryKeyValue.ps1
2023-05-30 22:51:22 -07:00

38 lines
1.2 KiB
PowerShell

function Set-RegistryKeyValue {
<#
.SYNOPSIS
Set a registry key value
.DESCRIPTION
Create or sets registry key value given a path, type and value.
.EXAMPLE
Set-RegistryKeyValue -regKey HKCU:\Environment\foo\bar -regkeyValueData '666' -regKeyValueType DWORD -Verbose
#>
[cmdletbinding()]
param (
$regKey,
$regkeyValueData,
$regKeyValueType
)
$logLead = (Get-LogLeadName)
$regKeyName = Split-Path $regKey -Parent
$regKeyValue = Split-Path $regKey -Leaf
if (Test-RegistryKey $regKeyName) {
Write-Verbose "$logLead : Creating Registry Key $regKey"
$regKeyResult = New-ItemProperty -Path $regKeyName -Name $regKeyValue -Value $regkeyValueData -PropertyType $regKeyValueType -Force
Write-Verbose "$logLead : Registry key value set to $regKey."
} else {
throw "$logLead : Registry key ($regKeyName) does not exist."
}
if ($regKeyResult.$regKeyValue -eq $regKeyValueData) {
Write-Verbose "$logLead : Successfully set registry value to $regKeyValueData."
return $true
} else {
Write-Warning "$logLead : Failed to set registry value."
return $false
}
}