ラボ 2: デバイスのロックダウン機能
ラボ 1a および 1b では、OS を参照デバイスにインストールし、監査モードでカスタマイズを行いました。 このラボでは、Windows に組み込まれているデバイスのロックダウン機能を使用してデバイスをロック ダウンするいくつかの方法について説明します。 デバイスのロックダウン機能は、特定の順序で一覧表示されません。 構築するデバイスに応じて、有効にできる機能 (すべて、一部、またはすべて不可) が異なります。
Note
このラボはオプションです。 このラボで説明されている機能を有効にしなくても、IoT Enterprise デバイスを構築できます。 これらの機能のいずれも実装していない場合は、ラボ 3 に進むことができます。
これらの手順を完全に自動化したアプローチについては、Windows IoT Enterprise 展開フレームワークの使用を検討してください。
前提条件
ラボ 1a の完了: 基本イメージの作成
キーボード フィルター
キーボード フィルターを使用すると、望ましくないキーの押下やキーの組み合わせを抑制できる制御が有効になります。 通常、顧客は、Ctrl + Alt + Delete、Ctrl + Shift + Tab、Alt + F4 などといった特定のキーの組み合わせを使用して、デバイスの操作を変更できます。キーボード フィルターを使用すると、ユーザーがこれらのキーの組み合わせを使用できなくなります。これは、デバイスが専用の目的で使用される場合に役立ちます。
キーボードフィルター機能は、物理キーボード、Windows スクリーン キーボード、およびタッチ キーボードで動作します。 また、キーボード フィルターは、動的なレイアウト変更も検出し、キーボードでの抑制されたキーの位置が変更された場合でも、キーを正しく抑制し続けます。 このシナリオの例としては、あるの言語セットから別の言語セットへの切り替えがあります。
キーボード フィルターのキーは、レジストリの HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Embedded\KeyboardFilter に保存されます。
キーボード フィルターを有効にする
キーボード フィルターを有効にする方法はいくつかありますが、その方法の 1 つについて説明します。 詳細については、「キーボード フィルター」をご覧ください。
管理コマンド プロンプトから次のコマンドを実行して、キーボード フィルター機能を有効にします。
Dism /online /enable-feature /featurename:Client-DeviceLockdown /featurename:Client-KeyboardFilter
参照デバイスを再起動するように求められますので、「Y」を入力して再起動します。 デバイスが監査モードで再起動します。
キーボード フィルターを有効にしたら、「キーボード フィルター用 PowerShell スクリプト サンプル」でキーの組み合わせをブロックする方法を確認してください。
このラボでは、Ctrl + Alt + Del キーをブロックするデモを行います。 管理 PowerShell コマンド ウィンドウで、以下のコマンドをコピーして貼り付けます。
$key = "Ctrl+Alt+Del" $setkey = Get-WMIObject -class WEKF_PredefinedKey –computer localhost –namespace root\standardcimv2\embedded | where {$_.Id -eq "$key"}; $setkey.Id = $key $setkey.Enabled = 1; $setkey.Put() | Out-Null;
参照デバイスを再起動し、Ctrl + Alt + DEL キーがブロックされているのを確認します。
統合書き込みフィルター (UWF)
統合書き込みフィルター (UWF) は、ドライブへの書き込み (アプリのインストール、設定の変更、データの保存) を遮断し仮想オーバーレイにリダイレクトすることで、デバイスの構成を保護します。 統合書き込みフィルターが無効になるまで保持するように構成されていない限り、このオーバーレイは再起動によって自動的に削除されます。
UWF を有効にする
管理コマンド プロンプトから次のコマンドを実行して、統合書き込みフィルター機能を有効にします。
Dism /online /enable-feature /featureName:Client-DeviceLockdown /featureName:Client-UnifiedWriteFilter
参照デバイスを再起動する
オーバーレイと保護の構成と有効化はスクリプトを使用して行うのが最善ですが、このラボではコマンド ラインを使用して構成します。
サンプル スクリプトを含む UWF の詳細については、「統合書き込みフィルター (UWF)」をご覧ください。
管理コマンド プロンプトで、次のコマンドを実行します。
uwfmgr volume protect c: uwfmgr filter enable
参照デバイスを再起動する
管理コマンド プロンプトで、UWF が実行されていることを確認します。 ファイラーの状態がオンになっているはずです。
uwfmgr.exe get-config
これですべての書き込みが RAM オーバーレイにリダイレクトされるようになり、参照デバイスが再起動されたときに破棄されます。
Windows Media Player Legacy (アプリ)のオプション機能を削除してみてください。
Dism /online /Disable-Feature /FeatureName:"WindowsMediaPlayer"
アプリが削除されていることが確認できますが、デバイスを再起動すると、アプリは復活します。
統合書き込みフィルターを無効にするには、次のコマンドを実行し、デバイスを再起動します。
uwfmgr filter disable
UWF が無効になっていることを確認します。 ファイラーの状態がオフになっているはずです。
uwfmgr.exe get-config
Note
統合書き込みフィルターを使用する場合は、オペレーティング システム製品のアクティブ化を考慮する必要があります。 製品のアクティブ化は、統合書き込みフィルターを無効にした状態で行う必要があります。 また、イメージを他のデバイスに複製する場合、イメージをキャプチャする前に、イメージが Sysprep 状態でフィルターが無効になっている必要があります。
ブランド化されていないブート
ブランド化されていないブートでは、次のことができます。
- Windows の起動時または再開時に表示される Windows 要素を抑制します。
- Windows で回復できないエラーが発生したときにクラッシュ画面を抑制します。
ブランドではないブートを有効にする
管理コマンド プロンプトから次のコマンドを実行して、ブランドではないブート機能を有効にします。
Dism /online /enable-feature /featureName:Client-DeviceLockdown Dism /online /enable-feature /FeatureName:Client-EmbeddedBootExp
参照デバイスを再起動する
BCDEdit を使用して、実行時にブランドではないブート設定を構成する
次の方法で、管理コマンド プロンプトからブランドではないブートをカスタマイズできます。
起動時に F8 キーを無効にして、[高度なスタートアップ オプション] メニューにアクセスできないようにします。
bcdedit.exe -set {globalsettings} advancedoptions false
起動時に F10 キーを無効にして、[高度なスタートアップ オプション] メニューにアクセスできないようにします。
bcdedit.exe -set {globalsettings} optionsedit false
起動時にすべての Windows UI 要素 (ロゴ、状態インジケーター、およびステータス メッセージ) を非表示します。
bcdedit.exe -set {globalsettings} bootuxdisabled on
参照デバイスを再起動し、起動時に Windows UI 要素が抑制されていることを確認します。
Note
たとえば、bcdboot を使用して BCD 情報を再構築する場合はいつでも、上記のコマンドを再び実行する必要があります。
カスタム ログオン
カスタム ログオン機能を使用して、[ようこそ] 画面とシャットダウン画面に関連する Windows の UI 要素を非表示にすることができます。 たとえば、"ようこそ" 画面の UI のすべての要素を非表示にして、カスタムのログオン UI を指定することができます。 また、シャットダウン前にアプリケーションの終了を OS が待機する間、Blocked Shutdown Resolver (BSDR) の画面を非表示にして自動的にアプリケーションを終了することもできます。 詳細については、「カスタム ログオン」をご覧ください。
Note
カスタム ログオン機能は、空白または評価プロダクト キーを使用しているイメージでは機能しません。 以下のコマンドで行われた変更を確認するには、有効なプロダクト キーを使用する必要があります。
管理コマンド プロンプトから次のコマンドを実行して、カスタム ログオン機能を有効にします。
Dism /online /enable-feature /featurename:Client-DeviceLockdown /featurename:Client-EmbeddedLogon
再起動を求めるメッセージが表示されたら、[いいえ] を選択します。
次のレジストリ エントリを変更します。 上書きを求めるメッセージが表示されたら、[はい] を選択します。
- このコマンドは、ログオン時のブランド化情報の表示を制御するレジストリの BrandingNeutral 値を設定します。
Reg add "HKLM\SOFTWARE\Microsoft\Windows Embedded\EmbeddedLogon" /v BrandingNeutral /t REG_DWORD /d 1
- このコマンドは、自動ログオン ユーザー インターフェイスの表示を制御するレジストリの HideAutoLogonUI 値を設定します。
Reg add "HKLM\SOFTWARE\Microsoft\Windows Embedded\EmbeddedLogon" /v HideAutoLogonUI /t REG_DWORD /d 1
- このコマンドは、レジストリの HideFirstLogonAnimation 値を設定します。この値は、最初のログオン アニメーションの表示を制御します。
Reg add "HKLM\SOFTWARE\Microsoft\Windows Embedded\EmbeddedLogon" /v HideFirstLogonAnimation /t REG_DWORD /d 1
- このコマンドは、レジストリの AnimationDisabled 値を設定します。この値は、ログオン UI アニメーションを無効にするかどうかを制御します。
Reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" /v AnimationDisabled /t REG_DWORD /d 1
- このコマンドは、ロック画面を表示するかどうかを制御するレジストリの NoLockScreen 値を設定します。
Reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Personalization" /v NoLockScreen /t REG_DWORD /d 1
- このコマンドは、レジストリの UIVerbosityLevel 値を設定します。この値は、ユーザー インターフェイスの詳細レベルを制御します。
Reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v UIVerbosityLevel /t REG_DWORD /d 1
参照デバイスを再起動します。 "ようこそ" 画面とシャットダウン画面に関連する Windows UI 要素が表示されなくなります。
次のステップ
ロックダウン機能の有効化が完了しました。 グループ ポリシーを使用すると、デバイスのユーザー エクスペリエンスをさらにカスタマイズできます。 ラボ 3 では、ポリシー設定を構成する方法について説明します。