Detection Script
$key = 'HKLM:\KeyPath'
$name = 'KeyName'
$val = '0'
if (Test-Path $key) {
if ((Get-ItemProperty $key).$name -contains $val) {
Write-Output "Key and value exist"
Exit 0
} else {
Write-Output "Value not exist"
Exit 1
}
} else {
Write-Output "Key and value not exist"
Exit 1
}Remediation Script
$key = 'HKLM:\KeyPath'
$name = 'KeyName'
$val = '0'
if (Test-Path $key) {
Write-Output "Key exist"
if (!((Get-ItemProperty $key).$name -contains $val)) {
Write-Output "Value not exist..try to set it"
try {
New-ItemProperty -Path $key -Name $name -value $val -PropertyType DWord -Force
Write-Output "Successfully set value"
} catch {
Write-Output "Failed to set value"
Exit 1
}
}
} else {
Write-Output "Key and value not exist..try to set it"
try {
New-Item -Path $key -Force
New-ItemProperty -Path $key -Name $name -value $val -PropertyType DWord -Force
Write-Output "Successfully set key and value"
} catch {
Write-Output "Failed to set key and value"
Exit 1
}
}