Remover configurações de combinação de teclas

Edições
✅ com suporte IoT Enterprise LTSC
✅ IoT Enterprise
✅ Enterprise LTSC
✅ Enterprise
✅ Education

O script do Windows PowerShell de exemplo a seguir usa os provedores WMI (Instrumentação de Gerenciamento do Windows) para Filtro de Teclado para criar duas funções que removem configurações personalizadas de regra de bloqueio. A remoção de uma regra exclui essa configuração, mas outra regra ativa ainda pode bloquear a mesma entrada física.

A primeira função, Remove-Custom-Key, remove as regras de bloqueio de chave personalizada.

A segunda função, Remove-Scancode, remove as regras de bloqueio de código de verificação.

Você não pode remover regras de bloqueio de chave predefinida, mas pode desativá-las definindo sua Enabled propriedade como 0.

Remove-rules.ps1

#
# Copyright (C) Microsoft. All rights reserved.
#

<#
.Synopsis
    This script uses the built-in WMI providers to remove Keyboard Filter blocking rules. WEKF_PredefinedKey rules can't be removed.
.Parameter ComputerName
    Optional parameter to specify the remote computer that this script should
    manage.  If not specified, the script will execute all WMI operations
    locally.
#>

param(
    [string] $ComputerName
)

$CommonParams = @{"namespace"="root\standardcimv2\embedded"}
$CommonParams += $PSBoundParameters

function Remove-Custom-Key($Id) {
    <#
    .Synopsis
        Remove a WEKF_CustomKey blocking rule.
    .Description
        Enumerate all WEKF_CustomKey instances. When an instance has an Id that
        matches $Id, delete it.
    .Example
        Remove-Custom-Key "Ctrl+V"

        Removes the WEKF_CustomKey blocking rule for Ctrl+V.
#>

    $customInstance = Get-WMIObject -class WEKF_CustomKey @CommonParams |
        where {$_.Id -eq $Id}

    if ($customInstance) {
        $customInstance.Delete();
        "Removed custom-key blocking rule for $Id.";
    } else {
        "Custom-key blocking rule for $Id does not exist.";
    }
}

function Remove-Scancode($Modifiers, [int]$Code) {
    <#
    .Synopsis
        Remove a WEKF_Scancode blocking rule.
    .Description
        Enumerate all WEKF_Scancode instances. When an instance has matching
        Modifiers and Scancode values, delete it.
    .Example
        Remove-Scancode "Ctrl" 37

        Removes the WEKF_Scancode blocking rule with Modifiers="Ctrl" and
        Scancode=37.
#>

    $scancodeInstance = Get-WMIObject -class WEKF_Scancode @CommonParams |
        where {($_.Modifiers -eq $Modifiers) -and ($_.Scancode -eq $Code)}

    if ($scancodeInstance) {
        $scancodeInstance.Delete();
        "Removed scan-code blocking rule for $Modifiers+$Code";
    } else {
        "Scan-code blocking rule for $Modifiers+$Code does not exist.";
    }
}

# Some example uses of the functions defined above.
Remove-Custom-Key "Ctrl+V"
Remove-Custom-Key "Numpad0"
Remove-Custom-Key "Shift+Numpad1"
Remove-Custom-Key "Shift+5"
Remove-Scancode "Ctrl" 37

Exemplos de script do Windows PowerShell para filtro de teclado

Referência de provedor WMI de filtro de teclado

Filtro de teclado