GCE上のWindowsインスタンスを、 日本語キーボードレイアウトで使用する

Google Compute Engine(以下 GCE)では多彩な公式OSイメージが用意されています。 その中には勿論、WindowsServerのOSイメージも用意されています。※1

《2018年07月時点のGCE WindowsOS公式イメージ例》

Microsoft Windows Server version 1709 Datacenter Core for Containers Server Core x64
Microsoft Windows Server version 1709 Datacenter Core Server Core x64
Microsoft Windows Server version 1803 Datacenter Core for Containers Server Core x64
?Microsoft Windows Server version 1803 Datacenter Core Server Core x64
?Microsoft Windows Server 2008 R2 Datacenter Server with Desktop Experience x64
?Microsoft Windows Server 2012 R2 Datacenter Core Server Core x64
?Microsoft Windows Server 2012 R2 Datacenter Server with Desktop Experience x64
?Microsoft Windows Server 2016 Datacenter Core Server Core x64
Microsoft Windows Server 2016 Datacenter Server with Desktop Experience x64

これらのOSイメージを使用して、WindowsServer上で稼働するソフトウェアもGCE上にホストする事が出来ますが、これらOSイメージは英語版のWindowsとなっており、UIは英語で表示されます。

キーボードも(RDPクライアントに依りますが)英語101/104キーボード配列として認識される環境が多く、日本で一般的な日本語106/109キーボードとは記号キーの位置などがずれてしまいます。※2

そのままでも、OSとしての動作に問題はありませんが「記号の入力がやり辛い」「エンドユーザーが操作し辛い」などの問題がある為、要望や要件によっては「UIを日本語化して使いたい」「日本語キーボードレイアウトで使用したい」という事も多いと思います。 ??本記事では、GCE上のWindowsServer2016を日本語化して使用するための方法を、?下記の2回にわたって整理、解説いたします。

  • 第1回 RDP接続する際に、日本語キーボードレイアウトを使用する方法
  • 第2回 Windows UI の日本語化と 地域 / タイムゾーンの設定

注釈
※1: Compute Engine ドキュメント 公開イメージ
※2: 英語101/104キーボード配列 日本語106/109キーボード配列

第1回 キーボードレイアウトの日本語化

第1回目となる本記事では、WindowsServerにRDP(リモートデスクトッププロトコル)接続する際に、日本語キーボードレイアウトを使用する方法について解説いたします。

皆様は、GCE上のWindowsインスタンスに接続する際、RDPクライアントは何を使っていますか?
手元のクライアントPCがWindowsPCの場合は、標準の「リモートデスクトップ接続(mstsc.exe)」を使用する事が多いかと思います。

また、GCPの管理コンソールをChromeブラウザで開いている場合には、ブラウザ上でRDP接続が行えるChrome拡張機能「Chrome RDP for Google Cloud Platform 拡張機能(以下 ChromeRDP)」を使用する事も出来ますので、 Macなど非Windows環境ではこちらを使われている方も多そうですね。

これらRDPクライアントの多くで、GCE上のWindowsServer2016インスタンスにRDP接続すると、標準状態では英語キーボードとして認識されてしまいます。

