ブレイクアウトキーは、通常運用時からメンテナンスを実施したい時に管理者ユーザーでログオンし直すためログオン画面に遷移するのに必要となります。通常であればログオフすればよいのですが、カスタムアプリケーションなどでログオフ機能を保有していない場合にはこのブレイクアウトキーを設定することによりログオフが可能になります(リスト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のアップデートについて解説します。
Copyright © ITmedia, Inc. All Rights Reserved.