最近、24時間起動しておきたいスタンドアロンなWindowsアプリがあり、自宅マシンの代わりにAWS上でWindowsインスタンスを使用することにしました。基本的には日常的に使用している手元のMacから使いやすいように設定しました。
Windowsインスタンスにはリモートデスクトップを使ってアクセスすることになるのですが、これが曲者で・・・。日常的に使いやすいようにカスタムしていこうと思います。
Macの場合、App Storeから Microsoft Remote Desktop アプリを使います。執筆時点のバージョンは 8.0.31 です。
Contents
日本語のアプリが文字化けする
これは投資に使っているMetaTraderというチャートツールですが、思いっきり化けます。英語版があれば別にいいのですが、国産のアプリなんかで日本語版しか提供されていないと地獄を見ます。
これを避けるには、日本語版のWindows Server AMIを使って起動することです。インスタンス起動画面のクイックスタートにある Windows Server 類はすべて英語版ですので、これをそのまま使うとハマります。
後から日本語言語パックを入れても、自前のWindowsから日本語フォント等をすべて持ち込んでも直りません。既に起動してしまっている場合はインスタンスを作り直すことになりますが、多分それが一番の近道です。
日本語版の Windows Server を利用するには、インスタンス起動画面で “コミュニティAMI” を選択して、 “windows server japanese” のキーワードで検索します。コミュニティAMIではありますが、Amazonが提供しているAMIが出てきますので、その中から任意のものを選ぶと良いでしょう。
今回は、 “Windows_Server-2012-R2_RTM-Japanese-64Bit-Base-2016.03.09” のAMIを使うことにします。SQLサーバー等が標準で搭載されているAMIもありますが、それらはライセンス料が加算されますので注意しましょう。

このAMIのIDは ami-58282636 (東京リージョン)です。IDはリージョンごとに異なりますし、最新のバージョンが更新されていることもありますので、基本的には上記の方法で検索して選択してください。
かな・英数キーが使えない
一番つらかったです。これができないと毎回マウスでIMEの設定をポチポチして入力を切り替えることになります・・・。
原因としては、Macのリモートデスクトップアプリが、かな・英数キーを単にスペースのキーコードに変換して送信しているために発生しています。
何らかの特殊キーとして送信されていれば、WindowsのIME設定でホットキーを割り当てれば良いのですが、スペースなのでそう単純ではありません。
結論として、英数・かなキーの使用を諦める(マウス操作でがんばる or 英数・かな以外のキーにホットキーを割り当てる)か、Mac側でキーバインドを変更して無理やり英数・かなキーを使う方法が考えられます。
個人的には、長時間使うマシンでもMac同様に英数・かなキーが使えないとかなりしんどいと考え、リマップを変更することにしました。Macデフォルトの機能ではどうにもならないので、 Karabiner を使います。
今回は、
- Karabinerでリモートデスクトップアプリを使っている時のみ、英数・かなのキーを押下したときに、リモートデスクトップアプリが認識できる他のキーコンビネーションに動作をリマップして
- Windows側のIMEホットキーを、そのキーコンビネーションにアサインする
といった方針で進めていきます。
Karabiner の設定
Karabinerをインストールして、 “Misc & Uninstall” タブにある “Open private.xml” を押下してください。Finderでprivate.xmlが表示されるので、そのファイルを次の内容に書き換えて保存します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?xml version="1.0"?> <root> <appdef> <appname>MicrosoftRDC</appname> <equal>com.microsoft.rdc.mac</equal> </appdef> <item> <name>Microsoft Remote Desktop - 英数/かなをリマップ</name> <identifier>private.Microsoft_rdc.eisuu_kana</identifier> <!-- Microsoft Remote Desktopのみを対象にする --> <only>MicrosoftRDC</only> <!-- 英数キーを Ctrl + F6 キーに置き換え --> <autogen> __KeyToKey__ KeyCode::JIS_EISUU, KeyCode::F6 | ModifierFlag::CONTROL_L </autogen> <!-- カナキーを Ctrl + F7 キーに置き換え --> <autogen> __KeyToKey__ KeyCode::JIS_KANA, KeyCode::F7 | ModifierFlag::CONTROL_L </autogen> </item> </root> |
なお、上記の例では かなキーを Ctrl + F7 に、 英数キーを Ctrl + F6 にリマップしています。色々悩んだ上で、このコンビネーションであれば Windows OS と知る限りのアプリでは干渉しないと判断してこの設定にしていますが、もしWindows側で実際にこの操作を行ってみて、他のアプリなどと干渉している場合は任意のキーにリマップ先を変更してください。
private.xml の変更が終わったら、Karabiner の “Change Key” タブにある “Reload XML” を押下し、新しく表示されるルールにチェックを入れて有効化してください。

Windows側のIMEでキー設定を変更する
上のKarabinerの設定で、リモートデスクトップアプリ内でかな・英数キーを押下したとき、それぞれ Ctrl + F7 と Ctrl + F6 キーとして認識されるようになったので、Windows側ではそのキーでIMEの有効無効を切り替えてあげればクリアーです。
今回はWindows側のIMEとして、Google日本語入力をインストールしています。標準のIMEやATOK等でも同様の設定が可能と思います。

(ちなみに Google日本語入力では Ctrl + F7 に単語登録を行うホットキーが登録されていましたが、使ったことがないので削除しました。)
設定が終わったら、ブラウザなどの日常的に使用するアプリ内で動作確認を行ってください。
画面全体が上に少しズレる
フルスクリーンで使っているときに発生します。Windows内でアプリを全画面にしたとき、タイトルバーのちょうど上半分が隠れるような感じになります。
使えないことはないですが、使い勝手が悪く気持ち悪いので直します。
この不具合はリモートデスクトップアプリの接続先設定で、 “Use all monitors” をオフにすることで解決します。

そのほか
- 起動直後は時刻が日本時間ではないのて、用途によってタイムゾーンを変更し、NTPで時刻同期する
- .Net Framework はサーバーマネージャーの “機能の追加” からインストールできる
- FTPやWebDAVサーバーなどはサーバーマネージャーでIISの役割をインストールする過程で追加する
- キーボードがUS配列になる。(デバイスドライバのインストールでJISキーボードできるみたいな記述をみつけたけど、うちの環境だと再起動でドライバがリセットされて上手くいかなかった。US配列でも支障ないからとりあえず放置。)
- なぜかデフォルトのファイル共有(SMBプロトコル)を使おうとしても、サーバーへ到達できないエラーで利用できない・・・悩み中。
所感
ご無沙汰しています。したいことが多すぎて、時間に追われる生活です。。最近、投資もまた頑張っているので、少しずつそっちのエントリも書いていこうと思っています。
今回、初めてWindows Serverを使ってみましたが、やはりサーバーでバリバリGUIが動いているのはなんだか気持ち悪い感じがしています。黒い画面だけでいい、そう思いませんか?





I’m grafutel you made the post. It’s cleared the air for me.
日本語アプリが文字化けする件ですが、システムロケールの変更を行えば直りました。
http://win-tab.net/misc/lang_change2_1511202/
win10の記事ですが、同じやり方です。
これで文字化けを気にせず英語版のAMIを使えると思います。