dpst.ps1

function dpst (
    [switch] $enable = $false,
    [switch] $status = $false
) {
    # usage:
    # dpst -enable # enable dpst [default: false ("disable")]
    # dpst -status # print dpst status and return

    $ftcname = "FeatureTestControl"
    $key = 'HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}'
    $keys = Get-ChildItem -ea 0 "$key" | Where-Object {$_.Name -match '\\\d{4}$'}

    $ftc_path = ""
    foreach ($key in $keys) {
        if ($key.GetValue($ftcname, $null) -ne $null) {
            $ftc_path = $key.name
            break
        }
    }
    if (-not $ftc_path) {
        Write-Error "Cannot locate ftc in registry"
        return 1
    }

    $ftc = (Get-Item "Registry::${ftc_path}").GetValue($ftcname)
    $bitmask = 1 -shl 4
    $enabled = -not [bool]($ftc -band $bitmask)
    $enabled_str = if ($enabled) {"enabled"} else {"disabled"}

    if ($status) {
        Write-host -f c "DPST is: $enabled_str"
        return
    }

    $ftc_new = 0
    if ($enable -and -not $enabled) {
        Write-host -f c "DPST is disabled; enabling"
        $ftc_new = $ftc -band (-bnot $bitmask)
    } elseif (-not $enable -and $enabled) {
        Write-host -f c "DPST is enabled; disabling"
        $ftc_new = $ftc -bor $bitmask
    } else {
        Write-host -f green "DPST unchanged | requested {enabled: $enabled} | currently {enabled: $enabled}"
        return
    }
    setprop "Registry::$ftc_path" "$ftcname" "DWORD" $ftc_new
    Write-host -f green "Set DPST. Reboot is required for changes to take effect"
}