脱!公務員ブログ

Sier企業に勤めている元公務員SEが、自身の体験を元に公務員の実態や転職の経験談、現職の仕事関係の情報などを発信していきます。

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テンキーで入力を行ったところ、どのプロトコルでも問題は発生しません。

 

心が晴れやかになった瞬間でした…!(*´▽`*)

 

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

 

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

 

あとがき

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

 

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

 

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

 

 

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

www.withdrawal-civilservice.com

 

 

Powershellエイリアス抽出処理です

www.withdrawal-civilservice.com