38 lines
1.2 KiB
PowerShell
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
|
||
|
}
|
||
|
}
|