From f025a78cde773a1480d2b06e63e88dfb8b2a1265 Mon Sep 17 00:00:00 2001 From: Megan Bradley Date: Fri, 10 Jan 2025 20:12:36 -0700 Subject: [PATCH 1/9] status --- README.md | 2 +- education/windows/tutorial-deploy-apps-winse/create-policies.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 98c771d56d..97874f3f91 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Anyone who is interested can contribute to the topics. When you contribute, your ### Quickly update an article using GitHub.com -Contributors who only make infrequent or small updates can edit the file directly on GitHub.com without having to install any additional software. This article shows you how. [This two-minute video](https://www.microsoft.com/videoplayer/embed/RE1XQTG) also covers how to contribute. +Contributors who only make infrequent or small updates can edit the file directly on GitHub.com without having to install any additional software. This article shows you how. [This two-minute video](https://learn-video.azurefd.net/vod/player?id=b5167c5a-9c69-499b-99ac-e5467882bc92) also covers how to contribute. 1. Make sure you're signed in to GitHub.com with your GitHub account. 2. Browse to the page you want to edit on Microsoft Learn. diff --git a/education/windows/tutorial-deploy-apps-winse/create-policies.md b/education/windows/tutorial-deploy-apps-winse/create-policies.md index 6947d4612d..e7fdd29782 100644 --- a/education/windows/tutorial-deploy-apps-winse/create-policies.md +++ b/education/windows/tutorial-deploy-apps-winse/create-policies.md @@ -54,7 +54,7 @@ To create supplemental policies, download and install the [WDAC Policy Wizard][E The following video provides an overview and explains how to create supplemental policies for apps blocked by the Windows 11 SE base policy. -> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RWWReO] +> [!VIDEO https://learn-video.azurefd.net/vod/player?id=1eedb284-5592-43e7-9446-ce178953502d] ### Create a supplemental policy for Win32 apps From 8d850ff37aa40cc7702b5212d307d97317416d65 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 13 Jan 2025 11:50:59 -0500 Subject: [PATCH 2/9] migrating content --- .../disable-all-blocked-key-combinations.md | 82 ++++++++ .../configuration/keyboard-filter/index.md | 152 ++++++++++++++ ...oardfilter-add-blocked-key-combinations.md | 166 ++++++++++++++++ .../keyboardfilter-key-names.md | 185 ++++++++++++++++++ ...er-list-all-configured-key-combinations.md | 77 ++++++++ ...eyboardfilter-powershell-script-samples.md | 32 +++ .../keyboardfilter-wmi-provider-reference.md | 29 +++ .../keyboard-filter/modify-global-settings.md | 178 +++++++++++++++++ .../predefined-key-combinations.md | 166 ++++++++++++++++ .../remove-key-combination-configurations.md | 112 +++++++++++ windows/configuration/keyboard-filter/toc.yml | 53 +++++ .../keyboard-filter/wekf-customkey.md | 143 ++++++++++++++ .../keyboard-filter/wekf-customkeyadd.md | 110 +++++++++++ .../keyboard-filter/wekf-customkeyremove.md | 100 ++++++++++ .../keyboard-filter/wekf-predefinedkey.md | 129 ++++++++++++ .../wekf-predefinedkeydisable.md | 49 +++++ .../wekf-predefinedkeyenable.md | 49 +++++ .../keyboard-filter/wekf-scancode.md | 142 ++++++++++++++ .../keyboard-filter/wekf-scancodeadd.md | 58 ++++++ .../keyboard-filter/wekf-scancoderemove.md | 58 ++++++ .../keyboard-filter/wekf-settings.md | 110 +++++++++++ 21 files changed, 2180 insertions(+) create mode 100644 windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md create mode 100644 windows/configuration/keyboard-filter/index.md create mode 100644 windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md create mode 100644 windows/configuration/keyboard-filter/keyboardfilter-key-names.md create mode 100644 windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md create mode 100644 windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md create mode 100644 windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md create mode 100644 windows/configuration/keyboard-filter/modify-global-settings.md create mode 100644 windows/configuration/keyboard-filter/predefined-key-combinations.md create mode 100644 windows/configuration/keyboard-filter/remove-key-combination-configurations.md create mode 100644 windows/configuration/keyboard-filter/toc.yml create mode 100644 windows/configuration/keyboard-filter/wekf-customkey.md create mode 100644 windows/configuration/keyboard-filter/wekf-customkeyadd.md create mode 100644 windows/configuration/keyboard-filter/wekf-customkeyremove.md create mode 100644 windows/configuration/keyboard-filter/wekf-predefinedkey.md create mode 100644 windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md create mode 100644 windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md create mode 100644 windows/configuration/keyboard-filter/wekf-scancode.md create mode 100644 windows/configuration/keyboard-filter/wekf-scancodeadd.md create mode 100644 windows/configuration/keyboard-filter/wekf-scancoderemove.md create mode 100644 windows/configuration/keyboard-filter/wekf-settings.md diff --git a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md new file mode 100644 index 0000000000..c889554cb2 --- /dev/null +++ b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md @@ -0,0 +1,82 @@ +--- +title: Disable all blocked key combinations +description: Disable all blocked key combinations +ms.assetid: 60327cc7-ef5b-4f26-8437-83b32711b6d8 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Disable all blocked key combinations + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +The following sample Windows PowerShell script uses the WMI providers to disable all blocked key combinations for Keyboard Filter by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. The key combination configurations are not removed, but Keyboard Filter stops blocking any keys. + +## Disable-all-rules.ps1 + +```powershell +# +# Copyright (C) Microsoft. All rights reserved. +# + +<# +.Synopsis + This Windows PowerShell script shows how to enumerate all existing keyboard filter + rules and how to disable them by setting the Enabled property directly. +.Description + For each instance of WEKF_PredefinedKey, WEKF_CustomKey, and WEKF_Scancode, + set the Enabled property to false/0 to disable the filter rule, thus + allowing all key sequences through the filter. +.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 + +Get-WMIObject -class WEKF_PredefinedKey @CommonParams | + foreach { + if ($_.Enabled) { + $_.Enabled = 0; + $_.Put() | Out-Null; + Write-Host Disabled $_.Id + } + } + +Get-WMIObject -class WEKF_CustomKey @CommonParams | + foreach { + if ($_.Enabled) { + $_.Enabled = 0; + $_.Put() | Out-Null; + Write-Host Disabled $_.Id + } + } + +Get-WMIObject -class WEKF_Scancode @CommonParams | + foreach { + if ($_.Enabled) { + $_.Enabled = 0; + $_.Put() | Out-Null; + "Disabled {0}+{1:X4}" -f $_.Modifiers,$_.Scancode + } + } +``` + +## Related topics + +[Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) + +[Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/index.md b/windows/configuration/keyboard-filter/index.md new file mode 100644 index 0000000000..9d02bea46a --- /dev/null +++ b/windows/configuration/keyboard-filter/index.md @@ -0,0 +1,152 @@ +--- +title: Keyboard Filter +description: Keyboard Filter +author: sydbruck +ms.author: sybruckm +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Keyboard Filter + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +You can use Keyboard Filter to suppress undesirable key presses or key combinations. Normally, a customer can use certain Microsoft Windows key combinations like Ctrl+Alt+Delete or Ctrl+Shift+Tab to alter the operation of a device by locking the screen or using Task Manager to close a running application. This behavior might not be desirable if your device is intended for a dedicated purpose. + +The Keyboard Filter feature works with physical keyboards, the Windows on-screen keyboard, and the touch keyboard. Switching from one language to another might cause the location of suppressed keys on the keyboard layout to change. Keyboard Filter detects these dynamic layout changes and continues to suppress keys correctly. + +> [!NOTE] +> Keyboard filter is not supported in a remote desktop session. + +## Terminology + +* **Turn on, enable:** Make the setting available to the device and optionally apply the settings to the device. Generally *turn on* is used in the user interface or control panel, whereas *enable* is used for command line. + +* **Configure:** To customize the setting or subsettings. + +* **Embedded Keyboard Filter:** This feature is called Embedded Keyboard Filter in Windows 10, version 1511. + +* **Keyboard Filter:** This feature is called Keyboard Filter in Windows 10, version 1607 and later. + +## Turn on Keyboard Filter + +By default, Keyboard Filter isn't turned on. You can turn Keyboard Filter on or off for your device by using the following steps. + +Turning on an off Keyboard Filter requires that you restart your device. Keyboard Filter is automatically enabled after the restart. + +### Turn on Keyboard Filter by using Control Panel + +1. In the Windows search bar, type **Turn Windows features on or off** and either press **Enter** or tap or select **Turn Windows features on or off** to open the **Windows Features** window. +1. In the **Windows Features** window, expand the **Device Lockdown** node, and select (to turn on) or clear (to turn off) the checkbox for **Keyboard Filter**. +1. Select **OK**. The **Windows Features** window indicates that Windows is searching for required files and displays a progress bar. Once found, the window indicates that Windows is applying the changes. When completed, the window indicates the requested changes are completed. +1. Restart your device to apply the changes. + +### Configure Keyboard using Unattend + +1. You can configure the Unattend settings in the [Microsoft-Windows-Embedded-KeyboardFilterService](/windows-hardware/customize/desktop/unattend/microsoft-windows-embedded-keyboardfilterservice) component to add Keyboard Filter features to your image during the design or imaging phase. +1. You can manually create an Unattend answer file or use Windows System Image Manager (Windows SIM) to add the appropriate settings to your answer file. For more information about the keyboard filter settings and XML examples, see the settings in [Microsoft-Windows-Embedded-KeyboardFilterService](/windows-hardware/customize/desktop/unattend/microsoft-windows-embedded-keyboardfilterservice). + +### Turn on and configure Keyboard Filter using Windows Configuration Designer + +The Keyboard Filter settings are also available as Windows provisioning settings so you can configure these settings to be applied during the image deployment time or runtime. You can set one or all keyboard filter settings by creating a provisioning package using Windows Configuration Designer and then applying the provisioning package during image deployment time or runtime. + +1. Build a provisioning package in Windows Configuration Designer by following the instructions in [Create a provisioning package](/windows/configuration/provisioning-packages/provisioning-create-package), selecting the **Advanced Provisioning** option. + + > [!Note] + > In the **Choose which settings to view and configure** window, choose **Common to all Windows desktop editions**. + +1. On the **Available customizations** page, select **Runtime settings** > **SMISettings**, and then set the desired values for the keyboard filter settings. +1. Once you have finished configuring the settings and building the provisioning package, you can apply the package to the image deployment time or runtime. For more information, see [Apply a provisioning package](/windows/configuration/provisioning-packages/provisioning-apply-package). + +This example uses a Windows image called install.wim, but you can use the same procedure to apply a provisioning package. For more information on DISM, see [What Is Deployment Image Servicing and Management](/windows-hardware/manufacture/desktop/what-is-dism). + +### Turn on and configure Keyboard Filter by using DISM + +1. Open a command prompt with administrator privileges. +1. Enable the feature using the following command. + + ```cmd + Dism /online /Enable-Feature /FeatureName:Client-KeyboardFilter + ``` + +1. Once the script completes, restart the device to apply the change. + +## Keyboard Filter features + +Keyboard Filter has the following features: + +* Supports hardware keyboards, the standard Windows on-screen keyboard, and the touch keyboard (TabTip.exe). +* Suppresses key combinations even when they come from multiple keyboards. + + For example, if a user presses the Ctrl key and the Alt key on a hardware keyboard, while at the same time pressing Delete on a software keyboard, Keyboard Filter can still detect and suppress the Ctrl+Alt+Delete functionality. + +* Supports numeric keypads and keys designed to access media player and browser functionality. +* Can configure a key to breakout of a locked down user session to return to the Welcome screen. +* Automatically handles dynamic layout changes. +* Can be enabled or disabled for administrator accounts. +* Can force disabling of Ease of Access functionality. +* Supports x86 and x64 architectures. + +## Keyboard scan codes and layouts + +When a key is pressed on a physical keyboard, the keyboard sends a scan code to the keyboard driver. The driver then sends the scan code to the OS and the OS converts the scan code into a virtual key based on the current active layout. The layout defines the mapping of keys on the physical keyboard, and has many variants. A key on a keyboard always sends the same scan code when pressed, however this scan code can map to different virtual keys for different layouts. For example, in the English (United States) keyboard layout, the key to the right of the P key maps to “{“. However, in the Swedish (Sweden) keyboard layout, the same key maps to “Å”. + +Keyboard Filter can block keys either by the scan code or the virtual key. Blocking keys by the scan code is useful for custom keyboards that have special scan codes that don't translate into any single virtual key. Blocking keys by the virtual key is more convenient because it's easier to read and Keyboard Filter suppresses the key correctly even when the location of the key changes because of a layout change. + +When you configure Keyboard Filter to block keys by using the virtual key, you must use the English names for the virtual keys. For more information about the names of the virtual keys, see keyboard filter key names. + +For the Windows on-screen keyboard, keyboard filter converts each keystroke into a scan code based on the layout, and back into a virtual key. This allows keyboard filter to suppress the on-screen keyboard keys in the same manner as physical keyboard keys if they're configured with either scan code or virtual key. + +## Keyboard Filter and ease of access features + +By default, ease of access features are enabled and Keyboard Filter is disabled for administrator accounts. + +If Sticky Keys are enabled, a user can bypass Keyboard Filter in certain situations. You can configure keyboard filter to disable all ease of access features and prevent users from enabling them. + +You can enable ease of access features for administrator accounts, while still disabling them for standard user accounts, by making sure that Keyboard Filter is disabled for administrator accounts. + +## Keyboard Filter configuration + +You can configure the following options for Keyboard Filter: + +* Set/unset predefined key combinations to be suppressed. +* Add/remove custom defined key combinations to be suppressed. +* Enable/disable keyboard filter for administrator accounts. +* Force disabling ease of access features. +* Configure a breakout key sequence to break out of a locked down account. + +Most configuration changes take effect immediately. Some changes, such as enabling or disabling Keyboard Filter for administrators, don't take effect until the user signs out of the account and then back in. If you change the breakout key scan code, you must restart the device before the change take effect. + +You can configure keyboard filter by using Windows Management Instrumentation (WMI) providers. You can use the Keyboard Filter WMI providers directly in a PowerShell script or in an application. + +For more information about Keyboard Filter WMI providers, see [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md). + +## Keyboard breakout + +You may need to sign in to a locked down device with a different account in order to service or configure the device. You can configure a breakout key to break out of a locked down account by specifying a key scan code. A user can press this key consecutively five times to switch to the Welcome screen so that you can sign in to a different account. + +The breakout key is set to the scan code for the left Windows logo key by default. You can use the [WEKF_Settings](wekf-settings.md) WMI class to change the breakout key scan code. If you change the breakout key scan code, you must restart the device before the change takes effect. + +## Keyboard Filter considerations + +Starting a device in Safe Mode bypasses keyboard filter. The Keyboard Filter service isn't loaded in Safe Mode, and keys aren't blocked in Safe Mode. + +Keyboard filter can't block the Sleep key. + +Some hardware keys, such as rotation lock, don't have a defined virtual key. You can still block these keys by using the scan code of the key. + +The add (+), multiply (\*), subtract (-), divide (/), and decimal (.) keys have different virtual keys and scan codes on the numeric keypad than on the main keyboard. You must block both keys to block these keys. For example, to block the multiply key, you must add a rule to block “\*” and a rule to block Multiply. + +When locking the screen by using the on-screen keyboard, or a combination of a physical keyboard and the on-screen keyboard, the on-screen keyboard sends an extra Windows logo key keystroke to the OS. If your device is using the Windows 10 shell and you use keyboard filter to block Windows logo key+L, the extra Windows logo key keystroke causes the shell to switch between the **Start** screen and the last active app when a user attempts to lock the device by using the on-screen keyboard, which may be unexpected behavior. + +Some custom keyboard software, such as Microsoft IntelliType Pro, can install Keyboard Filter drivers that prevent Keyboard Filter from being able to block some or all keys, typically extended keys like BrowserHome and Search. + +## In this section + +* [Keyboard Filter key names](keyboardfilter-key-names.md) +* [Predefined key combinations](predefined-key-combinations.md) +* [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) +* [Windows PowerShell script samples for Keyboard Filter](keyboardfilter-powershell-script-samples.md) \ No newline at end of file diff --git a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md new file mode 100644 index 0000000000..71640a4e4f --- /dev/null +++ b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md @@ -0,0 +1,166 @@ +--- +title: Add blocked key combinations +description: Add blocked key combinations +ms.assetid: f51892fc-0262-4b25-b117-6e131b86fb68 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Add blocked key combinations + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to create three functions to configure Keyboard Filter so that Keyboard Filter blocks key combinations. It demonstrates several ways to use each function. + +The first function, `Enable-Predefine-Key`, blocks key combinations that are predefined for Keyboard Filter. + +The second function, `Enable-Custom-Key`, blocks custom key combinations by using the English key names. + +The third function, `Enable-Scancode`, blocks custom key combinations by using the keyboard scan code for the key. + +## Enable-rules.ps1 + +```powershell +# +# Copyright (C) Microsoft. All rights reserved. +# + +<# +.Synopsis + This script shows how to use the built in WMI providers to enable and add + keyboard filter rules through Windows PowerShell on the local computer. +.Parameter ComputerName + Optional parameter to specify a remote machine 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 Enable-Predefined-Key($Id) { + <# + .Synopsis + Toggle on a Predefined Key keyboard filter Rule + .Description + Use Get-WMIObject to enumerate all WEKF_PredefinedKey instances, + filter against key value "Id", and set that instance's "Enabled" + property to 1/true. + .Example + Enable-Predefined-Key "Ctrl+Alt+Del" + Enable CAD filtering +#> + + $predefined = Get-WMIObject -class WEKF_PredefinedKey @CommonParams | + where { + $_.Id -eq "$Id" + }; + + if ($predefined) { + $predefined.Enabled = 1; + $predefined.Put() | Out-Null; + Write-Host Enabled $Id + } else { + Write-Error "$Id is not a valid predefined key" + } +} + + +function Enable-Custom-Key($Id) { + <# + .Synopsis + Toggle on a Custom Key keyboard filter Rule + .Description + Use Get-WMIObject to enumerate all WEKF_CustomKey instances, + filter against key value "Id", and set that instance's "Enabled" + property to 1/true. + + In the case that the Custom instance does not exist, add a new + instance of WEKF_CustomKey using Set-WMIInstance. + .Example + Enable-Custom-Key "Ctrl+V" + Enable filtering of the Ctrl + V sequence. +#> + + $custom = Get-WMIObject -class WEKF_CustomKey @CommonParams | + where { + $_.Id -eq "$Id" + }; + + if ($custom) { +# Rule exists. Just enable it. + $custom.Enabled = 1; + $custom.Put() | Out-Null; + "Enabled Custom Filter $Id."; + + } else { + Set-WMIInstance ` + -class WEKF_CustomKey ` + -argument @{Id="$Id"} ` + @CommonParams | Out-Null + "Added Custom Filter $Id."; + } +} + +function Enable-Scancode($Modifiers, [int]$Code) { + <# + .Synopsis + Toggle on a Scancode keyboard filter Rule + .Description + Use Get-WMIObject to enumerate all WEKF_Scancode instances, + filter against key values of "Modifiers" and "Scancode", and set + that instance's "Enabled" property to 1/true. + + In the case that the Scancode instance does not exist, add a new + instance of WEKF_Scancode using Set-WMIInstance. + .Example + Enable-Scancode "Ctrl" 37 + Enable filtering of the Ctrl + keyboard scancode 37 (base-10) + sequence. +#> + + $scancode = + Get-WMIObject -class WEKF_Scancode @CommonParams | + where { + ($_.Modifiers -eq $Modifiers) -and ($_.Scancode -eq $Code) + } + + if($scancode) { + $scancode.Enabled = 1 + $scancode.Put() | Out-Null + "Enabled Custom Scancode {0}+{1:X4}" -f $Modifiers, $Code + } else { + Set-WMIInstance ` + -class WEKF_Scancode ` + -argument @{Modifiers="$Modifiers"; Scancode=$Code} ` + @CommonParams | Out-Null + + "Added Custom Scancode {0}+{1:X4}" -f $Modifiers, $Code + } +} + +# Some example uses of the functions defined above. +Enable-Predefined-Key "Ctrl+Alt+Del" +Enable-Predefined-Key "Ctrl+Esc" +Enable-Custom-Key "Ctrl+V" +Enable-Custom-Key "Numpad0" +Enable-Custom-Key "Shift+Numpad1" +Enable-Custom-Key "%" +Enable-Scancode "Ctrl" 37 +``` + +## Related topics + +[Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) + +[Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md new file mode 100644 index 0000000000..20f08c8ca2 --- /dev/null +++ b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md @@ -0,0 +1,185 @@ +--- +title: Keyboard Filter key names +description: Keyboard Filter key names +ms.assetid: 5f3772bb-fdd2-4816-9994-bd2523099400 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Keyboard Filter key names + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +You can configure Keyboard Filter to block keys or key combinations. A key combination consists of one or more modifier keys, separated by a plus sign (+), and either a key name or a key scan code. In addition to the keys listed in the following tables, you can use the predefined key combinations names as custom key combinations. However, we recommend using the predefined key settings when enabling or disabling predefined key combinations. + +The key names are grouped as follows: + +- [Modifier keys](#modifier-keys) +- [System keys](#system-keys) +- [Cursor and edit keys](#cursor-and-edit-keys) +- [State keys](#state-keys) +- [OEM keys](#oem-keys) +- [Function keys](#function-keys) +- [Numeric keypad keys](#numeric-keypad-keys) + +## Modifier keys + +You can use the modifier keys listed in the following table when you configure keyboard filter. Multiple modifiers are separated by a plus sign (+). You can also configure Keyboard Filter to block any modifier key even if it’s not part of a key combination. + +| Modifier key name | Virtual key | Description | +| ----------------- | ----------- | ----------- | +| `Ctrl` | VK_CONTROL | The Ctrl key | +| `LCtrl` | VK_LCONTROL | The left Ctrl key | +| `RCtrl` | VK_RCONTROL | The right Ctrl key | +| `Control` | VK_CONTROL | The Ctrl key | +| `LControl` | VK_LCONTROL | The left Ctrl key | +| `RControl` | VK_RCONTROL | The right Ctrl key | +| `Alt` | VK_MENU | The Alt key | +| `LAlt` | VK_LMENU | The left Alt key | +| `RAlt` | VK_RMENU | The right Alt key | +| `Shift` | VK_SHIFT | The Shift key | +| `LShift` | VK_LSHIFT | The left Shift key | +| `RShift` | VK_RSHIFT | The right Shift key | +| `Win` | VK_WIN | The Windows logo key | +| `LWin` | VK_LWIN | The left Windows logo key | +| `RWin` | VK_RWIN | The right Windows logo key | +| `Windows` | VK_WIN | The Windows logo key | +| `LWindows` | VK_LWIN | The left Windows logo key | +| `RWindows` | VK_RWIN | The right Windows key | + +## System keys + +| Modifier key name | Virtual key | Description | +| ----------------- | ----------- | ----------- | +| `Ctrl` | VK_CONTROL | The Ctrl key | +| `LCtrl` | VK_LCONTROL | The left Ctrl key | +| `RCtrl` | VK_RCONTROL | The right Ctrl key | +| `Control` | VK_CONTROL | The Ctrl key | +| `LControl` | VK_LCONTROL | The left Ctrl key | +| `RControl` | VK_RCONTROL | The right Ctrl key | +| `Alt` | VK_MENU | The Alt key | +| `LAlt` | VK_LMENU | The left Alt key | +| `RAlt` | VK_RMENU | The right Alt key | +| `Shift` | VK_SHIFT | The Shift key | +| `LShift` | VK_LSHIFT | The left Shift key | +| `RShift` | VK_RSHIFT | The right Shift key | +| `Win` | VK_WIN | The Windows logo key | +| `LWin` | VK_LWIN | The left Windows logo key | +| `RWin` | VK_RWIN | The right Windows logo key | +| `Windows` | VK_WIN | The Windows logo key | +| `LWindows` | VK_LWIN | The left Windows logo key | +| `RWindows` | VK_RWIN | The right Windows logo key + +## Cursor and edit keys + +| Key name | Virtual key | Description | +| ----------------- | ----------- | ----------- | +| `PageUp` | VK_PRIOR | The Page Up key | +| `Prior` | VK_PRIOR | The Page Up key | +| `PgUp` | VK_PRIOR | The Page Up key | +| `PageDown` | VK_NEXT | The Page Down key | +| `PgDown` | VK_NEXT | The Page Down key | +| `Next` | VK_NEXT | The Page Down key | +| `End` | VK_END | The End key | +| `Home` | VK_HOME | The Home key | +| `Left` | VK_LEFT | The Left Arrow key | +| `Up` | VK_UP | The Up Arrow key | +| `Right` | VK_RIGHT | The Right Arrow key | +| `Down` | VK_DOWN | The Down Arrow key | +| `Insert` | VK_INSERT | The Insert key | +| `Delete` | VK_DELETE | The Delete key | +| `Del` | VK_DELETE | The Delete key | +| `Separator` | VK_SEPARATOR | The Separator key | + +## State keys + +| Key name | Virtual key | Description | +| ----------------- | ----------- | ----------- | +| `NumLock` | VK_NUMLOCK | The Num Lock key | +| `ScrollLock` | VK_SCROLL | The Scroll Lock key | +| `Scroll` | VK_SCROLL | The Scroll Lock key | +| `CapsLock` | VK_CAPITAL | The Caps Lock key | +| `Capital` | VK_CAPITAL | The Caps Lock key | + +## OEM keys + +| Key name | Virtual key | Description | +| ----------------- | ----------- | ----------- | +| `KeypadEqual` | VK_OEM_NEC_EQUAL | The Equals (=) key on the numeric keypad (OEM-specific) | +| `Dictionary` | VK_OEM_FJ_JISHO | The Dictionary key (OEM-specific) | +| `Unregister` | VK_OEM_FJ_MASSHOU | The Unregister Word key (OEM-specific) | +| `Register` | VK_OEM_FJ_TOUROKU | The Register Word key (OEM-specific) | +| `LeftOyayubi` | VK_OEM_FJ_LOYA | The Left OYAYUBI key (OEM-specific) | +| `RightOyayubi` | VK_OEM_FJ_ROYA | The Right OYAYUBI key (OEM-specific) | +| `OemPlus` | VK_OEM_PLUS | For any country/region, the Plus Sign (+) key | +| `OemComma` | VK_OEM_COMMA | For any country/region, the Comma (,) key | +| `OemMinus` | VK_OEM_MINUS | For any country/region, the Minus Sign (-) key | +| `OemPeriod` | VK_OEM_PERIOD | For any country/region, the Period (.) key | +| `Oem1` | VK_OEM_1 | Varies by keyboard | +| `Oem2` | VK_OEM_2 | Varies by keyboard | +| `Oem3` | VK_OEM_3 | Varies by keyboard | +| `Oem4` | VK_OEM_4 | Varies by keyboard | +| `Oem5` | VK_OEM_5 | Varies by keyboard | +| `Oem6` | VK_OEM_6 | Varies by keyboard | +| `Oem7` | VK_OEM_7 | Varies by keyboard | +| `Oem8` | VK_OEM_8 | Varies by keyboard | +| `OemAX` | VK_OEM_AX | The AX key on a Japanese AX keyboard | +| `Oem102` | VK_OEM_102 | Either the angle bracket key or the backslash key on the RT 102-key keyboard | + +## Function keys + +| Key name | Virtual key | Description | +| ----------------- | ----------- | ----------- | +| `F1` | VK_F1 | The F1 key | +| `F2` | VK_F2 | The F2 key | +| `F3` | VK_F3 | The F3 key | +| `F4` | VK_F4 | The F4 key | +| `F5` | VK_F5 | The F5 key | +| `F6` | VK_F6 | The F6 key | +| `F7` | VK_F7 | The F7 key | +| `F8` | VK_F8 | The F8 key | +| `F9` | VK_F9 | The F9 key | +| `F10` | VK_F10 | The F10 key | +| `F11` | VK_F11 | The F11 key | +| `F12` | VK_F12 | The F12 key | +| `F13` | VK_F13 | The F13 key | +| `F14` | VK_F14 | The F14 key | +| `F15` | VK_F15 | The F15 key | +| `F16` | VK_F16 | The F16 key | +| `F17` | VK_F17 | The F17 key | +| `F18` | VK_F18 | The F18 key | +| `F19` | VK_F19 | The F19 key | +| `F20` | VK_F20 | The F20 key | +| `F21` | VK_F21 | The F21 key | +| `F22` | VK_F22 | The F22 key | +| `F23` | VK_F23 | The F23 key | +| `F24` | VK_F24 | The F24 key | + +## Numeric keypad keys + +| Key name | Virtual key | Description | +| ----------------- | ----------- | ----------- | +| `Numpad0` | VK_NUMPAD0 | The 0 key on the numeric keypad | +| `Numpad1` | VK_NUMPAD1 | The 1 key on the numeric keypad | +| `Numpad2` | VK_NUMPAD2 | The 2 key on the numeric keypad | +| `Numpad3` | VK_NUMPAD3 | The 3 key on the numeric keypad | +| `Numpad4` | VK_NUMPAD4 | The 4 key on the numeric keypad | +| `Numpad5` | VK_NUMPAD5 | The 5 key on the numeric keypad | +| `Numpad6` | VK_NUMPAD6 | The 6 key on the numeric keypad | +| `Numpad7` | VK_NUMPAD7 | The 7 key on the numeric keypad | +| `Numpad8` | VK_NUMPAD8 | The 8 key on the numeric keypad | +| `Numpad9` | VK_NUMPAD9 | The 9 key on the numeric keypad | +| `Multiply` | VK_MULTIPLY | The Multiply (*) key on the numeric keypad | +| `Add` | VK_ADD | The Add (+) key on the numeric keypad | +| `Subtract` | VK_SUBTRACT | The Subtract (-) key on the numeric keypad | +| `Decimal` | VK_DECIMAL | The Decimal (.) key on the numeric keypad | +| `Divide` | VK_DIVIDE | The Divide (/) key on the numeric keypad | + +## Related articles + +- [Keyboard filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md new file mode 100644 index 0000000000..4213a90fad --- /dev/null +++ b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md @@ -0,0 +1,77 @@ +--- +title: List all configured key combinations +description: List all configured key combinations +ms.assetid: b5ffa47e-87ea-4df4-9291-f37f6b23683b +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# List all configured key combinations + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to displays all key combination configurations for Keyboard Filter. + +## List-rules.ps1 + +```powershell +# +# Copyright (C) Microsoft. All rights reserved. +# + +<# +.Synopsis + Enumerate all active keyboard filter rules on the system. +.Description + For each instance of WEKF_PredefinedKey, WEKF_CustomKey, and WEKF_Scancode, + get the Enabled property. If Enabled, then output a short description + of the rule. +.Parameter ComputerName + Optional parameter to specify the remote machine 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 + +write-host Enabled Predefined Keys -foregroundcolor cyan +Get-WMIObject -class WEKF_PredefinedKey @CommonParams | + foreach { + if ($_.Enabled) { + write-host $_.Id + } + } + +write-host Enabled Custom Keys -foregroundcolor cyan +Get-WMIObject -class WEKF_CustomKey @CommonParams | + foreach { + if ($_.Enabled) { + write-host $_.Id + } + } + +write-host Enabled Scancodes -foregroundcolor cyan +Get-WMIObject -class WEKF_Scancode @CommonParams | + foreach { + if ($_.Enabled) { + "{0}+{1:X4}" -f $_.Modifiers, $_.Scancode + } + } +``` + +## Related topics + +[Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) + +[Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md new file mode 100644 index 0000000000..1a1edf9dec --- /dev/null +++ b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md @@ -0,0 +1,32 @@ +--- +title: Windows PowerShell script samples for Keyboard Filter +description: Windows PowerShell script samples for Keyboard Filter +ms.assetid: ba5dbfc3-05a6-44d7-aac9-1f9b328d0df7 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Windows PowerShell script samples for Keyboard Filter + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +The list below describes sample Windows PowerShell scripts that demonstrate how to use the Windows Management Instrumentation (WMI) providers for Keyboard Filter. + +| Script | Description | +| ------ | ----------- | +| [Add blocked key combinations](keyboardfilter-add-blocked-key-combinations.md) | Demonstrates how to block key combinations for Keyboard Filter.| +| [Disable all blocked key combinations](disable-all-blocked-key-combinations.md) | Demonstrates how to disable all blocked key combinations for Keyboard Filter. | +| [List all configured key combinations](keyboardfilter-list-all-configured-key-combinations.md) | Demonstrates how to list all defined key combination configurations for Keyboard Filter. | +| [Modify global settings](modify-global-settings.md) | Demonstrates how to modify global settings for Keyboard Filter. | +| [Remove key combination configurations](remove-key-combination-configurations.md) | Demonstrates how to remove a custom defined key combination configuration for Keyboard Filter. | + +## Related topics + +[Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md new file mode 100644 index 0000000000..313f51096b --- /dev/null +++ b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md @@ -0,0 +1,29 @@ +--- +title: Keyboard Filter WMI provider reference +description: Keyboard Filter WMI provider reference +ms.assetid: d17428d9-47e3-4510-b2cf-d4b4883687c1 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Keyboard Filter WMI provider reference + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +Describes the Windows Management Instrumentation (WMI) provider classes that you use to configure Keyboard Filter during run time. + +| WMI Provider Class | Description | +| ------------------ | ----------- | +| [WEKF_CustomKey](wekf-customkey.md) | Blocks or unblocks custom defined key combinations. | +| [WEKF_PredefinedKey](wekf-predefinedkey.md) | Blocks or unblocks predefined key combinations. | +| [WEKF_Scancode](wekf-scancode.md) | Blocks or unblocks key combinations by using keyboard scan codes. | +| [WEKF_Settings](wekf-settings.md) | Enables or disables settings for Keyboard Filter. | + +## Related topics + +[Keyboard filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/modify-global-settings.md b/windows/configuration/keyboard-filter/modify-global-settings.md new file mode 100644 index 0000000000..925c04babb --- /dev/null +++ b/windows/configuration/keyboard-filter/modify-global-settings.md @@ -0,0 +1,178 @@ +--- +title: Modify global settings +description: Modify global settings +ms.assetid: b1388f15-e3a4-4513-8721-8ba3ce19747a +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Modify global settings + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +The following sample Windows PowerShell scripts use the Windows Management Instrumentation (WMI) providers to modify global settings for Keyboard Filter. + +The function **Get-Setting** retrieves the value of a global setting for Keyboard Filter. + +In the first script, the function **Set-DisableKeyboardFilterForAdministrators** modifies the value of the **DisableKeyboardFilterForAdministrators** setting. + +In the second script, the function **Set-ForceOffAccessibility** modifies the value of the **ForceOffAccessibility** setting. + +## Set-DisableKeyboardFilterForAdministrators.ps1 + +```powershell +# +# Copyright (C) Microsoft. All rights reserved. +# + +<# +.Synopsis + This script shows how to enumerate WEKF_Settings to find global settings + that can be set on the keyboard filter. In this specific script, the + global setting to be set is "DisableKeyboardFilterForAdministrators". +.Parameter ComputerName + Optional parameter to specify a remote computer that this script should + manage. If not specified, the script will execute all WMI operations + locally. +.Parameter On + Switch if present that sets "DisableKeyboardFilterForAdministrators" to + true. If not present, sets the setting to false. +#> + +param ( + [Switch] $On = $False, + [String] $ComputerName +) + +$CommonParams = @{"namespace"="root\standardcimv2\embedded"}; +if ($PSBoundParameters.ContainsKey("ComputerName")) { + $CommonParams += @{"ComputerName" = $ComputerName}; +} + +function Get-Setting([String] $Name) { + <# + .Synopsis + Get a WMIObject by name from WEKF_Settings + .Parameter Name + The name of the setting, which is the key for the WEKF_Settings class. +#> + $Entry = Get-WMIObject -class WEKF_Settings @CommonParams | + where { + $_.Name -eq $Name + } + + return $Entry +} + +function Set-DisableKeyboardFilterForAdministrators([Bool] $Value) { + <# + .Synopsis + Set the DisableKeyboardFilterForAdministrators setting to true or + false. + .Description + Set DisableKeyboardFilterForAdministrators to true or false based + on $Value + .Parameter Value + A Boolean value +#> + + $Setting = Get-Setting("DisableKeyboardFilterForAdministrators") + if ($Setting) { + if ($Value) { + $Setting.Value = "true" + } else { + $Setting.Value = "false" + } + $Setting.Put() | Out-Null; + } else { + Write-Error "Unable to find DisableKeyboardFilterForAdministrators setting"; + } +} + +Set-DisableKeyboardFilterForAdministrators $On +``` + +## Set-ForceOffAccessibility.ps1 + +```powershell +# +# Copyright (C) Microsoft. All rights reserved. +# + +<# +.Synopsis + This script shows how to enumerate WEKF_Settings to find global settings + that can be set on the keyboard filter. In this specific script, the + global setting to be set is "ForceOffAccessibility". +.Parameter ComputerName + Optional parameter to specify a remote computer that this script should + manage. If not specified, the script will execute all WMI operations + locally. +.Parameter Enabled + Switch if present that sets "ForceOffAccessibility" to true. If not + present, sets the setting to false. +#> + +param ( + [Switch] $Enabled = $False, + [String] $ComputerName +) + +$CommonParams = @{"namespace"="root\standardcimv2\embedded"}; +if ($PSBoundParameters.ContainsKey("ComputerName")) { + $CommonParams += @{"ComputerName" = $ComputerName}; +} + +function Get-Setting([String] $Name) { + <# + .Synopsis + Get a WMIObject by name from WEKF_Settings + .Parameter Name + The name of the setting, which is the key for the WEKF_Settings class. +#> + $Entry = Get-WMIObject -class WEKF_Settings @CommonParams | + where { + $_.Name -eq $Name + } + + return $Entry +} + +function Set-ForceOffAccessibility([Bool] $Value) { + <# + .Synopsis + Set the ForceOffAccessibility setting to true or false. + .Description + Set ForceOffAccessibility to true or false based on $Value + .Parameter Value + A Boolean value +#> + + $Setting = Get-Setting("ForceOffAccessibility") + if ($Setting) { + if ($Value) { + $Setting.Value = "true" + } else { + $Setting.Value = "false" + } + $Setting.Put() | Out-Null; + } else { + Write-Error "Unable to find ForceOffAccessibility setting"; + } +} + +Set-ForceOffAccessibility $Enabled +``` + +## Related topics + +[Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) + +[WEKF_Settings](wekf-settings.md) + +[Keyboard filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/predefined-key-combinations.md b/windows/configuration/keyboard-filter/predefined-key-combinations.md new file mode 100644 index 0000000000..8b0faf9e70 --- /dev/null +++ b/windows/configuration/keyboard-filter/predefined-key-combinations.md @@ -0,0 +1,166 @@ +--- +title: Predefined key combinations +description: Predefined key combinations +ms.assetid: 9fc86f03-6d9e-4899-a4b7-fa8ad7835c65 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Predefined key combinations + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +This topic lists a set of key combinations that are predefined by a keyboard filter. You can list the value of the WEKF_PredefinedKey.Id to get a complete list of key combinations defined by a keyboard filter. + +You can use the values in the WEKF_PredefinedKey.Id column to configure the Windows Management Instrumentation (WMI) class [WEKF_PredefinedKey](wekf-predefinedkey.md). + +## Accessibility keys + +The following table contains predefined key combinations for accessibility: + +| Key combination | WEKF_PredefinedKey.Id | Blocked behavior | +|:-------------------------------------|:--------------------------|:----------------------------| +| Left Alt + Left Shift + Print Screen | **LShift+LAlt+PrintScrn** | Open High Contrast. | +| Left Alt + Left Shift + Num Lock | **LShift+LAlt+NumLock** | Open Mouse Keys. | +| Windows logo key + U | **Win+U** | Open Ease of Access Center. | + +## Application keys + +The following table contains predefined key combinations for controlling application state: + +| Key combination | WEKF_PredefinedKey.Id | Blocked behavior | +|:----------------------|:----------------------|:-------------------| +| Alt + F4 | **Alt+F4** | Close application. | +| Ctrl + F4 | **Ctrl+F4** | Close window. | +| Windows logo key + F1 | **Win+F1** | Open Windows Help. | + +## Shell keys + +The following table contains predefined key combinations for general UI control: + +| Key combination | WEKF_PredefinedKey.Id | Blocked behavior | +|:---------------------------------------|:----------------------|:-------------------------------------------------------------------------------------------------------------------------------------| +| Alt + Spacebar | **Alt+Space** | Open shortcut menu for the active window. | +| Ctrl + Esc | **Ctrl+Esc** | Open the Start screen. | +| Ctrl + Windows logo key + F | **Ctrl+Win+F** | Open Find Computers. | +| Windows logo key + Break | **Win+Break** | Open System dialog box. | +| Windows logo key + E | **Win+E** | Open Windows Explorer. | +| Windows + F | **Win+F** | Open Search. | +| Windows logo key + P | **Win+P** | Cycle through Presentation Mode. Also blocks the Windows logo key + Shift + P and the Windows logo key + Ctrl + P key combinations. | +| Windows logo key + R | **Win+R** | Open Run dialog box. | +| Alt + Tab | **Alt+Tab** | Switch task. Also blocks the Alt + Shift + Tab key combination. | +| Ctrl + Tab | **Ctrl+Tab** | Switch window. | +| Windows logo key + Tab | **Win+Tab** | Cycle through Microsoft Store apps. Also blocks the Windows logo key + Ctrl + Tab and Windows logo key + Shift + Tab key combinations. | +| Windows logo key + D | **Win+D** | Show desktop. | +| Windows logo key + M | **Win+M** | Minimize all windows. | +| Windows logo key + Home | **Win+Home** | Minimize or restore all inactive windows. | +| Windows logo key + T | **Win+T** | Set focus on taskbar and cycle through programs. | +| Windows logo key + B | **Win+B** | Set focus in the notification area. | +| Windows logo key + Minus Sign | **Win+-** | Zoom out. | +| Windows logo key + Plus Sign | **Win++** | Zoom in. | +| Windows logo key + Esc | **Win+Esc** | Close Magnifier application. | +| Windows logo key + Up Arrow | **Win+Up** | Maximize the active window. | +| Windows logo key + Down Arrow | **Win+Down** | Minimize the active window. | +| Windows logo key + Left Arrow | **Win+Left** | Snap the active window to the left half of screen. | +| Windows logo key + Right Arrow | **Win+Right** | Snap the active window to the right half of screen. | +| Windows logo key + Shift + Up Arrow | **Win+Shift+Up** | Maximize the active window vertically. | +| Windows logo key + Shift + Down Arrow | **Win+Shift+Down** | Minimize the active window. | +| Windows logo key + Shift + Left Arrow | **Win+Shift+Left** | Move the active window to left monitor. | +| Windows logo key + Shift + Right Arrow | **Win+Shift+Right** | Move the active window to right monitor. | +| Windows logo key + Spacebar | **Win+Space** | Switch layout. | +| Windows logo key + O | **Win+O** | Lock device orientation. | +| Windows logo key + Page Up | **Win+PageUp** | Move a Microsoft Store app to the left monitor. | +| Windows logo key + Page Down | **Win+PageDown** | Move a Microsoft Store app to right monitor. | +| Windows logo key + Period | **Win+.** | Snap the current screen to the left or right gutter. Also blocks the Windows logo key + Shift + Period key combination. | +| Windows logo key + C | **Win+C** | Activate Cortana in listening mode (after user has enabled the shortcut through the UI). | +| Windows logo key + I | **Win+I** | Open Settings charm. | +| Windows logo key + K | **Win+K** | Open Connect charm. | +| Windows logo key + H | **Win+H** | Start dictation. | +| Windows logo key + Q | **Win+Q** | Open Search charm. | +| Windows logo key + W | **Win+W** | Open Windows Ink workspace. | +| Windows logo key + Z | **Win+Z** | Open app bar. | +| Windows logo key + / | **Win+/** | Open input method editor (IME). | +| Windows logo key + J | **Win+J** | Swap between snapped and filled applications. | +| Windows logo key + Comma | **Win+,** | Peek at the desktop. | +| Windows logo key + V | **Win+V** | Cycle through toasts in reverse order. | + +## Modifier keys + +The following table contains predefined key combinations for modifier keys (such as Shift and Ctrl): + +| Key combination | WEKF_PredefinedKey.Id | Blocked key | +|:-----------------|:----------------------|:-----------------------| +| Alt | **Alt** | Both Alt keys | +| Application | **Application** | Application key | +| Ctrl | **Ctrl** | Both Ctrl keys | +| Shift | **Shift** | Both Shift keys | +| Windows logo key | **Windows** | Both Windows logo keys | + +## Security keys + +The following table contains predefined key combinations for OS security: + +| Key combination | WEKF_PredefinedKey.Id | Blocked behavior | +|:-----------------------|:----------------------|:----------------------------------| +| Ctrl + Alt + Delete | **Ctrl+Alt+Del** | Open the Windows Security screen. | +| Ctrl + Shift + Esc | **Shift+Ctrl+Esc** | Open Task Manager. | +| Windows logo key + L | **Win+L** | Lock the device. | + +## Extended shell keys + +The following table contains predefined key combinations for extended shell functions (such as automatically opening certain apps): + +| Key combination | WEKF_PredefinedKey.Id | Blocked key | +|:--------------------|:----------------------|:------------------------| +| LaunchMail | **LaunchMail** | Start Mail key | +| LaunchMediaSelect | **LaunchMediaSelect** | Select Media key | +| LaunchApp1 | **LaunchApp1** | Start Application 1 key | +| LaunchApp2 | **LaunchApp2** | Start Application 2 key | + +## Browser keys + +The following table contains predefined key combinations for controlling the browser: + +| Key combination | WEKF_PredefinedKey.Id | Blocked key | +|:-----------------|:----------------------|:---------------------------| +| BrowserBack | **BrowserBack** | Browser Back key | +| BrowserForward | **BrowserForward** | Browser Forward key | +| BrowserRefresh | **BrowserRefresh** | Browser Refresh key | +| BrowserStop | **BrowserStop** | Browser Stop key | +| BrowserSearch | **BrowserSearch** | Browser Search key | +| BrowserFavorites | **BrowserFavorites** | Browser Favorites key | +| BrowserHome | **BrowserHome** | Browser Start and Home key | + +## Media keys + +The following table contains predefined key combinations for controlling media playback: + +| Key combination | WEKF_PredefinedKey.Id | Blocked key | +|:----------------|:----------------------|:---------------------| +| VolumeMute | **VolumeMute** | Volume Mute key | +| VolumeDown | **VolumeDown** | Volume Down key | +| VolumeUp | **VolumeUp** | Volume Up key | +| MediaNext | **MediaNext** | Next Track key | +| MediaPrev | **MediaPrev** | Previous Track key | +| MediaStop | **MediaStop** | Stop Media key | +| MediaPlayPause | **MediaPlayPause** | Play/Pause Media key | + +## Microsoft Surface keyboard keys + +The following table contains predefined key combinations for Microsoft Surface devices: + +| Key combination | WEKF_PredefinedKey.Id | Blocked key | +|:------------------------------|:----------------------|:-------------| +| Left Alt + Windows logo key | **AltWin** | Share key | +| Left Ctrl + Windows logo key | **CtrlWin** | Devices key | +| Left Shift + Windows logo key | **ShiftWin** | Search key | +| F21 | **F21** | Settings key | + +## Related topics + +[Keyboard filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md new file mode 100644 index 0000000000..8c6295af73 --- /dev/null +++ b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md @@ -0,0 +1,112 @@ +--- +title: Remove key combination configurations +description: Remove key combination configurations +ms.assetid: 14f61d51-834b-4d15-8024-6728f0c8bc9c +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# Remove key combination configurations + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to create two functions to remove custom-defined key combination configurations from Keyboard Filter. It demonstrates several ways to use each function. + +The first function, **Remove-Custom-Key**, removes custom key combination configurations. + +The second function, **Remove-Scancode**, removes custom scan code configurations. + +You cannot remove the predefined key combination configurations for Keyboard Filter, but you can disable them. + +## Remove-rules.ps1 + +```powershell +# +# Copyright (C) Microsoft. All rights reserved. +# + +<# +.Synopsis + This script shows how to use the build in WMI providers to remove keyboard filter rules. Rules of type WEKF_PredefinedKey cannot 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 an instance of WEKF_CustomKey + .Description + Enumerate all instances of WEKF_CustomKey. When an instance has an + Id that matches $Id, delete it. + .Example + Remove-Custom-Key "Ctrl+V" + + This removes the instance of WEKF_CustomKey with a key Id of "Ctrl+V" +#> + + $customInstance = Get-WMIObject -class WEKF_CustomKey @CommonParams | + where {$_.Id -eq $Id} + + if ($customInstance) { + $customInstance.Delete(); + "Removed Custom Filter $Id."; + } else { + "Custom Filter $Id does not exist."; + } +} + +function Remove-Scancode($Modifiers, [int]$Code) { + <# + .Synopsis + Remove and instance of WEKF_Scancode + .Description + Enumerate all instances of WEKF_Scancode. When an instance has a + matching modifiers and code, delete it. + .Example + Remove-Scancode "Ctrl" 37 + + This removes the instance of WEKF_Scancode 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 Scancode $Modifiers+$Code."; + } else { + "Scancode $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 "%" +Remove-Scancode "Ctrl" 37 +``` + +## Related topics + +[Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) + +[Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/toc.yml b/windows/configuration/keyboard-filter/toc.yml new file mode 100644 index 0000000000..7c09e1a75c --- /dev/null +++ b/windows/configuration/keyboard-filter/toc.yml @@ -0,0 +1,53 @@ +items: +- name: Keyboard Filter + items: + - name: About keyboard filter + href: index.md + - name: Key Names + href: keyboardfilter-key-names.md + - name: Predefined Key Combinations + href: keyboardfilter-list-all-configured-key-combinations.md + - name: WMI Provider Reference + items: + - name: Overview + href: keyboardfilter-wmi-provider-reference.md + - name: Class WEKF_CustomKey + items: + - name: Overview + href: wekf-customkey.md + - name: Add + href: wekf-customkeyadd.md + - name: Remove + href: wekf-customkeyremove.md + - name: Class WEKF_PredefinedKey + items: + - name: Overview + href: wekf-predefinedkey.md + - name: Disable + href: wekf-predefinedkeydisable.md + - name: Enable + href: wekf-predefinedkeyenable.md + - name: Class WEKF_Scancode + items: + - name: Overview + href: wekf-scancode.md + - name: Add + href: wekf-scancodeadd.md + - name: Remove + href: wekf-scancoderemove.md + - name: Class WEKF-Settings + href: wekf-settings.md + - name: PowerShell script samples + items: + - name: Overview + href: keyboardfilter-powershell-script-samples.md + - name: Add blocked key Combinations + href: keyboardfilter-add-blocked-key-combinations.md + - name: Disable all blocked key Combinations + href: disable-all-blocked-key-combinations.md + - name: List all configured key combinations + href: keyboardfilter-list-all-configured-key-combinations.md + - name: Modify global settings + href: modify-global-settings.md + - name: Remove key combination configurations + href: remove-key-combination-configurations.md \ No newline at end of file diff --git a/windows/configuration/keyboard-filter/wekf-customkey.md b/windows/configuration/keyboard-filter/wekf-customkey.md new file mode 100644 index 0000000000..607ca538e3 --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-customkey.md @@ -0,0 +1,143 @@ +--- +title: WEKF_CustomKey +description: WEKF_CustomKey +ms.assetid: 7d67c0ce-844c-4534-96d4-2c7f21a69c8e +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_CustomKey + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +Adds or removes custom-defined key combinations. + +## Syntax + +```powershell +class WEKF_CustomKey { + [Static] uint32 Add( + [In] string CustomKey + ); + [Static] uint32 Remove( + [In] string CustomKey + ); + + [Key] string Id; + [Read, Write] boolean Enabled; +}; +``` + +## Members + +The following tables list any methods and properties that belong to this class. + +### Methods + +| Methods | Description | +|---------|-------------| +| [WEKF_CustomKey.Add](wekf-customkeyadd.md) | Creates a new custom key combination and enables Keyboard Filter to block the new key combination. | +| [WEKF_CustomKey.Remove](wekf-customkeyremove.md) | Removes the specified custom key combination. Keyboard Filter stops blocking the key combination that was removed. | + +### Properties + +| Property | Data type | Qualifiers | Description | +|----------|----------------|------------|--------------| +| **Id** | string | [key] | The name of the custom key combination. | +| **Enabled** | Boolean | [read, write] | Indicates if the key is blocked or unblocked. This property can be one of the following values
- **true** Indicates that the key is blocked.
- **false** Indicates that the key is not blocked. | + +### Remarks + +You can specify key combinations by including the modifier keys in the name. The most common modifier names are “Ctrl”, “Shift”, “Alt”, and “Win”. You cannot block a combination of non-modifier keys. For example, you can block a key combination of “Ctrl+Shift+F”, but you cannot block a key combination of “A+D”. + +When you block a shift-modified key, you must enter the key as “Shift” + the unmodified key. For example, to block the % key on an English keyboard layout, you must specify the key as “Shift+5”. Attempting to block “%”, results in Keyboard Filter blocking “5” instead. + +When you specify the key combination to block, you must use the English names for the keys. For a list of the key names you can specify, see Keyboard Filter key names. + +## Example + +The following code demonstrates how to add or enable a custom key combination that Keyboard Filter will block by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. This example modifies the properties directly and does not call any of the methods defined in **WEKF_CustomKey**. + +```powershell +<# +.Synopsis + This script shows how to use the WMI provider to enable and add + Keyboard Filter rules through Windows PowerShell on the local computer. +.Parameter ComputerName + Optional parameter to specify a remote machine 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 Enable-Custom-Key($Id) { + <# + .Synopsis + Toggle on a Custom Key Keyboard Filter Rule + .Description + Use Get-WMIObject to enumerate all WEKF_CustomKey instances, + filter against key value "Id", and set that instance's "Enabled" + property to 1/true. + + In the case that the Custom instance does not exist, add a new + instance of WEKF_CustomKey using Set-WMIInstance. + .Example + Enable-Custom-Key "Ctrl+V" + + Enable filtering of the Ctrl + V sequence. +#> + + $custom = Get-WMIObject -class WEKF_CustomKey @CommonParams | + where { + $_.Id -eq "$Id" + }; + + if ($custom) { +# Rule exists. Just enable it. + $custom.Enabled = 1; + $custom.Put() | Out-Null; + "Enabled Custom Filter $Id."; + + } else { + Set-WMIInstance ` + -class WEKF_CustomKey ` + -argument @{Id="$Id"} ` + @CommonParams | Out-Null + + "Added Custom Filter $Id."; + } +} + + +# Some example uses of the function defined above. + +Enable-Custom-Key "Ctrl+V" +Enable-Custom-Key "Numpad0" +Enable-Custom-Key "Shift+Numpad1" +``` + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +[Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard Filter key names](keyboardfilter-key-names.md) diff --git a/windows/configuration/keyboard-filter/wekf-customkeyadd.md b/windows/configuration/keyboard-filter/wekf-customkeyadd.md new file mode 100644 index 0000000000..763fca105b --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-customkeyadd.md @@ -0,0 +1,110 @@ +--- +title: WEKF_CustomKey.Add +description: WEKF_CustomKey.Add +ms.assetid: 59040e1b-1706-476b-9d7c-2279b20c47b4 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_CustomKey.Add + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +Creates a new custom key combination and enables Keyboard Filter to block the new key combination. + +## Syntax + +```powershell +[Static] uint32 Add( + [In] string CustomKey +); +``` + +## Parameters + +**CustomKey**
\[in\] The custom key combination to add. For a list of valid key names, see [Keyboard Filter key names](keyboardfilter-key-names.md). + +## Return Value + +Returns an HRESULT value that indicates a [WMI Non-Error Constant](/windows/win32/wmisdk/wmi-non-error-constants) or a [WMI Error Constant](/windows/win32/wmisdk/wmi-error-constants). + +## Remarks + +**WEKF_CustomKey.Add** creates a new **WEKF_CustomKey** object and sets the **Enabled** property of the new object to **true**, and the **Id** property to *CustomKey*. + +If a **WEKF_CustomKey** object already exists with the **Id** property equal to *CustomKey*, then **WEKF_CustomKey.Add** returns an error code and does not create a new object or modify any properties of the existing object. If the existing **WEKF_CustomKey** object has the **Enabled** property set to **false**, Keyboard Filter does not block the custom key combination. + +## Example + +The following code demonstrates how to add or enable a custom key that Keyboard Filter will block by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. + +```powershell +$COMPUTER = "localhost" +$NAMESPACE = "root\standardcimv2\embedded" + +# Create a handle to the class instance so we can call the static methods +$classCustomKey = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WEKF_CustomKey" + +# Create a function to add or enable a key combination for Keyboard Filter to block +function Enable-Custom-Key($KeyId) { + +# Check to see if the custom key object already exists + $objCustomKey = Get-WMIObject -namespace $NAMESPACE -class WEKF_CustomKey | + where {$_.Id -eq "$KeyId"}; + + if ($objCustomKey) { + +# The custom key already exists, so just enable it + $objCustomKey.Enabled = 1; + $objCustomKey.Put() | Out-Null; + "Enabled ${KeyId}."; + + } else { + +# Create a new custom key object by calling the static Add method + $retval = $classCustomKey.Add($KeyId); + +# Check the return value to verify that the Add is successful + if ($retval.ReturnValue -eq 0) { + "Added ${KeyID}." + } else { + "Unknown Error: " + "{0:x0}" -f $retval.ReturnValue + } + } +} + +# Enable Keyboard Filter to block several custom keys + +Enable-Custom-Key "Ctrl+v" +Enable-Custom-Key "Ctrl+v" +Enable-Custom-Key "Shift+4" +Enable-Custom-Key "Ctrl+Alt+w" + +# List all the currently existing custom keys + +$objCustomKeyList = get-WMIObject -namespace $NAMESPACE -class WEKF_CustomKey +foreach ($objCustomKeyItem in $objCustomKeyList) { + "Custom key: " + $objCustomKeyItem.Id + " enabled: " + $objCustomKeyItem.Enabled + } +``` + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +- [WEKF_CustomKey](wekf-customkey.md) +- [Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/wekf-customkeyremove.md b/windows/configuration/keyboard-filter/wekf-customkeyremove.md new file mode 100644 index 0000000000..40b9ee9192 --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-customkeyremove.md @@ -0,0 +1,100 @@ +--- +title: WEKF_CustomKey.Remove +description: WEKF_CustomKey.Remove +ms.assetid: 944d2987-5b2c-4c88-8199-dcec12d626b2 +ms.date: 11/12/2024 +ms.topic: article +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +--- +# WEKF_CustomKey.Remove + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +Removes a custom key combination, causing Keyboard Filter to stop blocking the removed key combination. + +## Syntax + +```powershell +[Static] uint32 Remove( + [In] string CustomKey +); +``` + +## Parameters + +**CustomKey**
\[in\] The custom key combination to remove. + +## Return Value + +Returns an HRESULT value that indicates [WMI status](/windows/win32/wmisdk/wmi-non-error-constants) or a [WMI error](/windows/win32/wmisdk/wmi-error-constants). + +## Remarks + +**WEKF_CustomKey.Remove** removes an existing **WEKF_CustomKey** object. If the object does not exist, **WEKF_CustomKey.Remove** returns an error with the value 0x8007007B. + +Because this method is static, you cannot call it on an object instance, but must instead call it at the class level. + +## Example + +The following code demonstrates how to remove a custom key from Keyboard Filter so it is no longer blocked by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. + +```powershell +$COMPUTER = "localhost" +$NAMESPACE = "root\standardcimv2\embedded" + +# Create a handle to the class instance so we can call the static methods +$classCustomKey = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WEKF_CustomKey" + +# Create a function to remove a key combination +function Remove-Custom-Key($KeyId) { + +# Call the static Remove() method on the class reference + $retval = $classCustomKey.Remove($KeyId) + +# Check the return value for status + if ($retval.ReturnValue -eq 0) { + +# Custom key combination removed successfully + "Removed ${KeyID}." + } elseif ($retval.ReturnValue -eq 2147942523) { + +# No object exists with the specified custom key + "Failed to remove ${KeyID}. No object found." + } else { + +# Unknown error, report error code in hexadecimal + "Failed to remove ${KeyID}. Unknown Error: " + "{0:x0}" -f $retval.ReturnValue + } +} + + +# Example of removing a custom key so that Keyboard Filter stops blocking it +Remove-Custom-Key "Ctrl+Alt+w" + +# Example of removing all custom keys that have the Enabled property set to false +$objDisabledCustomKeys = Get-WmiObject -Namespace $NAMESPACE -Class WEKF_CustomKey; + +foreach ($objCustomKey in $objDisabledCustomKeys) { + if (!$objCustomKey.Enabled) { + Remove-Custom-Key($objCustomKey.Id); + } +} +``` + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +- [WEKF_CustomKey](wekf-customkey.md) +- [Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkey.md b/windows/configuration/keyboard-filter/wekf-predefinedkey.md new file mode 100644 index 0000000000..e24ad864ee --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-predefinedkey.md @@ -0,0 +1,129 @@ +--- +title: WEKF_PredefinedKey +description: WEKF_PredefinedKey +ms.assetid: 2fc29e2b-1c76-437f-99b0-db13a3aeb1af +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_PredefinedKey + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +This class blocks or unblocks predefined key combinations, such as Ctrl+Alt+Delete. + +## Syntax + +```powershell +class WEKF_PredefinedKey { + [Static] uint32 Enable ( + [In] string PredefinedKey + ); + [Static] uint32 Disable ( + [In] string PredefinedKey + ); + + [Key] string Id; + [Read, Write] boolean Enabled; +}; +``` + +## Members + +The following tables list any constructors, methods, fields, and properties that belong to this class. + +### Methods + +| Methods | Description | +|:-----------------------------------------------------------|:---------------------------------------| +| [WEKF_PredefinedKey.Enable](wekf-predefinedkeyenable.md) | Blocks the specified predefined key. | +| [WEKF_PredefinedKey.Disable](wekf-predefinedkeydisable.md) | Unblocks the specified predefined key. | + +### Properties + +| Property | Data type | Qualifiers | Description | +|:------------|:----------|:--------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Id** | string | [key] | The name of the predefined key combination. | +| **Enabled** | Boolean | [read, write] | Indicates whether the key is blocked or unblocked. To indicate that the key is blocked, specify **true**. To indicate that the key is not blocked, specify **false**. | + +### Remarks + +All accounts have read access to the **WEKF_PRedefinedKey** class, but only administrator accounts can modify the class. + +For a list of predefined key combinations for Keyboard Filter, see [Predefined key combinations](predefined-key-combinations.md). + +## Example + +The following sample Windows PowerShell script blocks the Ctrl+Alt+Delete and the Ctrl+Esc key combinations when the Keyboard Filter service is running. + +```powershell +<# +.Synopsis + This script shows how to use the built in WMI providers to enable and add + Keyboard Filter rules through Windows PowerShell on the local computer. +.Parameter ComputerName + Optional parameter to specify a remote machine 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 Enable-Predefined-Key($Id) { + <# + .Synposis + Toggle on a Predefined Key Keyboard Filter Rule + .Description + Use Get-WMIObject to enumerate all WEKF_PredefinedKey instances, + filter against key value "Id", and set that instance's "Enabled" + property to 1/true. + .Example + Enable-Predefined-Key "Ctrl+Alt+Delete" + + Enable CAD filtering +#> + + $predefined = Get-WMIObject -class WEKF_PredefinedKey @CommonParams | + where { + $_.Id -eq "$Id" + }; + + if ($predefined) { + $predefined.Enabled = 1; + $predefined.Put() | Out-Null; + Write-Host Enabled $Id + } else { + Write-Error $Id is not a valid predefined key + } +} + +# Some example uses of the function defined above. + +Enable-Predefined-Key "Ctrl+Alt+Delete" +Enable-Predefined-Key "Ctrl+Esc" +``` + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +[Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md new file mode 100644 index 0000000000..e9bd017d4a --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md @@ -0,0 +1,49 @@ +--- +title: WEKF_PredefinedKey.Disable +description: WEKF_PredefinedKey.Disable +ms.assetid: 81a040b3-b845-4cb2-872f-68082b048316 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_PredefinedKey.Disable + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +Unblocks the specified predefined key combination. + +## Syntax + +```powershell +[Static] uint32 Disable( + [In] string PredefinedKey +); +``` + +## Parameters + +**PredefinedKey**
\[in\] The predefined key combination to unblock. For a list of predefined keys, see [Predefined key combinations](predefined-key-combinations.md). + +## Return Value + +Returns an HRESULT value that indicates [WMI Non-error constant](/windows/win32/wmisdk/wmi-non-error-constants) or a [WMI error constant](/windows/win32/wmisdk/wmi-error-constants). + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +- [WEKF_PredefinedKey](wekf-predefinedkey.md) +- [Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md new file mode 100644 index 0000000000..6575128874 --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md @@ -0,0 +1,49 @@ +--- +title: WEKF_PredefinedKey.Enable +description: WEKF_PredefinedKey.Enable +ms.assetid: 4ea8c6c4-3bf6-475f-b9e1-38e1a971eda5 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_PredefinedKey.Enable + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +This method blocks the specified predefined key combination. + +## Syntax + +```powershell +[Static] uint32 Enable( + [In] string PredefinedKey +); +``` + +## Parameters + +**PredefinedKey**
The predefined key combination to block. For a list of predefined keys, see [Predefined key combinations](predefined-key-combinations.md). + +## Return Value + +Returns an HRESULT value that indicates [WMI non-error constant](/windows/win32/wmisdk/wmi-non-error-constants) or a [WMI error constant](/windows/win32/wmisdk/wmi-error-constants). + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +- [WEKF_PredefinedKey](wekf-predefinedkey.md) +- [Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancode.md b/windows/configuration/keyboard-filter/wekf-scancode.md new file mode 100644 index 0000000000..e3eacf17dd --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-scancode.md @@ -0,0 +1,142 @@ +--- +title: WEKF_Scancode +description: WEKF_Scancode +ms.assetid: a71bcc26-5469-4018-b426-eae277d7716d +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_Scancode + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +Blocks or unblocks key combinations by using the keyboard scan code, which is an integer number that is generated whenever a key is pressed or released. + +## Syntax + +```powershell +class WEKF_Scancode { + [Static] uint32 Add( + [In] string Modifiers, + [In] uint16 scancode + ); + [Static] uint32 Remove( + [In] string Modifiers, + [In] uint16 Scancode + ); + + [Key] string Modifiers; + [Key] uint16 Scancode; + [Read, Write] boolean Enabled; +} +``` + +## Members + +The following tables list any constructors, methods, fields, and properties that belong to this class. + +### Methods + +| Methods | Description | +|---------|-------------| +| [WEKF_Scancode.Add](wekf-scancodeadd.md) | Adds a new custom scan code combination and enables Keyboard Filter to block the new scan code combination. | +| [WEKF_Scancode.Remove](wekf-scancoderemove.md) | Removes the specified custom scan code combination. Keyboard Filter stops blocking the scan code combination that was removed. | + +### Properties + +| Property | Data type | Qualifiers | Description | +|----------|----------------|------------|-------------| +| **Modifiers** | string | [key] | The modifier keys that are part of the key combination to block. | +| **Scancode** | uint16 | [key] | The scan code part of the key combination to block. | +| **Enabled** | Boolean | [read, write] | Indicates whether the scan code is blocked or unblocked. This property can be one of the following values:
- **true** Indicates that the scan code is blocked.
- **false** Indicates that the scan code is not blocked. | + +### Remarks + +Scan codes are generated by the keyboard whenever a key is pressed. The same physical key will always generate the same scan code, regardless of which keyboard layout is currently being used by the system. + +You can specify key combinations by including the modifier keys in the *Modifiers* parameter of the **Add** method or by modifying the **Modifiers** property. The most common modifier names are “Ctrl”, “Shift”, “Alt”, and “Win”. + +## Example + +The following code demonstrates how to add or enable a keyboard scan code that Keyboard Filter will block by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. This example modifies the properties directly, and does not call any of the methods defined in **WEKF_Scancode**. + +```powershell +<# +.Synopsis + This script shows how to use the WMI provider to enable and add + Keyboard Filter rules through Windows Powershell on the local computer. +.Parameter ComputerName + Optional parameter to specify a remote machine 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 Enable-Scancode($Modifiers, [int]$Code) { + <# + .Synopsis + Toggle on a Scancode Keyboard Filter Rule + .Description + Use Get-WMIObject to enumerate all WEKF_Scancode instances, + filter against key values of "Modifiers" and "Scancode", and set + that instance's "Enabled" property to 1/true. + + In the case that the Scancode instance does not exist, add a new + instance of WEKF_Scancode using Set-WMIInstance. + .Example + Enable-Predefined-Key "Ctrl+V" + + Enable filtering of the Ctrl + V sequence. +#> + + $scancode = + Get-WMIObject -class WEKF_Scancode @CommonParams | + where { + ($_.Modifiers -eq $Modifiers) -and ($_.Scancode -eq $Code) + } + + if($scancode) { + $scancode.Enabled = 1 + $scancode.Put() | Out-Null + "Enabled Custom Scancode {0}+{1:X4}" -f $Modifiers, $Code + } else { + Set-WMIInstance ` + -class WEKF_Scancode ` + -argument @{Modifiers="$Modifiers"; Scancode=$Code} ` + @CommonParams | Out-Null + + "Added Custom Scancode {0}+{1:X4}" -f $Modifiers, $Code + } +} + +# Some example uses of the function defined above. + +Enable-Scancode "Ctrl" 37 +``` + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +[Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancodeadd.md b/windows/configuration/keyboard-filter/wekf-scancodeadd.md new file mode 100644 index 0000000000..6f277e7630 --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-scancodeadd.md @@ -0,0 +1,58 @@ +--- +title: WEKF_Scancode.Add +description: WEKF_Scancode.Add +ms.assetid: cb5ea693-e871-4338-957a-f78f87a932ba +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_Scancode.Add + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +This method adds a new custom scan code combination and enables Keyboard Filter to block the new combination. + +## Syntax + +```powershell +[Static] uint32 Add( + [In] string Modifiers, + [In] uint16 Scancode +); +``` + +## Parameters + +**Modifers**
The modifier keys that are part of the key combination to block. + +**Scancode**
The hardware scan code of the key to block. + +## Return Value + +Returns an HRESULT value that indicates [WMI non-error constant](/windows/win32/wmisdk/wmi-non-error-constants) or a [WMI error constant](/windows/win32/wmisdk/wmi-error-constants). + +## Remarks + +**WEKF_Scancode.Add** creates a new **WEKF_Scancode** object and sets the **Enabled** property of the new object to **true**. + +If a **WEKF_Scancode** object already exists with same *Modifiers* and *Scancode* properties, then **WEKF_Scancode.Add** returns an error code and does not create a new object or modify any properties of the existing object. If the existing **WEKF_Scancode** object has the **Enabled** property set to **false**, Keyboard Filter does not block the scan code. + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +- [WEKF_Scancode](wekf-scancode.md) +- [Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancoderemove.md b/windows/configuration/keyboard-filter/wekf-scancoderemove.md new file mode 100644 index 0000000000..a661b898d6 --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-scancoderemove.md @@ -0,0 +1,58 @@ +--- +title: WEKF_Scancode.Remove +description: WEKF_Scancode.Remove +ms.assetid: 86185501-edc3-4c1d-be0b-5621c64f9540 +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_Scancode.Remove + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +This method removes a custom scan code key combination, causing Keyboard Filter to stop blocking the removed combination. + +## Syntax + +```powershell +[Static] uint32 Remove( + [In] string Modifiers, + [In] uint16 Scancode +); +``` + +## Parameters + +**Modifiers**
The modifier keys of the combination to remove. + +**Scancode**
The scan code of the combination to remove. + +## Return Value + +Returns an HRESULT value that indicates [WMI non-error constant](/windows/win32/wmisdk/wmi-non-error-constants) or a [WMI error constant](/windows/win32/wmisdk/wmi-error-constants). + +## Remarks + +**WEKF_Scancode.Remove** removes an existing **WEKF_Scancode** object. If the object does not exist, **WEKF_Scancode.Remove** returns an error with the value 0x8007007B. + +Because this method is static, you cannot call it on an object instance, but must instead call it at the class level. + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +- [WEKF_Scancode](wekf-scancode.md) +- [Keyboard Filter](keyboardfilter.md) diff --git a/windows/configuration/keyboard-filter/wekf-settings.md b/windows/configuration/keyboard-filter/wekf-settings.md new file mode 100644 index 0000000000..74f96bf764 --- /dev/null +++ b/windows/configuration/keyboard-filter/wekf-settings.md @@ -0,0 +1,110 @@ +--- +title: WEKF_Settings +description: WEKF_Settings +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms.date: 11/12/2024 +ms.topic: article + + +--- +# WEKF_Settings + +[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + +Enables or disables settings for Keyboard Filter. + +## Syntax + +```powershell +class WEKF_Settings { + [Key] string Name; + [Read, Write] string Value; +}; +``` + +## Members + +The following tables list any methods and properties that belong to this class. + +### Properties + +| Property | Data type | Qualifiers | Description | +|----------|----------------|------------|-------------| +| **Name** | string | [key] | Indicates the name of the Keyboard Filter setting that this object represents. See the Remarks section for a list of valid setting names. | +| **Value** | string | [read, write] | Represents the value of the **Name** setting. The value is not case-sensitive.
See the Remarks section for a list of valid values for each setting. | + +### Remarks + +You must be signed in to an administrator account to make any changes to this class. + +Each **WEKF_Settings** object represents a single Keyboard Filter setting. You can enumerate across all **WEKF_Settings** objects to see the value of all Keyboard Filter settings. + +The following table lists all settings available for Keyboard Filter. + +| Setting name | Description | +|--------------|-------------| +| **DisableKeyboardFilterForAdministrators** | This setting specifies whether Keyboard Filter is enabled or disabled for administrator accounts. Set to **true** to disable Keyboard Filter for administrator accounts; otherwise, set to **false**. Set to **true** by default. | +| **ForceOffAccessibility** | This setting specifies whether Keyboard Filter blocks users from enabling Ease of Access features. Set to **true** to force disabling the Ease of Access features. Set to **false** to allow enabling the Ease of Access features. Set to **false** by default.
Changing this setting to **false** does not automatically enable Ease of Access features; you must manually enable them. | +| **BreakoutKeyScanCode** | This setting specifies the scan code of the key that enables a user to break out of an account that is locked down with Keyboard Filter. A user can press this key consecutively five times to switch to the Welcome screen.
By default, the BreakoutKeyScanCode is set to the scan code for the left Windows logo key. | + +One instance of the **WEKF_Settings** class exists for each valid setting. + +Changes to the **DisableKeyboardFilterForAdministrator** setting are applied when an administrator account signs in, and applies to all applications run during the user session. If a user without an administrator account runs an application as an administrator, Keyboard Filter is still enabled, regardless of the **DisableKeyboardFilterForAdministrator** setting. + +Changes to the **BreakoutKeyScanCode** setting do not take effect until you restart the device. + +If the **BreakoutKeyScanCode** is set to the scan code for either the left Windows logo key or the right Windows logo key, both Windows Logo keys will work as the breakout key. + +The **BreakoutKeyScanCode** setting only applies to accounts where Keyboard Filter is active. If the scan code is set to a value that does not map to any key, such as 0 (zero), then you must use another method to access the Welcome screen if you need to service the device, such as remotely connecting, or restarting the device if automatic sign-in is not enabled. + +> [!IMPORTANT] +> On some devices, if the breakout key is pressed too rapidly, the key presses may not register. We recommend that you include a slight pause between each breakout key press. + +> [!WARNING] +> When setting the **BreakoutKeyScanCode**, be sure to use the scan code of the key, and not the virtual key value. + +### Example + +The following Windows PowerShell script demonstrates how to use this class to modify the breakout mode key for Keyboard Filter. This example sets the **BreakoutKeyScanCode** setting to the scan code for the Home key on a standard keyboard. + +```powershell +#---Define variables--- + +$COMPUTER = "localhost" +$NAMESPACE = "root\standardcimv2\embedded" + +# Define the decimal scan code of the Home key + +$HomeKeyScanCode = 71 + +# Get the BreakoutKeyScanCode setting from WEKF_Settings + +$BreakoutMode = get-wmiobject -class wekf_settings -namespace $NAMESPACE | where {$_.name -eq "BreakoutKeyScanCode"} + +# Set the breakout key to the Home key. + +$BreakoutMode.value = $HomeKeyScanCode + +# Push the change into the WMI configuration. You must restart your device before this change takes effect. + +$BreakoutMode.put() +``` + +## Requirements + +| Windows Edition | Supported | +|:-----------------------|:---------:| +| Windows Home | No | +| Windows Pro | No | +| Windows Enterprise | Yes | +| Windows Education | Yes | +| Windows IoT Enterprise | Yes | + +## Related topics + +[Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) + +[Keyboard Filter](keyboardfilter.md) From f3ee06fe9097ca61d63ab19d8c4c5f24c2507aa2 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:03:22 -0500 Subject: [PATCH 3/9] updates --- .../disable-all-blocked-key-combinations.md | 4 ++-- windows/configuration/keyboard-filter/index.md | 2 +- .../keyboardfilter-add-blocked-key-combinations.md | 4 ++-- .../keyboard-filter/keyboardfilter-key-names.md | 8 ++++---- ...keyboardfilter-list-all-configured-key-combinations.md | 4 ++-- .../keyboardfilter-powershell-script-samples.md | 4 ++-- .../keyboardfilter-wmi-provider-reference.md | 4 ++-- .../keyboard-filter/modify-global-settings.md | 4 ++-- .../keyboard-filter/predefined-key-combinations.md | 4 ++-- .../remove-key-combination-configurations.md | 4 ++-- windows/configuration/keyboard-filter/wekf-customkey.md | 2 +- .../configuration/keyboard-filter/wekf-customkeyadd.md | 4 ++-- .../configuration/keyboard-filter/wekf-customkeyremove.md | 4 ++-- .../configuration/keyboard-filter/wekf-predefinedkey.md | 4 ++-- .../keyboard-filter/wekf-predefinedkeydisable.md | 4 ++-- .../keyboard-filter/wekf-predefinedkeyenable.md | 4 ++-- windows/configuration/keyboard-filter/wekf-scancode.md | 4 ++-- windows/configuration/keyboard-filter/wekf-scancodeadd.md | 4 ++-- .../configuration/keyboard-filter/wekf-scancoderemove.md | 4 ++-- windows/configuration/keyboard-filter/wekf-settings.md | 4 ++-- 20 files changed, 40 insertions(+), 40 deletions(-) diff --git a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md index c889554cb2..a1e9c9594b 100644 --- a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Disable all blocked key combinations -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + The following sample Windows PowerShell script uses the WMI providers to disable all blocked key combinations for Keyboard Filter by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. The key combination configurations are not removed, but Keyboard Filter stops blocking any keys. @@ -79,4 +79,4 @@ Get-WMIObject -class WEKF_Scancode @CommonParams | [Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -[Keyboard filter](keyboardfilter.md) +[Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/index.md b/windows/configuration/keyboard-filter/index.md index 9d02bea46a..892bb4a653 100644 --- a/windows/configuration/keyboard-filter/index.md +++ b/windows/configuration/keyboard-filter/index.md @@ -12,7 +12,7 @@ ms.topic: article --- # Keyboard Filter -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + You can use Keyboard Filter to suppress undesirable key presses or key combinations. Normally, a customer can use certain Microsoft Windows key combinations like Ctrl+Alt+Delete or Ctrl+Shift+Tab to alter the operation of a device by locking the screen or using Task Manager to close a running application. This behavior might not be desirable if your device is intended for a dedicated purpose. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md index 71640a4e4f..3b5147e625 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Add blocked key combinations -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to create three functions to configure Keyboard Filter so that Keyboard Filter blocks key combinations. It demonstrates several ways to use each function. @@ -163,4 +163,4 @@ Enable-Scancode "Ctrl" 37 [Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -[Keyboard filter](keyboardfilter.md) +[Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md index 20f08c8ca2..67825c91db 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md @@ -13,7 +13,7 @@ ms.topic: article --- # Keyboard Filter key names -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + You can configure Keyboard Filter to block keys or key combinations. A key combination consists of one or more modifier keys, separated by a plus sign (+), and either a key name or a key scan code. In addition to the keys listed in the following tables, you can use the predefined key combinations names as custom key combinations. However, we recommend using the predefined key settings when enabling or disabling predefined key combinations. @@ -29,7 +29,7 @@ The key names are grouped as follows: ## Modifier keys -You can use the modifier keys listed in the following table when you configure keyboard filter. Multiple modifiers are separated by a plus sign (+). You can also configure Keyboard Filter to block any modifier key even if it’s not part of a key combination. +You can use the modifier keys listed in the following table when you configure keyboard filter. Multiple modifiers are separated by a plus sign (+). You can also configure Keyboard Filter to block any modifier key even if it's not part of a key combination. | Modifier key name | Virtual key | Description | | ----------------- | ----------- | ----------- | @@ -73,7 +73,7 @@ You can use the modifier keys listed in the following table when you configure k | `RWin` | VK_RWIN | The right Windows logo key | | `Windows` | VK_WIN | The Windows logo key | | `LWindows` | VK_LWIN | The left Windows logo key | -| `RWindows` | VK_RWIN | The right Windows logo key +| `RWindows` | VK_RWIN | The right Windows logo key | ## Cursor and edit keys @@ -182,4 +182,4 @@ You can use the modifier keys listed in the following table when you configure k ## Related articles -- [Keyboard filter](keyboardfilter.md) +- [Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md index 4213a90fad..aeb0399df8 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # List all configured key combinations -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to displays all key combination configurations for Keyboard Filter. @@ -74,4 +74,4 @@ Get-WMIObject -class WEKF_Scancode @CommonParams | [Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -[Keyboard filter](keyboardfilter.md) +[Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md index 1a1edf9dec..88063b903d 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md @@ -13,7 +13,7 @@ ms.topic: article --- # Windows PowerShell script samples for Keyboard Filter -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + The list below describes sample Windows PowerShell scripts that demonstrate how to use the Windows Management Instrumentation (WMI) providers for Keyboard Filter. @@ -29,4 +29,4 @@ The list below describes sample Windows PowerShell scripts that demonstrate how [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -[Keyboard Filter](keyboardfilter.md) +[Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md index 313f51096b..dffa6315e3 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md @@ -13,7 +13,7 @@ ms.topic: article --- # Keyboard Filter WMI provider reference -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + Describes the Windows Management Instrumentation (WMI) provider classes that you use to configure Keyboard Filter during run time. @@ -26,4 +26,4 @@ Describes the Windows Management Instrumentation (WMI) provider classes that you ## Related topics -[Keyboard filter](keyboardfilter.md) +[Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/modify-global-settings.md b/windows/configuration/keyboard-filter/modify-global-settings.md index 925c04babb..a5ae811750 100644 --- a/windows/configuration/keyboard-filter/modify-global-settings.md +++ b/windows/configuration/keyboard-filter/modify-global-settings.md @@ -13,7 +13,7 @@ ms.topic: article --- # Modify global settings -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + The following sample Windows PowerShell scripts use the Windows Management Instrumentation (WMI) providers to modify global settings for Keyboard Filter. @@ -175,4 +175,4 @@ Set-ForceOffAccessibility $Enabled [WEKF_Settings](wekf-settings.md) -[Keyboard filter](keyboardfilter.md) +[Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/predefined-key-combinations.md b/windows/configuration/keyboard-filter/predefined-key-combinations.md index 8b0faf9e70..dee541f232 100644 --- a/windows/configuration/keyboard-filter/predefined-key-combinations.md +++ b/windows/configuration/keyboard-filter/predefined-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Predefined key combinations -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + This topic lists a set of key combinations that are predefined by a keyboard filter. You can list the value of the WEKF_PredefinedKey.Id to get a complete list of key combinations defined by a keyboard filter. @@ -163,4 +163,4 @@ The following table contains predefined key combinations for Microsoft Surface d ## Related topics -[Keyboard filter](keyboardfilter.md) +[Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md index 8c6295af73..ab2c3c6348 100644 --- a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md +++ b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Remove key combination configurations -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to create two functions to remove custom-defined key combination configurations from Keyboard Filter. It demonstrates several ways to use each function. @@ -109,4 +109,4 @@ Remove-Scancode "Ctrl" 37 [Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -[Keyboard filter](keyboardfilter.md) +[Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-customkey.md b/windows/configuration/keyboard-filter/wekf-customkey.md index 607ca538e3..653c7daca3 100644 --- a/windows/configuration/keyboard-filter/wekf-customkey.md +++ b/windows/configuration/keyboard-filter/wekf-customkey.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_CustomKey -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + Adds or removes custom-defined key combinations. diff --git a/windows/configuration/keyboard-filter/wekf-customkeyadd.md b/windows/configuration/keyboard-filter/wekf-customkeyadd.md index 763fca105b..5f70777e3e 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyadd.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyadd.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_CustomKey.Add -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + Creates a new custom key combination and enables Keyboard Filter to block the new key combination. @@ -107,4 +107,4 @@ foreach ($objCustomKeyItem in $objCustomKeyList) { ## Related topics - [WEKF_CustomKey](wekf-customkey.md) -- [Keyboard Filter](keyboardfilter.md) +- [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-customkeyremove.md b/windows/configuration/keyboard-filter/wekf-customkeyremove.md index 40b9ee9192..dad47f568f 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyremove.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyremove.md @@ -11,7 +11,7 @@ ms.subservice: iot --- # WEKF_CustomKey.Remove -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + Removes a custom key combination, causing Keyboard Filter to stop blocking the removed key combination. @@ -97,4 +97,4 @@ foreach ($objCustomKey in $objDisabledCustomKeys) { ## Related topics - [WEKF_CustomKey](wekf-customkey.md) -- [Keyboard Filter](keyboardfilter.md) +- [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkey.md b/windows/configuration/keyboard-filter/wekf-predefinedkey.md index e24ad864ee..b3acdd2872 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkey.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkey.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + This class blocks or unblocks predefined key combinations, such as Ctrl+Alt+Delete. @@ -126,4 +126,4 @@ Enable-Predefined-Key "Ctrl+Esc" [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -[Keyboard Filter](keyboardfilter.md) +[Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md index e9bd017d4a..fc567dfc50 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey.Disable -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + Unblocks the specified predefined key combination. @@ -46,4 +46,4 @@ Returns an HRESULT value that indicates [WMI Non-error constant](/windows/win32/ ## Related topics - [WEKF_PredefinedKey](wekf-predefinedkey.md) -- [Keyboard Filter](keyboardfilter.md) +- [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md index 6575128874..12e260feef 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey.Enable -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + This method blocks the specified predefined key combination. @@ -46,4 +46,4 @@ Returns an HRESULT value that indicates [WMI non-error constant](/windows/win32/ ## Related topics - [WEKF_PredefinedKey](wekf-predefinedkey.md) -- [Keyboard Filter](keyboardfilter.md) +- [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancode.md b/windows/configuration/keyboard-filter/wekf-scancode.md index e3eacf17dd..8a7ca0f297 100644 --- a/windows/configuration/keyboard-filter/wekf-scancode.md +++ b/windows/configuration/keyboard-filter/wekf-scancode.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + Blocks or unblocks key combinations by using the keyboard scan code, which is an integer number that is generated whenever a key is pressed or released. @@ -139,4 +139,4 @@ Enable-Scancode "Ctrl" 37 [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -[Keyboard Filter](keyboardfilter.md) +[Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancodeadd.md b/windows/configuration/keyboard-filter/wekf-scancodeadd.md index 6f277e7630..6be6715ce9 100644 --- a/windows/configuration/keyboard-filter/wekf-scancodeadd.md +++ b/windows/configuration/keyboard-filter/wekf-scancodeadd.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode.Add -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + This method adds a new custom scan code combination and enables Keyboard Filter to block the new combination. @@ -55,4 +55,4 @@ If a **WEKF_Scancode** object already exists with same *Modifiers* and *Scancode ## Related topics - [WEKF_Scancode](wekf-scancode.md) -- [Keyboard Filter](keyboardfilter.md) +- [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancoderemove.md b/windows/configuration/keyboard-filter/wekf-scancoderemove.md index a661b898d6..45836508e3 100644 --- a/windows/configuration/keyboard-filter/wekf-scancoderemove.md +++ b/windows/configuration/keyboard-filter/wekf-scancoderemove.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode.Remove -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + This method removes a custom scan code key combination, causing Keyboard Filter to stop blocking the removed combination. @@ -55,4 +55,4 @@ Because this method is static, you cannot call it on an object instance, but mus ## Related topics - [WEKF_Scancode](wekf-scancode.md) -- [Keyboard Filter](keyboardfilter.md) +- [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-settings.md b/windows/configuration/keyboard-filter/wekf-settings.md index 74f96bf764..64701a6f5d 100644 --- a/windows/configuration/keyboard-filter/wekf-settings.md +++ b/windows/configuration/keyboard-filter/wekf-settings.md @@ -12,7 +12,7 @@ ms.topic: article --- # WEKF_Settings -[!INCLUDE [Supported Editions - Enterprise Plus](../../../includes/incl-supported-OS-Enterprise-Plus.md)] + Enables or disables settings for Keyboard Filter. @@ -107,4 +107,4 @@ $BreakoutMode.put() [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -[Keyboard Filter](keyboardfilter.md) +[Keyboard Filter](index.md) From 24d6dca924d0bd15e1c188da5354a608444b6cbf Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:14:25 -0500 Subject: [PATCH 4/9] includes --- .../disable-all-blocked-key-combinations.md | 2 +- .../includes-supported-os-enterprise-plus.md | 10 ++++++++++ windows/configuration/keyboard-filter/index.md | 14 +++++++------- .../keyboardfilter-add-blocked-key-combinations.md | 2 +- .../keyboard-filter/keyboardfilter-key-names.md | 2 +- ...dfilter-list-all-configured-key-combinations.md | 2 +- .../keyboardfilter-powershell-script-samples.md | 2 +- .../keyboardfilter-wmi-provider-reference.md | 2 +- .../keyboard-filter/modify-global-settings.md | 2 +- .../keyboard-filter/predefined-key-combinations.md | 2 +- .../remove-key-combination-configurations.md | 2 +- .../keyboard-filter/wekf-customkey.md | 6 +++--- .../keyboard-filter/wekf-customkeyadd.md | 2 +- .../keyboard-filter/wekf-customkeyremove.md | 2 +- .../keyboard-filter/wekf-predefinedkey.md | 2 +- .../keyboard-filter/wekf-predefinedkeydisable.md | 2 +- .../keyboard-filter/wekf-predefinedkeyenable.md | 2 +- .../configuration/keyboard-filter/wekf-scancode.md | 4 ++-- .../keyboard-filter/wekf-scancodeadd.md | 2 +- .../keyboard-filter/wekf-scancoderemove.md | 2 +- .../configuration/keyboard-filter/wekf-settings.md | 5 ++--- 21 files changed, 40 insertions(+), 31 deletions(-) create mode 100644 windows/configuration/keyboard-filter/includes-supported-os-enterprise-plus.md diff --git a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md index a1e9c9594b..b762451821 100644 --- a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Disable all blocked key combinations - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] The following sample Windows PowerShell script uses the WMI providers to disable all blocked key combinations for Keyboard Filter by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. The key combination configurations are not removed, but Keyboard Filter stops blocking any keys. diff --git a/windows/configuration/keyboard-filter/includes-supported-os-enterprise-plus.md b/windows/configuration/keyboard-filter/includes-supported-os-enterprise-plus.md new file mode 100644 index 0000000000..7e36da09ab --- /dev/null +++ b/windows/configuration/keyboard-filter/includes-supported-os-enterprise-plus.md @@ -0,0 +1,10 @@ +--- +author: TerryWarwick +ms.author: twarwick +ms.service: windows-iot +ms.subservice: iot +ms-topic: include +ms.date: 09/30/2024 +--- + +**Supported Editions**
✅ IoT Enterprise LTSC
✅ IoT Enterprise
✅ Enterprise LTSC
✅ Enterprise
✅ Education diff --git a/windows/configuration/keyboard-filter/index.md b/windows/configuration/keyboard-filter/index.md index 892bb4a653..d323739c8b 100644 --- a/windows/configuration/keyboard-filter/index.md +++ b/windows/configuration/keyboard-filter/index.md @@ -12,9 +12,9 @@ ms.topic: article --- # Keyboard Filter - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] -You can use Keyboard Filter to suppress undesirable key presses or key combinations. Normally, a customer can use certain Microsoft Windows key combinations like Ctrl+Alt+Delete or Ctrl+Shift+Tab to alter the operation of a device by locking the screen or using Task Manager to close a running application. This behavior might not be desirable if your device is intended for a dedicated purpose. +You can use Keyboard Filter to suppress undesirable key presses or key combinations. Normally, a customer can use certain Microsoft Windows key combinations like Ctrl+Alt+Delete or Ctrl+Shift+Tab to alter the operation of a device by locking the screen or using Task Manager to close a running application. This behavior might not be desirable if your device is intended for a dedicated purpose. The Keyboard Filter feature works with physical keyboards, the Windows on-screen keyboard, and the touch keyboard. Switching from one language to another might cause the location of suppressed keys on the keyboard layout to change. Keyboard Filter detects these dynamic layout changes and continues to suppress keys correctly. @@ -27,9 +27,9 @@ The Keyboard Filter feature works with physical keyboards, the Windows on-screen * **Configure:** To customize the setting or subsettings. -* **Embedded Keyboard Filter:** This feature is called Embedded Keyboard Filter in Windows 10, version 1511. +* **Embedded Keyboard Filter:** This feature is called Embedded Keyboard Filter in Windows 10, version 1511. -* **Keyboard Filter:** This feature is called Keyboard Filter in Windows 10, version 1607 and later. +* **Keyboard Filter:** This feature is called Keyboard Filter in Windows 10, version 1607 and later. ## Turn on Keyboard Filter @@ -92,7 +92,7 @@ Keyboard Filter has the following features: ## Keyboard scan codes and layouts -When a key is pressed on a physical keyboard, the keyboard sends a scan code to the keyboard driver. The driver then sends the scan code to the OS and the OS converts the scan code into a virtual key based on the current active layout. The layout defines the mapping of keys on the physical keyboard, and has many variants. A key on a keyboard always sends the same scan code when pressed, however this scan code can map to different virtual keys for different layouts. For example, in the English (United States) keyboard layout, the key to the right of the P key maps to “{“. However, in the Swedish (Sweden) keyboard layout, the same key maps to “Å”. +When a key is pressed on a physical keyboard, the keyboard sends a scan code to the keyboard driver. The driver then sends the scan code to the OS and the OS converts the scan code into a virtual key based on the current active layout. The layout defines the mapping of keys on the physical keyboard, and has many variants. A key on a keyboard always sends the same scan code when pressed, however this scan code can map to different virtual keys for different layouts. For example, in the English (United States) keyboard layout, the key to the right of the P key maps to `{`. However, in the Swedish (Sweden) keyboard layout, the same key maps to `Å`. Keyboard Filter can block keys either by the scan code or the virtual key. Blocking keys by the scan code is useful for custom keyboards that have special scan codes that don't translate into any single virtual key. Blocking keys by the virtual key is more convenient because it's easier to read and Keyboard Filter suppresses the key correctly even when the location of the key changes because of a layout change. @@ -138,9 +138,9 @@ Keyboard filter can't block the Sleep key. Some hardware keys, such as rotation lock, don't have a defined virtual key. You can still block these keys by using the scan code of the key. -The add (+), multiply (\*), subtract (-), divide (/), and decimal (.) keys have different virtual keys and scan codes on the numeric keypad than on the main keyboard. You must block both keys to block these keys. For example, to block the multiply key, you must add a rule to block “\*” and a rule to block Multiply. +The add (+), multiply (\*), subtract (-), divide (/), and decimal (.) keys have different virtual keys and scan codes on the numeric keypad than on the main keyboard. You must block both keys to block these keys. For example, to block the multiply key, you must add a rule to block "\*" and a rule to block Multiply. -When locking the screen by using the on-screen keyboard, or a combination of a physical keyboard and the on-screen keyboard, the on-screen keyboard sends an extra Windows logo key keystroke to the OS. If your device is using the Windows 10 shell and you use keyboard filter to block Windows logo key+L, the extra Windows logo key keystroke causes the shell to switch between the **Start** screen and the last active app when a user attempts to lock the device by using the on-screen keyboard, which may be unexpected behavior. +When locking the screen by using the on-screen keyboard, or a combination of a physical keyboard and the on-screen keyboard, the on-screen keyboard sends an extra Windows logo key keystroke to the OS. If your device is using the Windows 10 shell and you use keyboard filter to block Windows logo key+L, the extra Windows logo key keystroke causes the shell to switch between the **Start** screen and the last active app when a user attempts to lock the device by using the on-screen keyboard, which may be unexpected behavior. Some custom keyboard software, such as Microsoft IntelliType Pro, can install Keyboard Filter drivers that prevent Keyboard Filter from being able to block some or all keys, typically extended keys like BrowserHome and Search. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md index 3b5147e625..16a6eb3de3 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Add blocked key combinations - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to create three functions to configure Keyboard Filter so that Keyboard Filter blocks key combinations. It demonstrates several ways to use each function. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md index 67825c91db..a3eb1ecb85 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md @@ -13,7 +13,7 @@ ms.topic: article --- # Keyboard Filter key names - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] You can configure Keyboard Filter to block keys or key combinations. A key combination consists of one or more modifier keys, separated by a plus sign (+), and either a key name or a key scan code. In addition to the keys listed in the following tables, you can use the predefined key combinations names as custom key combinations. However, we recommend using the predefined key settings when enabling or disabling predefined key combinations. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md index aeb0399df8..5c88e94fd9 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # List all configured key combinations - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to displays all key combination configurations for Keyboard Filter. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md index 88063b903d..e68471a513 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md @@ -13,7 +13,7 @@ ms.topic: article --- # Windows PowerShell script samples for Keyboard Filter - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] The list below describes sample Windows PowerShell scripts that demonstrate how to use the Windows Management Instrumentation (WMI) providers for Keyboard Filter. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md index dffa6315e3..733f298c76 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md @@ -13,7 +13,7 @@ ms.topic: article --- # Keyboard Filter WMI provider reference - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] Describes the Windows Management Instrumentation (WMI) provider classes that you use to configure Keyboard Filter during run time. diff --git a/windows/configuration/keyboard-filter/modify-global-settings.md b/windows/configuration/keyboard-filter/modify-global-settings.md index a5ae811750..049d85864a 100644 --- a/windows/configuration/keyboard-filter/modify-global-settings.md +++ b/windows/configuration/keyboard-filter/modify-global-settings.md @@ -13,7 +13,7 @@ ms.topic: article --- # Modify global settings - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] The following sample Windows PowerShell scripts use the Windows Management Instrumentation (WMI) providers to modify global settings for Keyboard Filter. diff --git a/windows/configuration/keyboard-filter/predefined-key-combinations.md b/windows/configuration/keyboard-filter/predefined-key-combinations.md index dee541f232..5eda454969 100644 --- a/windows/configuration/keyboard-filter/predefined-key-combinations.md +++ b/windows/configuration/keyboard-filter/predefined-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Predefined key combinations - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] This topic lists a set of key combinations that are predefined by a keyboard filter. You can list the value of the WEKF_PredefinedKey.Id to get a complete list of key combinations defined by a keyboard filter. diff --git a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md index ab2c3c6348..698d0fe360 100644 --- a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md +++ b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Remove key combination configurations - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to create two functions to remove custom-defined key combination configurations from Keyboard Filter. It demonstrates several ways to use each function. diff --git a/windows/configuration/keyboard-filter/wekf-customkey.md b/windows/configuration/keyboard-filter/wekf-customkey.md index 653c7daca3..7412c42e3d 100644 --- a/windows/configuration/keyboard-filter/wekf-customkey.md +++ b/windows/configuration/keyboard-filter/wekf-customkey.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_CustomKey - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] Adds or removes custom-defined key combinations. @@ -53,9 +53,9 @@ The following tables list any methods and properties that belong to this class. ### Remarks -You can specify key combinations by including the modifier keys in the name. The most common modifier names are “Ctrl”, “Shift”, “Alt”, and “Win”. You cannot block a combination of non-modifier keys. For example, you can block a key combination of “Ctrl+Shift+F”, but you cannot block a key combination of “A+D”. +You can specify key combinations by including the modifier keys in the name. The most common modifier names are "Ctrl”, "Shift”, "Alt”, and "Win”. You cannot block a combination of non-modifier keys. For example, you can block a key combination of "Ctrl+Shift+F”, but you cannot block a key combination of "A+D”. -When you block a shift-modified key, you must enter the key as “Shift” + the unmodified key. For example, to block the % key on an English keyboard layout, you must specify the key as “Shift+5”. Attempting to block “%”, results in Keyboard Filter blocking “5” instead. +When you block a shift-modified key, you must enter the key as "Shift” + the unmodified key. For example, to block the % key on an English keyboard layout, you must specify the key as "Shift+5”. Attempting to block "%”, results in Keyboard Filter blocking "5” instead. When you specify the key combination to block, you must use the English names for the keys. For a list of the key names you can specify, see Keyboard Filter key names. diff --git a/windows/configuration/keyboard-filter/wekf-customkeyadd.md b/windows/configuration/keyboard-filter/wekf-customkeyadd.md index 5f70777e3e..9cdc091e06 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyadd.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyadd.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_CustomKey.Add - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] Creates a new custom key combination and enables Keyboard Filter to block the new key combination. diff --git a/windows/configuration/keyboard-filter/wekf-customkeyremove.md b/windows/configuration/keyboard-filter/wekf-customkeyremove.md index dad47f568f..b84e8d90a7 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyremove.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyremove.md @@ -11,7 +11,7 @@ ms.subservice: iot --- # WEKF_CustomKey.Remove - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] Removes a custom key combination, causing Keyboard Filter to stop blocking the removed key combination. diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkey.md b/windows/configuration/keyboard-filter/wekf-predefinedkey.md index b3acdd2872..7fdbbb67ff 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkey.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkey.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] This class blocks or unblocks predefined key combinations, such as Ctrl+Alt+Delete. diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md index fc567dfc50..68392c8635 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey.Disable - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] Unblocks the specified predefined key combination. diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md index 12e260feef..f9b2966bf0 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey.Enable - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] This method blocks the specified predefined key combination. diff --git a/windows/configuration/keyboard-filter/wekf-scancode.md b/windows/configuration/keyboard-filter/wekf-scancode.md index 8a7ca0f297..4238deebc4 100644 --- a/windows/configuration/keyboard-filter/wekf-scancode.md +++ b/windows/configuration/keyboard-filter/wekf-scancode.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] Blocks or unblocks key combinations by using the keyboard scan code, which is an integer number that is generated whenever a key is pressed or released. @@ -59,7 +59,7 @@ The following tables list any constructors, methods, fields, and properties that Scan codes are generated by the keyboard whenever a key is pressed. The same physical key will always generate the same scan code, regardless of which keyboard layout is currently being used by the system. -You can specify key combinations by including the modifier keys in the *Modifiers* parameter of the **Add** method or by modifying the **Modifiers** property. The most common modifier names are “Ctrl”, “Shift”, “Alt”, and “Win”. +You can specify key combinations by including the modifier keys in the *Modifiers* parameter of the **Add** method or by modifying the **Modifiers** property. The most common modifier names are "Ctrl”, "Shift”, "Alt”, and "Win”. ## Example diff --git a/windows/configuration/keyboard-filter/wekf-scancodeadd.md b/windows/configuration/keyboard-filter/wekf-scancodeadd.md index 6be6715ce9..248ed944e6 100644 --- a/windows/configuration/keyboard-filter/wekf-scancodeadd.md +++ b/windows/configuration/keyboard-filter/wekf-scancodeadd.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode.Add - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] This method adds a new custom scan code combination and enables Keyboard Filter to block the new combination. diff --git a/windows/configuration/keyboard-filter/wekf-scancoderemove.md b/windows/configuration/keyboard-filter/wekf-scancoderemove.md index 45836508e3..2fe9b8aa4d 100644 --- a/windows/configuration/keyboard-filter/wekf-scancoderemove.md +++ b/windows/configuration/keyboard-filter/wekf-scancoderemove.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode.Remove - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] This method removes a custom scan code key combination, causing Keyboard Filter to stop blocking the removed combination. diff --git a/windows/configuration/keyboard-filter/wekf-settings.md b/windows/configuration/keyboard-filter/wekf-settings.md index 64701a6f5d..0ba7c0ab7d 100644 --- a/windows/configuration/keyboard-filter/wekf-settings.md +++ b/windows/configuration/keyboard-filter/wekf-settings.md @@ -7,12 +7,11 @@ ms.service: windows-iot ms.subservice: iot ms.date: 11/12/2024 ms.topic: article - - --- + # WEKF_Settings - +[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] Enables or disables settings for Keyboard Filter. From 4f271fb70fa29d7b8f4eb85127689303df9909cc Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:19:04 -0500 Subject: [PATCH 5/9] gremlins --- .../disable-all-blocked-key-combinations.md | 3 +- .../configuration/keyboard-filter/index.md | 48 +++++++++---------- 2 files changed, 23 insertions(+), 28 deletions(-) diff --git a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md index b762451821..a64fb74c25 100644 --- a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md @@ -8,9 +8,8 @@ ms.service: windows-iot ms.subservice: iot ms.date: 11/12/2024 ms.topic: article - - --- + # Disable all blocked key combinations [!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/index.md b/windows/configuration/keyboard-filter/index.md index d323739c8b..00e000de89 100644 --- a/windows/configuration/keyboard-filter/index.md +++ b/windows/configuration/keyboard-filter/index.md @@ -7,9 +7,8 @@ ms.service: windows-iot ms.subservice: iot ms.date: 11/12/2024 ms.topic: article - - --- + # Keyboard Filter [!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] @@ -23,13 +22,10 @@ The Keyboard Filter feature works with physical keyboards, the Windows on-screen ## Terminology -* **Turn on, enable:** Make the setting available to the device and optionally apply the settings to the device. Generally *turn on* is used in the user interface or control panel, whereas *enable* is used for command line. - -* **Configure:** To customize the setting or subsettings. - -* **Embedded Keyboard Filter:** This feature is called Embedded Keyboard Filter in Windows 10, version 1511. - -* **Keyboard Filter:** This feature is called Keyboard Filter in Windows 10, version 1607 and later. +- **Turn on, enable:** Make the setting available to the device and optionally apply the settings to the device. Generally *turn on* is used in the user interface or control panel, whereas *enable* is used for command line +- **Configure:** To customize the setting or subsettings +- **Embedded Keyboard Filter:** This feature is called Embedded Keyboard Filter in Windows 10, version 1511 +- **Keyboard Filter:** This feature is called Keyboard Filter in Windows 10, version 1607 and later ## Turn on Keyboard Filter @@ -78,17 +74,17 @@ This example uses a Windows image called install.wim, but you can use the same p Keyboard Filter has the following features: -* Supports hardware keyboards, the standard Windows on-screen keyboard, and the touch keyboard (TabTip.exe). -* Suppresses key combinations even when they come from multiple keyboards. +- Supports hardware keyboards, the standard Windows on-screen keyboard, and the touch keyboard (TabTip.exe) +- Suppresses key combinations even when they come from multiple keyboards For example, if a user presses the Ctrl key and the Alt key on a hardware keyboard, while at the same time pressing Delete on a software keyboard, Keyboard Filter can still detect and suppress the Ctrl+Alt+Delete functionality. -* Supports numeric keypads and keys designed to access media player and browser functionality. -* Can configure a key to breakout of a locked down user session to return to the Welcome screen. -* Automatically handles dynamic layout changes. -* Can be enabled or disabled for administrator accounts. -* Can force disabling of Ease of Access functionality. -* Supports x86 and x64 architectures. +- Supports numeric keypads and keys designed to access media player and browser functionality +- Can configure a key to breakout of a locked down user session to return to the Welcome screen +- Automatically handles dynamic layout changes +- Can be enabled or disabled for administrator accounts +- Can force disabling of Ease of Access functionality +- Supports x86 and x64 architectures ## Keyboard scan codes and layouts @@ -112,11 +108,11 @@ You can enable ease of access features for administrator accounts, while still d You can configure the following options for Keyboard Filter: -* Set/unset predefined key combinations to be suppressed. -* Add/remove custom defined key combinations to be suppressed. -* Enable/disable keyboard filter for administrator accounts. -* Force disabling ease of access features. -* Configure a breakout key sequence to break out of a locked down account. +- Set/unset predefined key combinations to be suppressed +- Add/remove custom defined key combinations to be suppressed +- Enable/disable keyboard filter for administrator accounts +- Force disabling ease of access features +- Configure a breakout key sequence to break out of a locked down account Most configuration changes take effect immediately. Some changes, such as enabling or disabling Keyboard Filter for administrators, don't take effect until the user signs out of the account and then back in. If you change the breakout key scan code, you must restart the device before the change take effect. @@ -146,7 +142,7 @@ Some custom keyboard software, such as Microsoft IntelliType Pro, can install Ke ## In this section -* [Keyboard Filter key names](keyboardfilter-key-names.md) -* [Predefined key combinations](predefined-key-combinations.md) -* [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) -* [Windows PowerShell script samples for Keyboard Filter](keyboardfilter-powershell-script-samples.md) \ No newline at end of file +- [Keyboard Filter key names](keyboardfilter-key-names.md) +- [Predefined key combinations](predefined-key-combinations.md) +- [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) +- [Windows PowerShell script samples for Keyboard Filter](keyboardfilter-powershell-script-samples.md) \ No newline at end of file From 44265a6b6e8a14d340c7b167e22a718ff7e100c0 Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:31:30 -0500 Subject: [PATCH 6/9] moved includes --- .../iot/supported-os-enterprise-plus.md | 2 -- .../keyboard-filter/disable-all-blocked-key-combinations.md | 2 +- windows/configuration/keyboard-filter/index.md | 2 +- .../keyboardfilter-add-blocked-key-combinations.md | 2 +- .../configuration/keyboard-filter/keyboardfilter-key-names.md | 2 +- .../keyboardfilter-list-all-configured-key-combinations.md | 2 +- .../keyboard-filter/keyboardfilter-powershell-script-samples.md | 2 +- .../keyboard-filter/keyboardfilter-wmi-provider-reference.md | 2 +- windows/configuration/keyboard-filter/modify-global-settings.md | 2 +- .../keyboard-filter/predefined-key-combinations.md | 2 +- .../keyboard-filter/remove-key-combination-configurations.md | 2 +- windows/configuration/keyboard-filter/wekf-customkey.md | 2 +- windows/configuration/keyboard-filter/wekf-customkeyadd.md | 2 +- windows/configuration/keyboard-filter/wekf-customkeyremove.md | 2 +- windows/configuration/keyboard-filter/wekf-predefinedkey.md | 2 +- .../configuration/keyboard-filter/wekf-predefinedkeydisable.md | 2 +- .../configuration/keyboard-filter/wekf-predefinedkeyenable.md | 2 +- windows/configuration/keyboard-filter/wekf-scancode.md | 2 +- windows/configuration/keyboard-filter/wekf-scancodeadd.md | 2 +- windows/configuration/keyboard-filter/wekf-scancoderemove.md | 2 +- windows/configuration/keyboard-filter/wekf-settings.md | 2 +- 21 files changed, 20 insertions(+), 22 deletions(-) rename windows/configuration/keyboard-filter/includes-supported-os-enterprise-plus.md => includes/iot/supported-os-enterprise-plus.md (83%) diff --git a/windows/configuration/keyboard-filter/includes-supported-os-enterprise-plus.md b/includes/iot/supported-os-enterprise-plus.md similarity index 83% rename from windows/configuration/keyboard-filter/includes-supported-os-enterprise-plus.md rename to includes/iot/supported-os-enterprise-plus.md index 7e36da09ab..b6c086d649 100644 --- a/windows/configuration/keyboard-filter/includes-supported-os-enterprise-plus.md +++ b/includes/iot/supported-os-enterprise-plus.md @@ -1,8 +1,6 @@ --- author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot ms-topic: include ms.date: 09/30/2024 --- diff --git a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md index a64fb74c25..b03d30bccf 100644 --- a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md @@ -12,7 +12,7 @@ ms.topic: article # Disable all blocked key combinations -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] The following sample Windows PowerShell script uses the WMI providers to disable all blocked key combinations for Keyboard Filter by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. The key combination configurations are not removed, but Keyboard Filter stops blocking any keys. diff --git a/windows/configuration/keyboard-filter/index.md b/windows/configuration/keyboard-filter/index.md index 00e000de89..fd81f31046 100644 --- a/windows/configuration/keyboard-filter/index.md +++ b/windows/configuration/keyboard-filter/index.md @@ -11,7 +11,7 @@ ms.topic: article # Keyboard Filter -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] You can use Keyboard Filter to suppress undesirable key presses or key combinations. Normally, a customer can use certain Microsoft Windows key combinations like Ctrl+Alt+Delete or Ctrl+Shift+Tab to alter the operation of a device by locking the screen or using Task Manager to close a running application. This behavior might not be desirable if your device is intended for a dedicated purpose. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md index 16a6eb3de3..0a348ac153 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Add blocked key combinations -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to create three functions to configure Keyboard Filter so that Keyboard Filter blocks key combinations. It demonstrates several ways to use each function. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md index a3eb1ecb85..4cd9dca800 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md @@ -13,7 +13,7 @@ ms.topic: article --- # Keyboard Filter key names -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] You can configure Keyboard Filter to block keys or key combinations. A key combination consists of one or more modifier keys, separated by a plus sign (+), and either a key name or a key scan code. In addition to the keys listed in the following tables, you can use the predefined key combinations names as custom key combinations. However, we recommend using the predefined key settings when enabling or disabling predefined key combinations. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md index 5c88e94fd9..4eedce1bdc 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # List all configured key combinations -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to displays all key combination configurations for Keyboard Filter. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md index e68471a513..5429121992 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md @@ -13,7 +13,7 @@ ms.topic: article --- # Windows PowerShell script samples for Keyboard Filter -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] The list below describes sample Windows PowerShell scripts that demonstrate how to use the Windows Management Instrumentation (WMI) providers for Keyboard Filter. diff --git a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md index 733f298c76..75a555b395 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md @@ -13,7 +13,7 @@ ms.topic: article --- # Keyboard Filter WMI provider reference -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] Describes the Windows Management Instrumentation (WMI) provider classes that you use to configure Keyboard Filter during run time. diff --git a/windows/configuration/keyboard-filter/modify-global-settings.md b/windows/configuration/keyboard-filter/modify-global-settings.md index 049d85864a..139d0d170e 100644 --- a/windows/configuration/keyboard-filter/modify-global-settings.md +++ b/windows/configuration/keyboard-filter/modify-global-settings.md @@ -13,7 +13,7 @@ ms.topic: article --- # Modify global settings -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] The following sample Windows PowerShell scripts use the Windows Management Instrumentation (WMI) providers to modify global settings for Keyboard Filter. diff --git a/windows/configuration/keyboard-filter/predefined-key-combinations.md b/windows/configuration/keyboard-filter/predefined-key-combinations.md index 5eda454969..451c03a1c5 100644 --- a/windows/configuration/keyboard-filter/predefined-key-combinations.md +++ b/windows/configuration/keyboard-filter/predefined-key-combinations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Predefined key combinations -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] This topic lists a set of key combinations that are predefined by a keyboard filter. You can list the value of the WEKF_PredefinedKey.Id to get a complete list of key combinations defined by a keyboard filter. diff --git a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md index 698d0fe360..1bc023065a 100644 --- a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md +++ b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md @@ -13,7 +13,7 @@ ms.topic: article --- # Remove key combination configurations -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] The following sample Windows PowerShell script uses the Windows Management Instrumentation (WMI) providers for Keyboard Filter to create two functions to remove custom-defined key combination configurations from Keyboard Filter. It demonstrates several ways to use each function. diff --git a/windows/configuration/keyboard-filter/wekf-customkey.md b/windows/configuration/keyboard-filter/wekf-customkey.md index 7412c42e3d..5ff3078bcd 100644 --- a/windows/configuration/keyboard-filter/wekf-customkey.md +++ b/windows/configuration/keyboard-filter/wekf-customkey.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_CustomKey -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] Adds or removes custom-defined key combinations. diff --git a/windows/configuration/keyboard-filter/wekf-customkeyadd.md b/windows/configuration/keyboard-filter/wekf-customkeyadd.md index 9cdc091e06..66d2468ae0 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyadd.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyadd.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_CustomKey.Add -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] Creates a new custom key combination and enables Keyboard Filter to block the new key combination. diff --git a/windows/configuration/keyboard-filter/wekf-customkeyremove.md b/windows/configuration/keyboard-filter/wekf-customkeyremove.md index b84e8d90a7..1430acc8f9 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyremove.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyremove.md @@ -11,7 +11,7 @@ ms.subservice: iot --- # WEKF_CustomKey.Remove -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] Removes a custom key combination, causing Keyboard Filter to stop blocking the removed key combination. diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkey.md b/windows/configuration/keyboard-filter/wekf-predefinedkey.md index 7fdbbb67ff..117169f6c3 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkey.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkey.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] This class blocks or unblocks predefined key combinations, such as Ctrl+Alt+Delete. diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md index 68392c8635..ff0c74fa69 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey.Disable -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] Unblocks the specified predefined key combination. diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md index f9b2966bf0..7b551de1b3 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_PredefinedKey.Enable -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] This method blocks the specified predefined key combination. diff --git a/windows/configuration/keyboard-filter/wekf-scancode.md b/windows/configuration/keyboard-filter/wekf-scancode.md index 4238deebc4..91bd402293 100644 --- a/windows/configuration/keyboard-filter/wekf-scancode.md +++ b/windows/configuration/keyboard-filter/wekf-scancode.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] Blocks or unblocks key combinations by using the keyboard scan code, which is an integer number that is generated whenever a key is pressed or released. diff --git a/windows/configuration/keyboard-filter/wekf-scancodeadd.md b/windows/configuration/keyboard-filter/wekf-scancodeadd.md index 248ed944e6..da49f64456 100644 --- a/windows/configuration/keyboard-filter/wekf-scancodeadd.md +++ b/windows/configuration/keyboard-filter/wekf-scancodeadd.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode.Add -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] This method adds a new custom scan code combination and enables Keyboard Filter to block the new combination. diff --git a/windows/configuration/keyboard-filter/wekf-scancoderemove.md b/windows/configuration/keyboard-filter/wekf-scancoderemove.md index 2fe9b8aa4d..b787113408 100644 --- a/windows/configuration/keyboard-filter/wekf-scancoderemove.md +++ b/windows/configuration/keyboard-filter/wekf-scancoderemove.md @@ -13,7 +13,7 @@ ms.topic: article --- # WEKF_Scancode.Remove -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] This method removes a custom scan code key combination, causing Keyboard Filter to stop blocking the removed combination. diff --git a/windows/configuration/keyboard-filter/wekf-settings.md b/windows/configuration/keyboard-filter/wekf-settings.md index 0ba7c0ab7d..d2e4cde1f8 100644 --- a/windows/configuration/keyboard-filter/wekf-settings.md +++ b/windows/configuration/keyboard-filter/wekf-settings.md @@ -11,7 +11,7 @@ ms.topic: article # WEKF_Settings -[!INCLUDE [Supported Editions - Enterprise Plus](includes-supported-os-enterprise-plus.md)] +[!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] Enables or disables settings for Keyboard Filter. From 491a3850c4130f5cfdc2ed9c1caa25aea64b24ff Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 13 Jan 2025 14:01:34 -0500 Subject: [PATCH 7/9] metadata --- .../disable-all-blocked-key-combinations.md | 7 ++----- windows/configuration/keyboard-filter/index.md | 10 ++++------ ...keyboardfilter-add-blocked-key-combinations.md | 9 +++------ .../keyboard-filter/keyboardfilter-key-names.md | 10 +++------- ...filter-list-all-configured-key-combinations.md | 10 +++------- .../keyboardfilter-powershell-script-samples.md | 10 +++------- .../keyboardfilter-wmi-provider-reference.md | 10 +++------- .../keyboard-filter/modify-global-settings.md | 10 +++------- .../predefined-key-combinations.md | 10 +++------- .../remove-key-combination-configurations.md | 10 +++------- .../keyboard-filter/wekf-customkey.md | 15 ++++++--------- .../keyboard-filter/wekf-customkeyadd.md | 10 +++------- .../keyboard-filter/wekf-customkeyremove.md | 8 +++----- .../keyboard-filter/wekf-predefinedkey.md | 10 +++------- .../keyboard-filter/wekf-predefinedkeydisable.md | 10 +++------- .../keyboard-filter/wekf-predefinedkeyenable.md | 10 +++------- .../keyboard-filter/wekf-scancode.md | 12 ++++-------- .../keyboard-filter/wekf-scancodeadd.md | 10 +++------- .../keyboard-filter/wekf-scancoderemove.md | 10 +++------- .../keyboard-filter/wekf-settings.md | 6 ++---- 20 files changed, 63 insertions(+), 134 deletions(-) diff --git a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md index b03d30bccf..36e78231ef 100644 --- a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md @@ -1,13 +1,10 @@ --- title: Disable all blocked key combinations description: Disable all blocked key combinations -ms.assetid: 60327cc7-ef5b-4f26-8437-83b32711b6d8 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article +ms.date: 01/13/2025 +ms.topic: reference --- # Disable all blocked key combinations diff --git a/windows/configuration/keyboard-filter/index.md b/windows/configuration/keyboard-filter/index.md index fd81f31046..cb761c4814 100644 --- a/windows/configuration/keyboard-filter/index.md +++ b/windows/configuration/keyboard-filter/index.md @@ -1,12 +1,10 @@ --- title: Keyboard Filter description: Keyboard Filter -author: sydbruck -ms.author: sybruckm -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article +author: TerryWarwick +ms.author: twarwick +ms.date: 01/13/2025 +ms.topic: overview --- # Keyboard Filter diff --git a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md index 0a348ac153..acb297b422 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-add-blocked-key-combinations.md @@ -4,13 +4,10 @@ description: Add blocked key combinations ms.assetid: f51892fc-0262-4b25-b117-6e131b86fb68 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # Add blocked key combinations [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md index 4cd9dca800..39de2bc029 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-key-names.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-key-names.md @@ -1,16 +1,12 @@ --- title: Keyboard Filter key names description: Keyboard Filter key names -ms.assetid: 5f3772bb-fdd2-4816-9994-bd2523099400 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # Keyboard Filter key names [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md index 4eedce1bdc..cf3c45fed9 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md @@ -1,16 +1,12 @@ --- title: List all configured key combinations description: List all configured key combinations -ms.assetid: b5ffa47e-87ea-4df4-9291-f37f6b23683b author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # List all configured key combinations [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md index 5429121992..86dc5306fc 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md @@ -1,16 +1,12 @@ --- title: Windows PowerShell script samples for Keyboard Filter description: Windows PowerShell script samples for Keyboard Filter -ms.assetid: ba5dbfc3-05a6-44d7-aac9-1f9b328d0df7 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # Windows PowerShell script samples for Keyboard Filter [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md index 75a555b395..798cef5c0f 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-wmi-provider-reference.md @@ -1,16 +1,12 @@ --- title: Keyboard Filter WMI provider reference description: Keyboard Filter WMI provider reference -ms.assetid: d17428d9-47e3-4510-b2cf-d4b4883687c1 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # Keyboard Filter WMI provider reference [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/modify-global-settings.md b/windows/configuration/keyboard-filter/modify-global-settings.md index 139d0d170e..2b69a9de23 100644 --- a/windows/configuration/keyboard-filter/modify-global-settings.md +++ b/windows/configuration/keyboard-filter/modify-global-settings.md @@ -1,16 +1,12 @@ --- title: Modify global settings description: Modify global settings -ms.assetid: b1388f15-e3a4-4513-8721-8ba3ce19747a author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: how-to --- + # Modify global settings [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/predefined-key-combinations.md b/windows/configuration/keyboard-filter/predefined-key-combinations.md index 451c03a1c5..17df2fd3a5 100644 --- a/windows/configuration/keyboard-filter/predefined-key-combinations.md +++ b/windows/configuration/keyboard-filter/predefined-key-combinations.md @@ -1,16 +1,12 @@ --- title: Predefined key combinations description: Predefined key combinations -ms.assetid: 9fc86f03-6d9e-4899-a4b7-fa8ad7835c65 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # Predefined key combinations [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md index 1bc023065a..6cc57a6efd 100644 --- a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md +++ b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md @@ -1,16 +1,12 @@ --- title: Remove key combination configurations description: Remove key combination configurations -ms.assetid: 14f61d51-834b-4d15-8024-6728f0c8bc9c author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # Remove key combination configurations [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/wekf-customkey.md b/windows/configuration/keyboard-filter/wekf-customkey.md index 5ff3078bcd..cf923ed0e6 100644 --- a/windows/configuration/keyboard-filter/wekf-customkey.md +++ b/windows/configuration/keyboard-filter/wekf-customkey.md @@ -1,16 +1,13 @@ --- title: WEKF_CustomKey description: WEKF_CustomKey -ms.assetid: 7d67c0ce-844c-4534-96d4-2c7f21a69c8e author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + + # WEKF_CustomKey [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] @@ -53,9 +50,9 @@ The following tables list any methods and properties that belong to this class. ### Remarks -You can specify key combinations by including the modifier keys in the name. The most common modifier names are "Ctrl”, "Shift”, "Alt”, and "Win”. You cannot block a combination of non-modifier keys. For example, you can block a key combination of "Ctrl+Shift+F”, but you cannot block a key combination of "A+D”. +You can specify key combinations by including the modifier keys in the name. The most common modifier names are "Ctrl", "Shift", "Alt", and "Win". You cannot block a combination of non-modifier keys. For example, you can block a key combination of "Ctrl+Shift+F", but you cannot block a key combination of "A+D". -When you block a shift-modified key, you must enter the key as "Shift” + the unmodified key. For example, to block the % key on an English keyboard layout, you must specify the key as "Shift+5”. Attempting to block "%”, results in Keyboard Filter blocking "5” instead. +When you block a shift-modified key, you must enter the key as "Shift" + the unmodified key. For example, to block the % key on an English keyboard layout, you must specify the key as "Shift+5". Attempting to block "%", results in Keyboard Filter blocking "5" instead. When you specify the key combination to block, you must use the English names for the keys. For a list of the key names you can specify, see Keyboard Filter key names. diff --git a/windows/configuration/keyboard-filter/wekf-customkeyadd.md b/windows/configuration/keyboard-filter/wekf-customkeyadd.md index 66d2468ae0..303b38b6da 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyadd.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyadd.md @@ -1,16 +1,12 @@ --- title: WEKF_CustomKey.Add description: WEKF_CustomKey.Add -ms.assetid: 59040e1b-1706-476b-9d7c-2279b20c47b4 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # WEKF_CustomKey.Add [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/wekf-customkeyremove.md b/windows/configuration/keyboard-filter/wekf-customkeyremove.md index 1430acc8f9..b968ab2ccd 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyremove.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyremove.md @@ -1,14 +1,12 @@ --- title: WEKF_CustomKey.Remove description: WEKF_CustomKey.Remove -ms.assetid: 944d2987-5b2c-4c88-8199-dcec12d626b2 -ms.date: 11/12/2024 -ms.topic: article +ms.date: 01/13/2025 +ms.topic: reference author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot --- + # WEKF_CustomKey.Remove [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkey.md b/windows/configuration/keyboard-filter/wekf-predefinedkey.md index 117169f6c3..428aa6a210 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkey.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkey.md @@ -1,16 +1,12 @@ --- title: WEKF_PredefinedKey description: WEKF_PredefinedKey -ms.assetid: 2fc29e2b-1c76-437f-99b0-db13a3aeb1af author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # WEKF_PredefinedKey [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md index ff0c74fa69..9ab8d4c21b 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md @@ -1,16 +1,12 @@ --- title: WEKF_PredefinedKey.Disable description: WEKF_PredefinedKey.Disable -ms.assetid: 81a040b3-b845-4cb2-872f-68082b048316 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # WEKF_PredefinedKey.Disable [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md index 7b551de1b3..94bb6ddda0 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md @@ -1,16 +1,12 @@ --- title: WEKF_PredefinedKey.Enable description: WEKF_PredefinedKey.Enable -ms.assetid: 4ea8c6c4-3bf6-475f-b9e1-38e1a971eda5 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # WEKF_PredefinedKey.Enable [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/wekf-scancode.md b/windows/configuration/keyboard-filter/wekf-scancode.md index 91bd402293..1fad410df3 100644 --- a/windows/configuration/keyboard-filter/wekf-scancode.md +++ b/windows/configuration/keyboard-filter/wekf-scancode.md @@ -1,16 +1,12 @@ --- title: WEKF_Scancode description: WEKF_Scancode -ms.assetid: a71bcc26-5469-4018-b426-eae277d7716d author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # WEKF_Scancode [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] @@ -59,7 +55,7 @@ The following tables list any constructors, methods, fields, and properties that Scan codes are generated by the keyboard whenever a key is pressed. The same physical key will always generate the same scan code, regardless of which keyboard layout is currently being used by the system. -You can specify key combinations by including the modifier keys in the *Modifiers* parameter of the **Add** method or by modifying the **Modifiers** property. The most common modifier names are "Ctrl”, "Shift”, "Alt”, and "Win”. +You can specify key combinations by including the modifier keys in the *Modifiers* parameter of the **Add** method or by modifying the **Modifiers** property. The most common modifier names are "Ctrl", "Shift", "Alt", and "Win". ## Example diff --git a/windows/configuration/keyboard-filter/wekf-scancodeadd.md b/windows/configuration/keyboard-filter/wekf-scancodeadd.md index da49f64456..705ec45d58 100644 --- a/windows/configuration/keyboard-filter/wekf-scancodeadd.md +++ b/windows/configuration/keyboard-filter/wekf-scancodeadd.md @@ -1,16 +1,12 @@ --- title: WEKF_Scancode.Add description: WEKF_Scancode.Add -ms.assetid: cb5ea693-e871-4338-957a-f78f87a932ba author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # WEKF_Scancode.Add [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/wekf-scancoderemove.md b/windows/configuration/keyboard-filter/wekf-scancoderemove.md index b787113408..324834c26c 100644 --- a/windows/configuration/keyboard-filter/wekf-scancoderemove.md +++ b/windows/configuration/keyboard-filter/wekf-scancoderemove.md @@ -1,16 +1,12 @@ --- title: WEKF_Scancode.Remove description: WEKF_Scancode.Remove -ms.assetid: 86185501-edc3-4c1d-be0b-5621c64f9540 author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article - - +ms.date: 01/13/2025 +ms.topic: reference --- + # WEKF_Scancode.Remove [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] diff --git a/windows/configuration/keyboard-filter/wekf-settings.md b/windows/configuration/keyboard-filter/wekf-settings.md index d2e4cde1f8..58c388b7e5 100644 --- a/windows/configuration/keyboard-filter/wekf-settings.md +++ b/windows/configuration/keyboard-filter/wekf-settings.md @@ -3,10 +3,8 @@ title: WEKF_Settings description: WEKF_Settings author: TerryWarwick ms.author: twarwick -ms.service: windows-iot -ms.subservice: iot -ms.date: 11/12/2024 -ms.topic: article +ms.date: 01/13/2025 +ms.topic: reference --- # WEKF_Settings From 69a96a28e64b23b1a12726a7e7b2a8fa43b4453b Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 13 Jan 2025 15:05:20 -0500 Subject: [PATCH 8/9] Acrolinx --- .../disable-all-blocked-key-combinations.md | 12 +++++------ ...er-list-all-configured-key-combinations.md | 2 +- ...eyboardfilter-powershell-script-samples.md | 2 +- .../remove-key-combination-configurations.md | 4 ++-- .../keyboard-filter/wekf-customkey.md | 20 +++++-------------- .../keyboard-filter/wekf-customkeyadd.md | 14 ++----------- .../keyboard-filter/wekf-customkeyremove.md | 16 +++------------ .../keyboard-filter/wekf-predefinedkey.md | 19 ++++-------------- .../wekf-predefinedkeydisable.md | 11 +--------- .../wekf-predefinedkeyenable.md | 12 +---------- .../keyboard-filter/wekf-scancode.md | 18 ++++------------- .../keyboard-filter/wekf-scancodeadd.md | 14 ++----------- .../keyboard-filter/wekf-scancoderemove.md | 16 +++------------ .../keyboard-filter/wekf-settings.md | 20 +++++-------------- 14 files changed, 39 insertions(+), 141 deletions(-) diff --git a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md index 36e78231ef..c8e6da2064 100644 --- a/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md +++ b/windows/configuration/keyboard-filter/disable-all-blocked-key-combinations.md @@ -11,7 +11,7 @@ ms.topic: reference [!INCLUDE [supported-os-enterprise-plus](../../../includes/iot/supported-os-enterprise-plus.md)] -The following sample Windows PowerShell script uses the WMI providers to disable all blocked key combinations for Keyboard Filter by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. The key combination configurations are not removed, but Keyboard Filter stops blocking any keys. +The following sample Windows PowerShell script uses the WMI providers to disable all blocked key combinations for Keyboard Filter by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. The key combination configurations aren't removed, but Keyboard Filter stops blocking any keys. ## Disable-all-rules.ps1 @@ -69,10 +69,8 @@ Get-WMIObject -class WEKF_Scancode @CommonParams | } ``` -## Related topics +## Related articles -[Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) - -[Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) - -[Keyboard filter](index.md) +- [Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) +- [Keyboard filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) +- [Keyboard filter](index.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md index cf3c45fed9..2fa1f6d8e2 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-list-all-configured-key-combinations.md @@ -64,7 +64,7 @@ Get-WMIObject -class WEKF_Scancode @CommonParams | } ``` -## Related topics +## Related articles [Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) diff --git a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md index 86dc5306fc..8f8048582e 100644 --- a/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md +++ b/windows/configuration/keyboard-filter/keyboardfilter-powershell-script-samples.md @@ -21,7 +21,7 @@ The list below describes sample Windows PowerShell scripts that demonstrate how | [Modify global settings](modify-global-settings.md) | Demonstrates how to modify global settings for Keyboard Filter. | | [Remove key combination configurations](remove-key-combination-configurations.md) | Demonstrates how to remove a custom defined key combination configuration for Keyboard Filter. | -## Related topics +## Related articles [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) diff --git a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md index 6cc57a6efd..eadd760d93 100644 --- a/windows/configuration/keyboard-filter/remove-key-combination-configurations.md +++ b/windows/configuration/keyboard-filter/remove-key-combination-configurations.md @@ -17,7 +17,7 @@ The first function, **Remove-Custom-Key**, removes custom key combination config The second function, **Remove-Scancode**, removes custom scan code configurations. -You cannot remove the predefined key combination configurations for Keyboard Filter, but you can disable them. +You can't remove the predefined key combination configurations for Keyboard Filter, but you can disable them. ## Remove-rules.ps1 @@ -99,7 +99,7 @@ Remove-Custom-Key "%" Remove-Scancode "Ctrl" 37 ``` -## Related topics +## Related articles [Windows PowerShell script samples for keyboard filter](keyboardfilter-powershell-script-samples.md) diff --git a/windows/configuration/keyboard-filter/wekf-customkey.md b/windows/configuration/keyboard-filter/wekf-customkey.md index cf923ed0e6..d1869903ee 100644 --- a/windows/configuration/keyboard-filter/wekf-customkey.md +++ b/windows/configuration/keyboard-filter/wekf-customkey.md @@ -46,19 +46,19 @@ The following tables list any methods and properties that belong to this class. | Property | Data type | Qualifiers | Description | |----------|----------------|------------|--------------| | **Id** | string | [key] | The name of the custom key combination. | -| **Enabled** | Boolean | [read, write] | Indicates if the key is blocked or unblocked. This property can be one of the following values
- **true** Indicates that the key is blocked.
- **false** Indicates that the key is not blocked. | +| **Enabled** | Boolean | [read, write] | Indicates if the key is blocked or unblocked. This property can be one of the following values
- **true** Indicates that the key is blocked.
- **false** Indicates that the key isn't blocked. | ### Remarks -You can specify key combinations by including the modifier keys in the name. The most common modifier names are "Ctrl", "Shift", "Alt", and "Win". You cannot block a combination of non-modifier keys. For example, you can block a key combination of "Ctrl+Shift+F", but you cannot block a key combination of "A+D". +You can specify key combinations by including the modifier keys in the name. The most common modifier names are >Ctrl, >Shift, >Alt, and >Win. You can't block a combination of non-modifier keys. For example, you can block a key combination of >Ctrl+>Shift+>F, but you can't block a key combination of >A+>D. -When you block a shift-modified key, you must enter the key as "Shift" + the unmodified key. For example, to block the % key on an English keyboard layout, you must specify the key as "Shift+5". Attempting to block "%", results in Keyboard Filter blocking "5" instead. +When you block a >Shift-modified key, you must enter the key as >Shift + the unmodified key. For example, to block the >% key on an English keyboard layout, you must specify the key as >Shift+>5. Attempting to block >%, results in Keyboard Filter blocking >5 instead. When you specify the key combination to block, you must use the English names for the keys. For a list of the key names you can specify, see Keyboard Filter key names. ## Example -The following code demonstrates how to add or enable a custom key combination that Keyboard Filter will block by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. This example modifies the properties directly and does not call any of the methods defined in **WEKF_CustomKey**. +The following code demonstrates how to add or enable a custom key combination that Keyboard Filter will block by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. This example modifies the properties directly and doesn't call any of the methods defined in **WEKF_CustomKey**. ```powershell <# @@ -123,17 +123,7 @@ Enable-Custom-Key "Numpad0" Enable-Custom-Key "Shift+Numpad1" ``` -## Requirements - -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics +## Related articles [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) diff --git a/windows/configuration/keyboard-filter/wekf-customkeyadd.md b/windows/configuration/keyboard-filter/wekf-customkeyadd.md index 303b38b6da..cd56a93da5 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyadd.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyadd.md @@ -33,7 +33,7 @@ Returns an HRESULT value that indicates a [WMI Non-Error Constant](/windows/win3 **WEKF_CustomKey.Add** creates a new **WEKF_CustomKey** object and sets the **Enabled** property of the new object to **true**, and the **Id** property to *CustomKey*. -If a **WEKF_CustomKey** object already exists with the **Id** property equal to *CustomKey*, then **WEKF_CustomKey.Add** returns an error code and does not create a new object or modify any properties of the existing object. If the existing **WEKF_CustomKey** object has the **Enabled** property set to **false**, Keyboard Filter does not block the custom key combination. +If a **WEKF_CustomKey** object already exists with the **Id** property equal to *CustomKey*, then **WEKF_CustomKey.Add** returns an error code and doesn't create a new object or modify any properties of the existing object. If the existing **WEKF_CustomKey** object has the **Enabled** property set to **false**, Keyboard Filter does not block the custom key combination. ## Example @@ -90,17 +90,7 @@ foreach ($objCustomKeyItem in $objCustomKeyList) { } ``` -## Requirements - -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics +## Related articles - [WEKF_CustomKey](wekf-customkey.md) - [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-customkeyremove.md b/windows/configuration/keyboard-filter/wekf-customkeyremove.md index b968ab2ccd..5fdceb9f5a 100644 --- a/windows/configuration/keyboard-filter/wekf-customkeyremove.md +++ b/windows/configuration/keyboard-filter/wekf-customkeyremove.md @@ -31,13 +31,13 @@ Returns an HRESULT value that indicates [WMI status](/windows/win32/wmisdk/wmi-n ## Remarks -**WEKF_CustomKey.Remove** removes an existing **WEKF_CustomKey** object. If the object does not exist, **WEKF_CustomKey.Remove** returns an error with the value 0x8007007B. +**WEKF_CustomKey.Remove** removes an existing **WEKF_CustomKey** object. If the object doesn't exist, **WEKF_CustomKey.Remove** returns an error with the value 0x8007007B. -Because this method is static, you cannot call it on an object instance, but must instead call it at the class level. +Because this method is static, you can't call it on an object instance, but must instead call it at the class level. ## Example -The following code demonstrates how to remove a custom key from Keyboard Filter so it is no longer blocked by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. +The following code demonstrates how to remove a custom key from Keyboard Filter so it's no longer blocked by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. ```powershell $COMPUTER = "localhost" @@ -82,16 +82,6 @@ foreach ($objCustomKey in $objDisabledCustomKeys) { } ``` -## Requirements - -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - ## Related topics - [WEKF_CustomKey](wekf-customkey.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkey.md b/windows/configuration/keyboard-filter/wekf-predefinedkey.md index 428aa6a210..d81f72d801 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkey.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkey.md @@ -45,7 +45,7 @@ The following tables list any constructors, methods, fields, and properties that | Property | Data type | Qualifiers | Description | |:------------|:----------|:--------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Id** | string | [key] | The name of the predefined key combination. | -| **Enabled** | Boolean | [read, write] | Indicates whether the key is blocked or unblocked. To indicate that the key is blocked, specify **true**. To indicate that the key is not blocked, specify **false**. | +| **Enabled** | Boolean | [read, write] | Indicates whether the key is blocked or unblocked. To indicate that the key is blocked, specify **true**. To indicate that the key isn't blocked, specify **false**. | ### Remarks @@ -108,18 +108,7 @@ Enable-Predefined-Key "Ctrl+Alt+Delete" Enable-Predefined-Key "Ctrl+Esc" ``` -## Requirements +## Related articles -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics - -[Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) - -[Keyboard Filter](index.md) +- [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) +- [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md index 9ab8d4c21b..8b954dee19 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeydisable.md @@ -29,17 +29,8 @@ Unblocks the specified predefined key combination. Returns an HRESULT value that indicates [WMI Non-error constant](/windows/win32/wmisdk/wmi-non-error-constants) or a [WMI error constant](/windows/win32/wmisdk/wmi-error-constants). -## Requirements -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics +## Related articles - [WEKF_PredefinedKey](wekf-predefinedkey.md) - [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md index 94bb6ddda0..a96fbd4365 100644 --- a/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md +++ b/windows/configuration/keyboard-filter/wekf-predefinedkeyenable.md @@ -29,17 +29,7 @@ This method blocks the specified predefined key combination. Returns an HRESULT value that indicates [WMI non-error constant](/windows/win32/wmisdk/wmi-non-error-constants) or a [WMI error constant](/windows/win32/wmisdk/wmi-error-constants). -## Requirements - -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics +## Related articles - [WEKF_PredefinedKey](wekf-predefinedkey.md) - [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancode.md b/windows/configuration/keyboard-filter/wekf-scancode.md index 1fad410df3..d24df9ed10 100644 --- a/windows/configuration/keyboard-filter/wekf-scancode.md +++ b/windows/configuration/keyboard-filter/wekf-scancode.md @@ -49,17 +49,17 @@ The following tables list any constructors, methods, fields, and properties that |----------|----------------|------------|-------------| | **Modifiers** | string | [key] | The modifier keys that are part of the key combination to block. | | **Scancode** | uint16 | [key] | The scan code part of the key combination to block. | -| **Enabled** | Boolean | [read, write] | Indicates whether the scan code is blocked or unblocked. This property can be one of the following values:
- **true** Indicates that the scan code is blocked.
- **false** Indicates that the scan code is not blocked. | +| **Enabled** | Boolean | [read, write] | Indicates whether the scan code is blocked or unblocked. This property can be one of the following values:
- **true** Indicates that the scan code is blocked.
- **false** Indicates that the scan code isn't blocked. | ### Remarks Scan codes are generated by the keyboard whenever a key is pressed. The same physical key will always generate the same scan code, regardless of which keyboard layout is currently being used by the system. -You can specify key combinations by including the modifier keys in the *Modifiers* parameter of the **Add** method or by modifying the **Modifiers** property. The most common modifier names are "Ctrl", "Shift", "Alt", and "Win". +You can specify key combinations by including the modifier keys in the *Modifiers* parameter of the **Add** method or by modifying the **Modifiers** property. The most common modifier names are >Ctrl, >Shift, >Alt, and >Win. ## Example -The following code demonstrates how to add or enable a keyboard scan code that Keyboard Filter will block by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. This example modifies the properties directly, and does not call any of the methods defined in **WEKF_Scancode**. +The following code demonstrates how to add or enable a keyboard scan code that Keyboard Filter will block by using the Windows Management Instrumentation (WMI) providers for Keyboard Filter. This example modifies the properties directly, and doesn't call any of the methods defined in **WEKF_Scancode**. ```powershell <# @@ -121,17 +121,7 @@ function Enable-Scancode($Modifiers, [int]$Code) { Enable-Scancode "Ctrl" 37 ``` -## Requirements - -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics +## Related articles [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancodeadd.md b/windows/configuration/keyboard-filter/wekf-scancodeadd.md index 705ec45d58..02ae02c4f1 100644 --- a/windows/configuration/keyboard-filter/wekf-scancodeadd.md +++ b/windows/configuration/keyboard-filter/wekf-scancodeadd.md @@ -36,19 +36,9 @@ Returns an HRESULT value that indicates [WMI non-error constant](/windows/win32/ **WEKF_Scancode.Add** creates a new **WEKF_Scancode** object and sets the **Enabled** property of the new object to **true**. -If a **WEKF_Scancode** object already exists with same *Modifiers* and *Scancode* properties, then **WEKF_Scancode.Add** returns an error code and does not create a new object or modify any properties of the existing object. If the existing **WEKF_Scancode** object has the **Enabled** property set to **false**, Keyboard Filter does not block the scan code. +If a **WEKF_Scancode** object already exists with same *Modifiers* and *Scancode* properties, then **WEKF_Scancode.Add** returns an error code and doesn't create a new object or modify any properties of the existing object. If the existing **WEKF_Scancode** object has the **Enabled** property set to **false**, Keyboard Filter does not block the scan code. -## Requirements - -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics +## Related articles - [WEKF_Scancode](wekf-scancode.md) - [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-scancoderemove.md b/windows/configuration/keyboard-filter/wekf-scancoderemove.md index 324834c26c..ae761e5b61 100644 --- a/windows/configuration/keyboard-filter/wekf-scancoderemove.md +++ b/windows/configuration/keyboard-filter/wekf-scancoderemove.md @@ -34,21 +34,11 @@ Returns an HRESULT value that indicates [WMI non-error constant](/windows/win32/ ## Remarks -**WEKF_Scancode.Remove** removes an existing **WEKF_Scancode** object. If the object does not exist, **WEKF_Scancode.Remove** returns an error with the value 0x8007007B. +**WEKF_Scancode.Remove** removes an existing **WEKF_Scancode** object. If the object doesn't exist, **WEKF_Scancode.Remove** returns an error with the value 0x8007007B. -Because this method is static, you cannot call it on an object instance, but must instead call it at the class level. +Because this method is static, you can't call it on an object instance, but must instead call it at the class level. -## Requirements - -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics +## Related articles - [WEKF_Scancode](wekf-scancode.md) - [Keyboard Filter](index.md) diff --git a/windows/configuration/keyboard-filter/wekf-settings.md b/windows/configuration/keyboard-filter/wekf-settings.md index 58c388b7e5..0aa64a5a7d 100644 --- a/windows/configuration/keyboard-filter/wekf-settings.md +++ b/windows/configuration/keyboard-filter/wekf-settings.md @@ -31,7 +31,7 @@ The following tables list any methods and properties that belong to this class. | Property | Data type | Qualifiers | Description | |----------|----------------|------------|-------------| | **Name** | string | [key] | Indicates the name of the Keyboard Filter setting that this object represents. See the Remarks section for a list of valid setting names. | -| **Value** | string | [read, write] | Represents the value of the **Name** setting. The value is not case-sensitive.
See the Remarks section for a list of valid values for each setting. | +| **Value** | string | [read, write] | Represents the value of the **Name** setting. The value isn't case-sensitive.
See the Remarks section for a list of valid values for each setting. | ### Remarks @@ -44,18 +44,18 @@ The following table lists all settings available for Keyboard Filter. | Setting name | Description | |--------------|-------------| | **DisableKeyboardFilterForAdministrators** | This setting specifies whether Keyboard Filter is enabled or disabled for administrator accounts. Set to **true** to disable Keyboard Filter for administrator accounts; otherwise, set to **false**. Set to **true** by default. | -| **ForceOffAccessibility** | This setting specifies whether Keyboard Filter blocks users from enabling Ease of Access features. Set to **true** to force disabling the Ease of Access features. Set to **false** to allow enabling the Ease of Access features. Set to **false** by default.
Changing this setting to **false** does not automatically enable Ease of Access features; you must manually enable them. | +| **ForceOffAccessibility** | This setting specifies whether Keyboard Filter blocks users from enabling Ease of Access features. Set to **true** to force disabling the Ease of Access features. Set to **false** to allow enabling the Ease of Access features. Set to **false** by default.
Changing this setting to **false** doesn't automatically enable Ease of Access features; you must manually enable them. | | **BreakoutKeyScanCode** | This setting specifies the scan code of the key that enables a user to break out of an account that is locked down with Keyboard Filter. A user can press this key consecutively five times to switch to the Welcome screen.
By default, the BreakoutKeyScanCode is set to the scan code for the left Windows logo key. | One instance of the **WEKF_Settings** class exists for each valid setting. Changes to the **DisableKeyboardFilterForAdministrator** setting are applied when an administrator account signs in, and applies to all applications run during the user session. If a user without an administrator account runs an application as an administrator, Keyboard Filter is still enabled, regardless of the **DisableKeyboardFilterForAdministrator** setting. -Changes to the **BreakoutKeyScanCode** setting do not take effect until you restart the device. +Changes to the **BreakoutKeyScanCode** setting don't take effect until you restart the device. If the **BreakoutKeyScanCode** is set to the scan code for either the left Windows logo key or the right Windows logo key, both Windows Logo keys will work as the breakout key. -The **BreakoutKeyScanCode** setting only applies to accounts where Keyboard Filter is active. If the scan code is set to a value that does not map to any key, such as 0 (zero), then you must use another method to access the Welcome screen if you need to service the device, such as remotely connecting, or restarting the device if automatic sign-in is not enabled. +The **BreakoutKeyScanCode** setting only applies to accounts where Keyboard Filter is active. If the scan code is set to a value that doesn't map to any key, such as 0 (zero), then you must use another method to access the Welcome screen if you need to service the device, such as remotely connecting, or restarting the device if automatic sign-in isn't enabled. > [!IMPORTANT] > On some devices, if the breakout key is pressed too rapidly, the key presses may not register. We recommend that you include a slight pause between each breakout key press. @@ -90,17 +90,7 @@ $BreakoutMode.value = $HomeKeyScanCode $BreakoutMode.put() ``` -## Requirements - -| Windows Edition | Supported | -|:-----------------------|:---------:| -| Windows Home | No | -| Windows Pro | No | -| Windows Enterprise | Yes | -| Windows Education | Yes | -| Windows IoT Enterprise | Yes | - -## Related topics +## Related articles [Keyboard Filter WMI provider reference](keyboardfilter-wmi-provider-reference.md) From ca8b15f5c7c8728bd351304caf93a3404051151e Mon Sep 17 00:00:00 2001 From: Paolo Matarazzo <74918781+paolomatarazzo@users.noreply.github.com> Date: Mon, 13 Jan 2025 15:11:29 -0500 Subject: [PATCH 9/9] Acrolinx --- windows/configuration/keyboard-filter/wekf-scancodeadd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/configuration/keyboard-filter/wekf-scancodeadd.md b/windows/configuration/keyboard-filter/wekf-scancodeadd.md index 02ae02c4f1..1174273038 100644 --- a/windows/configuration/keyboard-filter/wekf-scancodeadd.md +++ b/windows/configuration/keyboard-filter/wekf-scancodeadd.md @@ -36,7 +36,7 @@ Returns an HRESULT value that indicates [WMI non-error constant](/windows/win32/ **WEKF_Scancode.Add** creates a new **WEKF_Scancode** object and sets the **Enabled** property of the new object to **true**. -If a **WEKF_Scancode** object already exists with same *Modifiers* and *Scancode* properties, then **WEKF_Scancode.Add** returns an error code and doesn't create a new object or modify any properties of the existing object. If the existing **WEKF_Scancode** object has the **Enabled** property set to **false**, Keyboard Filter does not block the scan code. +If a **WEKF_Scancode** object already exists with same *Modifiers* and *Scancode* properties, then **WEKF_Scancode.Add** returns an error code and doesn't create a new object or modify any properties of the existing object. If the existing **WEKF_Scancode** object has the **Enabled** property set to **false**, Keyboard Filter doesn't block the scan code. ## Related articles