検索
ニュース

Windows 10 IoTロックダウン機能の個別解説:Shell LauncherとKeyboard Filter待ったなし!組み込み機器のWindows 10 IoT移行(5)(2/3 ページ)

2020年10月13日にサポートが終了する「Windows Embedded Standard 7」から最新の「Windows 10」世代への移行について解説する本連載。第5回は、ロックダウン機能に用いられる各機能のうち、Shell LauncherとKeyboard Filterについて説明する。

Share
Tweet
LINE
Hatena

Keyboard Filterの機能

 キーボードフィルターはキーボードの入力を制限します。各種ショートカットキーの組み合わせの抑止やWindowsキーの入力など、特定用途向けの機器で予期しない動作を抑止するために利用します。

Keyboard Filterを有効にする

 Keyboard Filterを有効にするためにはコントロールパネルの[プログラムと機能]−[Windowsの機能の有効化または無効化]を開き[デバイスのロックダウン]−[キーボードフィルター]を有効にするか、DISMコマンドによって有効にすることができます(図3)。

図3
図3 コントロールパネルから[デバイスのロックダウン]−[キーボードフィルター]を有効にする

DISMコマンド
dism /online /enable-feature /featureName:Client-KeyboardFilter /NoRestart

Keyboard Filterを設定する

 Keyboard Filterの設定はWindows Management Instrumentation(WMI)のKeyboard Filter WMI providerを利用して設定します。

 キーボードフィルターの設定は大きく分けて以下の手順で行います。

  • 管理者(Administrators)はフィルター対象にしない
  • アクセシビリティー関連(簡単操作)のキーを無効にする
  • ブレイクアウトキーを有効にする
  • 無効にするキーコンビネーションを指定する

管理者(Administrators)はフィルター対象から外す

 本記事の冒頭にあるように、通常運用時はキーボードによる入力を制限し意図しない動作をさせないようにKeyboard Filterを設定します。しかし、メンテナンスが必要になった時に管理者ユーザーでログオンしてもキーボードフィルターによってキー入力が制限されているのであれば十分なメンテナンス作業が行えません。このためKeyboard Filterでは管理者グループ(Administrators)をフィルター対象から除外することができます(リスト2)。

function Set-DisableKeyboardFilterForAdministrators([Bool] $Value)
{
	$Setting = Get-KeyboardFilterSetting("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 $true
リスト2 管理者グループ(Administrators)をフィルター対象から除外する設定の例

アクセシビリティー関連(簡単操作)を無効にする

 Windows 10には簡単操作と呼ばれる補助機能があります。これらを無効にするのもKeyboard Filterの役割になります(リスト3)。

function Set-ForceOffAccessibility([Bool] $Value)
{
	$Setting = Get-KeyboardFilterSetting("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 $true
リスト3 簡単操作を無効化する設定の例

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る