Блокируем некоторые сочетания клавиш с помощью Фильтра клавиатуры Windows

В этой статье мы покажем, как включить и настроить встроенный в Windows компонент Keyboard Filter (Фильтр клавиатуры) для запрета использования пользователями некоторых сочетаний клавиш клавиатуры. Обычно задач заблокировать определенные клавиатурные сочетания клавиш может возникнуть на различных встроенных устройствах, публичных компьютерах работающих в режиме киоска, операторских или технологический рабочих станциях.

Фильтр клавиатуры можно использовать как для предотвращения случайных нажатий определенных сочетаний, так и для блокировки системных хоткеев. Например, он позволит запретить пользователю закрыть или переключиться из окна запущенной программы с помощью горячих клавиш Ctrl+Alt+Del , Alt+F4 или Alt+TAB , запретить запуск диспетчера задач ( Сtrl+Shift+Esc ), или запретить использовать клавиши копирования и вставки через буфер обмена ( Ctrl+C / Ctrl+V ) и т.д.

Keyboard Filter можно использовать для запрета определенных сочетаний клавиш с физической клавиатуры, экранной клавиатуры Windows и тачскрна. Однако не работает в RDP сессиях.

Возможность фильтрации ввода с помощью компонента Keyboard Filter поддерживается только в Enterprise/ Education/ IoT Enterprise/ LTSC редакция Windows (и не поддерживается в Professional редакции без дополнительной конвертации)

Установить компонент Keyboard Filter можно с помощью классической панели управления компонентами Windows ( optionalfeatures ), выбрав его в секции Device Lockdown. Или включите компонент с помощью PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Client-KeyboardFilter

Установка компонента Keyboard Filter в Windows 11

В этом же разделе есть еще одна функция блокировки — Unified write filter, используемая для защиты физического диска от записи.

Перезагрузите компьютер после установки компонента. Проверьте, что запущена служба Microsoft Keyboard Filter и настроена на автоматический запуск:

Set-Service -Name MsKeyboardFilter -StartupType Automatic -Status Running

Включить службу Microsoft Keyboard Filter

Далее вам нужно определить список клавиши или их комбинаций, которые нужно запретить отправлять операционной системе.

В Windows есть список предопределенных горячих клавиш, который хранится в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Embedded\KeyboardFilter . По умолчанию все горячие клавиши разрешены (значение Allowed ). Чтобы запретить использовать определенные сочетания клавиш, нужно изменить значение на Blocked . Можно отредактировать значение параметра вручную, или изменить его командой. Например, чтобы запретить использовать сочетание клавиш Alt+F4 , выполните команду:

reg add "HKLM\SOFTWARE\Microsoft\Windows Embedded\KeyboardFilter" /v "Alt+F4" /t REG_SZ /d "Blocked" /f

Заблокировать определенное сочетание клавиш через реестр

Задайте значение Blocked для всех других комбинаций клавиш, который вы хотите запретить. Изменения вступят в силу после перезагрузки компьютера или перезапуска службы MsKeyboardFilter .

Теперь если пользователь нажмет запрещенное сочетание клавиш, ничего не произойдет.

В этой ветке реестра есть еще несколько глобальных параметров управления блокировкой сочетаний клавиш:

  • DisableKeyboardFilterForAdministrators – измените на 1 , если вы хотите чтобы правила блокировки горячих клавиш не действовали на локальных администраторов (по умолчанию 0)
  • ForceOffAccessibility – если нужно запретить использовать все клавиши специальных возможностей Windows (залипание клавиш, экранная лупа или экранный диктор), измените на 1 .
  • BreakoutKeyScanCode – клавиша разблокировки, значение по умолчанию 5b (шестнадцатеричный скан-код левой клавиши Windows). При пятикратном нажатии клавиши левой Win пользователь будет отправлен на экран входа в систему. Можно переопределить это значение на код другой клавиши. Это полезная функция, когда вы включили фильтр клавиатуры, заблокировали сочетания клавиш Alt + Ctrl + Del и другие способы выхода из сессии пользователя.

Также можно запретить или разрешить использовать определенные стандартные сочетания клавиш через WMI. Пример простой PowerShell функции для блокировки/разблокировки стандартных сочетания:

function Disable-Predefined-Key($Id, $State) {
$key = Get-CimInstance -Namespace "root\standardcimv2\embedded" -ClassName WEKF_PredefinedKey | Where-Object { $_.Id -eq $Id }
if ($key) {
$key.Enabled = $State
Set-CimInstance -CimInstance $key
Write-Host "Block state set to $State for: $Id" -ForegroundColor Green
} else {
Write-Error "$Id is not a valid predefined key."
}
}

Чтобы заблокировать определенное сочетание, выполните:

Disable-Predefined-Key -Id "Alt+Tab" -State 1

Разблокировать сочетание клавиш:

Disable-Predefined-Key -Id "Alt+Tab" -State 0

Вывести все сочетания стандартные клавиш и их статус:

Get-CimInstance -Namespace root\standardcimv2\embedded -ClassName WEKF_PredefinedKey

PowerShell - вывести список запрещенных сочетаний клавиш

Можно создать собственные сочетания клавиш, которые нужно запретить. Для этого нужно внутри ветки KeyboardFilter создать подраздел CustomFilters. Например, чтобы запретить сочетания Ctrl+C и Ctrl+V, выполните:

reg add "HKLM\SOFTWARE\Microsoft\Windows Embedded\KeyboardFilter\CustomFilters" /v "Ctrl+C" /t REG_SZ /d "Blocked" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows Embedded\KeyboardFilter\CustomFilters" /v "Ctrl+V" /t REG_SZ /d "Blocked" /f

Чтобы заблокировать определенную клавишу, например нажатие на клавишу Q , выполните:

reg add "HKLM\SOFTWARE\Microsoft\Windows Embedded\KeyboardFilter\CustomFilters" /v "Q" /t REG_SZ /d "Blocked" /f

CustomFilters - создать собственные фильтры и запрещенные сочетания

Для блокировки конкретной клавиши необходимо в разделе HKLM\SOFTWARE\Microsoft\Windows Embedded\KeyboardFilter\CustomScancodes создать параметр со скан-кодом клавиши и значением Blocked . Пример блокировки клавиши левый Win по ее шестнадцатеричному коду:

reg add "HKLM\SOFTWARE\Microsoft\Windows Embedded\KeyboardFilter\CustomScancodes" /v "E05B" /t REG_SZ /d "Blocked" /f

Список включенных фильтров клавиатуры можно посмотреть в отдельном разделе Event Viewer -> Application and Services Logs -> Microsoft -> Windows -> KeyboardFilter -> Operational. Найдите событие с EventID 10207 от источника KeyboardFilter с описанием:

The Keyboard Filter Service has found the following enabled policies.

Переключитесь в режим XML и вы увидите список запрещенных сочетаний клавиш.

Журнал событий Event Viewer - список запрещенных клавиш The Keyboard Filter Service has found the following enabled policies.

Фильтр клавиатуры — полезная функция Windows, которая используется для ограничения использования клавиатурных сочетаний, запрета нажатий определенных клавиш и ввода определенных символов.


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)