この状態では、日本語キーボード上で “@” が刻印されているキーを押しても、”[“として入力されてしまうなど、 普段から英語キーボードを使い慣れている人であればともかく、ちょっと使いづらいですよね。

これが物理サーバーやPCに接続したキーボードであれば、コントロールパネルやWindows設定画面から、Windows側のキーボードの認識を日本語キーボードに変更する事で対応可能です。
ですが、RDP接続の場合、この方法ではうまく日本語キーボードとして認識させる事ができない場合があります。
これはWindows側で「物理接続されているキーボードドライバ」と「RDP接続で使用するキーボードドライバ」を別の設定として保持しているための様です。 ※3
※3: Windows 10 RS4 へのリモート デスクトップ接続時に、UWP アプリへの入力時のみキーボード配列が異なる事象について

設定変更手順

RDPクライアントで接続する

では、具体的に日本語キーボードとして認識させる手順を、順を追って確認していきましょう。
GCEでOSイメージにWindowsServer2016を使用して、新規インスタンスを立ち上げ、RDP接続します。RDPクライアントには、今回 ChromeRDP を使用します。
ChromeRDPの接続時オプションには、キーボードレイアウトの設定がありますので、これは先に日本語キーボードに切り替えておきましょう。
ChromeRDPの接続画面右上に、接続オプション設定へのリンクがありますので、
「Options」をクリックして設定ダイアログを開き、言語設定とキーボード設定を変更します。

接続できました。 ここから設定を行っていきます。

この状態では、英語キーボードとして認識されています。画像はメモ帳を開いて、日本語キーボード上で「@」の刻印されたキーを押下したところです。 キーボード刻印の「@」ではなく、「[」が入力されています。

キーボードレイアウト設定を変更する

設定を変更していきます。
レジストリを変更しますので、誤った設定を実施した場合は、最悪の場合Windowsが起動しなくなるなど、動作に影響が出る可能性があります。くれぐれも注意して行って下さい。
また、設定変更には管理者権限が必要です。GCP管理コンソールの「Windows パスワードの設定」ボタンより取得したユーザー名とパスワードであれば、管理者権限を持っているので問題ありません。

① レジストリエディタ(regedit.exe)を起動します。 Windowsキー + Rキーを押下、または、スタートメニューボタンを右クリックし、「ファイル名を指定して実行」を選択し、 表示された「ファイル名を指定して実行」ダイアログボックスに「regedit.exe」を入力して「OK」を押下して下さい。

② レジストリエディタは管理者権限を必要とする為、ユーザーアカウント制御の警告ダイアログが表示されますので、問題なければ「Yes」を押下して下さい。

③ レジストリエディタが表示されます。
レジストリエディタ左側のツリー表示を辿り、下記のレジストリパスを展開して下さい。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411

レジストリエディタ最下行に、現在展開中のレジストリパスが表示されます。こちらを確認しながら間違わない様、確認して下さい。

④ 上記レジストリパス内の「Layout File」エントリを変更します。 標準状態ではこのエントリに「KBDJPN.DLL」が設定されているかと思います。 この「KBDJPN.DLL」は、現状英語配列を元にしている為、英語配列として認識されています。
エントリをダブルクリックすると「文字列の編集」ダイアログが表示され、値の変更が可能です。 このエントリを「kbd106.dll」に変更し、「OK」を押下して下さい。

⑤ 編集が完了したら、Windowsを再起動します。 レジストリエディタを終了し、その後、スタートボタンを右クリックし「Shut down or sign out」から「Restart」を選択して、Windowsを再起動して下さい。

適切な再起動理由をを選択し、再起動を実行します。
再起動に伴い、RDPの接続が切れます。再起動が完了したら、再度RDP接続を行って下さい。

設定反映を確認する

再接続完了後、メモ帳を開いて「@」が刻印されているキーを押下した状態です。意図通り「@」として入力されています。

これで日本語キーボードレイアウトとして認識させる事ができました。

まとめ

英語版Windowsの日本語化周りは、まとまったドキュメントが意外と少なかったり、使用するRDPクライアントに依って挙動が異なったりするなど、ハマりがちな所ですので、WindowsServer構築時のお役に立てば幸いです。次回記事では、UIなどその他の部分を日本語化する設定を行っていきます。

弊社では GCP を利用したサーバー構築、データ分析基盤、機械学習を利用したシステム構築など、コンサルティングから導入・運用支援、支払代行までトータルサービスを提供しておりますので、?ご興味のある方はお気軽にお問い合わせください。
また、あらゆる職種仲間も募集しています。Google Cloud Platform に関わる仕事をしてみたい方、ぜひ一緒にクラウドエースで働きませんか! ご応募、お待ちしています。

次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます