脱!公務員ブログ

元地方公務員(市役所職員)のSEが、自身の体験を元に公務員の実態や役立つ知識や経験談、IT関連の技術的な情報、美味しいお店の情報、趣味(野球、音楽、ゲーム、麻雀)に関すること、私自身の波乱に満ちた人生経験について発信します。記事を読んだ後は少し知識が増えて、笑顔になれる(ネタ要素満載)、そんなブログですので是非お立ち寄り下さい♪

VMware HorizonでUSBテンキー入力がおかしい時の対処法

本記事は、VMware HorizonでVDI利用時にUSBテンキー入力がおかしくなってしまう事象の対処法について記載しています。

数年前に発生した事象ですが、備忘録及び同様の事象に遭遇した方の助けになればと思い記事を投稿します。

私は当時、自治体で情報システム部門の職員として働いており、日本年金機構の情報漏洩を発端として、国から各自治体に指令が下っていたセキュリティ強靭化に取り組んでいた状況でした。

その中のセキュリティ対策の一つとして、LGWAN系・インターネット系・マイナンバー系の3つのネットワークに分離を行うことが定められています。

このうち、マイナンバー系としてVMware HorizonによるVDI環境を構築し、検証作業を進めているうちに判明した事象です。

 

PC

システム構成

VMware Horizon 7

VMware Horizon Client 4.4.0

仮想マシンのOS:Windows7,10

※リンククローン方式

事象概要

VMware Horizon ClientからVDIに接続し、クライアントPCからUSBテンキーで数値を入力すると正常に処理されない

事象発生までの流れ

当時はVDIへの過渡期であったため、環境構築作業自体も手探りで進めており、大変苦労しました・・・

悪戦苦闘しながらなんとかリンククローンの元になるマスターイメージを作成し、そのマスターイメージから展開したVDIが業務に耐えうるかどうか、各課職員に検証を行ってもらいました。

すると、複数の職員から

「USBテンキーの入力がおかしい!」

Excelのカーソルが上下左右縦横無尽に動き回る」

と報告がありました。

筆者も実際にUSBテンキーでExcelに入力してみたところ、数回は正常に数値が入力されるものの、途中から縦横無尽にカーソルが他のセルに飛んでいくという珍妙な現象を目にすることになりました。

どうやらUSBテンキーの数値入力は、「NumLock+4」といった組み合わせでKeySendされているらしく、「NumLock」がKeySend出来ずに「4」だけ入力された状態になると、「4」ではなく「←」として認識されて処理されてしまうので、カーソルがあっちこっちに飛ぶ動きをするようでした。

VDIへの接続プロトコルは、「RDP」「PCoIP」「VMware Blast」の3つが選択できる環境でしたので、それぞれのプロトコルを試したところ、「RDP」が事象の発生率がやや低い程度で、どのプロトコルでも満遍なく事象は発生しました。

USBテンキーを使わないという運用回避を行う選択肢もあったのですが、自治体の業務では住民コードなどの数値型を入力する場面が非常に多く、各課職員から「テンキーが無いと仕事にならない!」と言われてしまったためその方向での解決はできず。

デスクトップPCならばテンキーがキーボードと一体になっているため、当該事象は発生しませんでしたが、当時の業務用PCは90%程度ノート型であり、この問題を解決しなければ実運用は行えないといった非常に苦しい状況でした。

環境構築した業者さんに相談し、設定変更等を行い複数回検証するも、進展は無し。

事象判明から数か月が経過しても、問題解決には至らず焦りといら立ちが募り始めていました・・・

対処方法

藁にも縋る思いでネット上を検索すると、ある一つの記事が目に入ります。

qiita.com

【以下、記事引用】

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

各USBテンキーメーカの製品情報のページに『「NumLock問題」をハードウェアで解決 』という様な機能紹介がされている製品を使用した場合、テンキー入力が正常におこなわれない(数字入力ではなくカーソル入力)現象が発生する。

VMware KB2045533 の手順を実施する事で、現象の発生を抑止できるが、
[NumLock]キーではなく、[ Ctrl+Alt+N ] キーの入力によって、NumLockのOn/Offを切り替える運用の変更が発生する。

https://kb.vmware.com/kb/2045533

また、[ Ctrl+Alt+N ]でのOn/Off切り替えはノートPC本体のキーボード側のNumLockも連動してしまうため物理端末側の操作にも影響を与えてしまう。

BIOS設定の中にNumLockに関する動作の設定があり、[Fn]キーを押しながらキー入力を行った場合のみ数字入力ができる設定とした場合は、ノートPC本体のキーボード側は[Fn]キー入力が必要となり、USBテンキー側は[Fn]キー不要となる為、初回の[ Ctrl+Alt+N ]での切り替え後は、USBテンキー側のみが数字入力ができる従来の利便性を維持できる。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

この記事を見て、これだ!と思い早速実機で試してみることにしました。

キーボード側の「NumLock」がONになっていれば良いというものでしたが、この状態ではキーボード側のキー入力に影響を与えてしまうため、BIOS側の設定で「Fn」キーを押した状態でのみ「NumLock」が有効となるように設定を変更

設定変更した物理PCでVDIに接続し、USBテンキーで入力を行ったところ、どのプロトコルでも問題は発生しません。

結果、事象は解消し無事VDIを本番稼働させることができました!!

大分時間は立ってしまいましたが、この場を借りて引用元記事を執筆された方に心より感謝申し上げます。

※ちなみに、DynabookのPCではキーボード側に「NumLock」キーが無いため、この事象の影響は受けませんでした。

あとがき

当時は解決の糸口がなかなか見つからず、大変な思いをしました・・・

この事象は、VMware Horizonを導入し、かつUSBテンキーを利用している環境だと遭遇する可能性があります。

この記事が、かつての私のように同じ困難に直面している方の助けになれば幸いです。

↓利用頻度の高いネットワーク管理コマンドをまとめました♪

www.withdrawal-civilservice.com

下の記事は、Powershellエイリアス抽出処理のサンプルコードです。

www.withdrawal-civilservice.com