Registry

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
    }
}