ブレイクアウトキーは、通常運用時からメンテナンスを実施したい時に管理者ユーザーでログオンし直すためログオン画面に遷移するのに必要となります。通常であればログオフすればよいのですが、カスタムアプリケーションなどでログオフ機能を保有していない場合にはこのブレイクアウトキーを設定することによりログオフが可能になります(リスト4)。
function Set-BreakoutKey([String] $ScanCode)
{
	$Setting = Get-KeyboardFilterSetting("BreakoutKeyScanCode")
	if ($Setting)
	{
		if ($ScanCode)
		{
			$Setting.Value = $ScanCode
			$Setting.Put() | Out-Null;
		}
		else
		{
			Write-Error "BreakoutKeyScanCode cannot be set to null";
		}
    }
	else
	{
		Write-Error "Unable to find BreakoutKeyScanCode setting";
	}
}
Set-BreakoutKey "71"
リスト4の例ではスキャンキーコードの71(Homeキー)をブレイクアウトキーとして設定をしています。この設定には仮想キーコードではなく実際のスキャンキーコードを入力する必要があります。特殊なスキャンキーコードを発行できる機器であればそのコードを指定することもできます。
最後に無効にするキーを指定します(リスト5)。
function Block-PredefinedKey($Id)
{
	$predefined = Get-WmiObject -class WEKF_PredefinedKey -namespace "root\standardcimv2\embedded" |
	where {
		$_.Id -eq "$Id"
	};
	if ($predefined)
	{
		$predefined.Enabled = 1;
		$predefined.Put() | Out-Null;
	}
	else
	{
		Write-Error "$Id is not a valid predefined key"
	}
}
Block-PredefinedKey "Windows"
Block-PredefinedKey "Ctrl+Alt+Del"
…
制限したいキーはあらかじめ定義されているキーネームを利用して指定する必要があります。Keyboard Filterで利用するキーネームは下記に掲載されています。
これらのように、Shell LauncherとKeyboard Filterを利用することで特定用途向けの機器で意図しない操作を制限することができます。
次回は、2018年10月にリリースされた、Windows10 IoT Enterprise 2019 LTSCのアップデートについて解説します。
Windows 10 IoTロックダウン機能の個別解説:Unified Write Filter
組み込み機器に必要なWindows 10 IoT Enterpriseの“ロックダウン機能”とは
組み込み機器のWindows 7からWindows 10への移行で考慮すべき互換性問題
組み込み機器でもサポート終了するWindows 7、Windows 10世代は何を使うべきか
マイクロソフト「Azure IoT」の強みはやはり「Windows 10 IoT」にあり
組み込み機器に「Windows 10 IoT」を導入するメリットは何か
いまだから知っておきたい! XP EmbeddedからStandard 7への移行ポイント【前編】
いまだから知っておきたい! XP EmbeddedからStandard 7への移行ポイント【後編】
Windows Embedded Standard 7 SP1でアップデートされた機能
ついに登場! Windows Embedded Standard 7Copyright © ITmedia, Inc. All Rights Reserved.
組み込み開発の記事ランキング
コーナーリンク
よく読まれている編集記者コラム