科学の箱

科学・IT・登山の話題

IT Windows

RDPで表示されている画面が小さくて文字が読めない

投稿日:

クライアントサーバーベースのアプリケーションでは管理上の手間を省くために、アプリケーションサーバーを構築しクライアントからRDPで接続する構成をとることがよくある。

ラップトップの入れかえや新しく入ってきた社員毎にクライアントのセットアップをしなくてもよいのでITの管理上は楽になるし、トラブル対応時も時間がかからずにすむ。

しかしこの構成ではラップトップへの直接インストールでは起きなかった問題がユーザーから報告される。

そのうちのひとつが画面が小さいというクレームだった。RDPで接続すると接続先の画面は接続元の解像度に依存する。解像度の変更ができないために表示されたアプリケーションのレポートや細かいフォームが見えにくいということだ。

ラップトップに直接インストールされているアプリケーションであれば解像度を変えることで対応できるが、RDPではクライアントの解像度に依存する。

調べたところ方法としてはいくつかあるらしい。

  • クライアントの解像度を下げる

    解像度を下げてみたが目だった違いが見えなかった。またRDP接続時のみに解像度を下げたいのでこの設定は取れない。

  • RDPで解像度を設定する。

    RDP構成ファイルあるいはmstscコマンドに解像度のパラメータを指定できる。これもいじってみたが画面のサイズが変わるだけで文字の大きさやアイコンに大きな違いが見られなかった。

  • デスクトップのデザインでWindows Standard (large) もしくは(extra large)を指定する。

    この設定は使えた。

さてデスクトップのデザインを変更すればよいのだが、せっかくクライアントを集約したにもかかわらず、ユーザーごとにデスクトップの設定をいじるのは本末転倒であり手間もかかる。そこですべてリモート接続でこの設定を実行することにした。

まず画面のデザイン変更は以下のレジストリキーに保管されている。

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics

画面を好みの設定に変更した後に、レジストリエディタからこのキーをすべてエクスポートする。

次にリモートクライアントにこの設定をimportするのだが、ここでひとつ問題が出る。このキーはHKCU以下のキーでありユーザーがログインしたときに、ユーザーの環境に合わせて設定される。よってリモートでこのキーにインポートしてもエンドユーザーのレジストリに保管されるわけではない。さらにリモートレジストリで見てみるとHKCUは表示されないことがわかる。

network registry

HKCUの実体はHKU以下にSIDでプロファイル毎に保管されている。ログインユーザーのSIDと一致するハイブからHKCU以下に転記される。ここで転記と書いたのはHKCUとHKU/SIDのハイブは同期が取られているからである。テストをしてみるとHKCU以下で書き換えた内容はすぐにHKU/SIDハイブに反映される。また逆も反映される。

hku

HKUについてはこちらで説明が詳しい。

またWindows開始時にHKCUとHKUがどのように処理されるかは以下で説明されている。

HKEY_CURRENT_USER

クライアントに一人しかログインしていない場合にSIDは一つしかないのでわかりやすい。複数人の場合は以下を参照してSIDを見つける。

How To Find a User’s Security Identifier (SID) in Windows

さてエクスポート先のレジストリキーが見つかったら先ほどエクスポートしたregファイルを編集する。

regファイルをテキストエディタで開くと3行目くらいに以下のような記述が見つかる。

[HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]

これを先ほど見つけたHKU/SIDのキーに書き直す。

[HKEY_USERS\S-1-5-21-776561741-1409082233-xxxxxx-xxxxx\Control Panel\Desktop\WindowMetrics]

修正後にregファイルをリモートクライアントでインポートする。いくつか方法はあるが手っ取り早いのはpsexecかtelnetを使う方法である。ここではtelnetを使う方法について説明する。

まずregファイルを相手先コンピュータにコピーしておく。これはcifsでもよいし、あるいは共通で使うファイルサーバー上にコピーしておいてもよい。次にtelnetへアクセスする。telnetサービスが無効になっている場合には起動する。

以下のコマンドを実行する。

regedit32 /S a.reg

Sスイッチがないとメッセージが有効になってしまうので処理が途中で止まってしまうようである。

以上でレジストリが正しく読み込まれたはず。

メタ情報

inarticle



メタ情報

inarticle



-IT, Windows
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

MBR, GPT, UEFI, BIOSの選び方

MBRとGPTはパーティションの作り方の方法を表す。MBRのほうが古いGPTは新しい。 BIOS(Legacy BIOS)とUEFIはブートアップするときのプログラムを示す。Legacy BIOSのほ …

no image

経験なしでVMWare Workstationをインストールする

Sander van Vugt氏による でははじめてVMWareワークステーションを使う人のために、構成と詳細な手順を説明している。 初級者向きではあるが、普段意識しないで実行していたことを文字にして …

no image

Chefのインストール

前提 rubyおよびgemがインストールされていること。各コマンドのversionオプションを利用することでインストールされているか確認する。 $ ruby -v ruby 1.8.7 (2011-0 …

no image

Terminal Server License Managerを使っているときのトラブル対応

ライセンスにトラブルが起きたときの対応手順 Licensing Diagnosis: Problems and Resolutions W2k8 R2: Administrator on RDSH g …

no image

p12ファイルの中身を確認する方法

p12はキーストアの一つの形式です。キーストアとは暗号化された鍵と証明書を一つのファイルの保管する仕組みなります。今回はp12ファイルの内容を見ることで鍵と証明書について理解を深めます。 必要なもの …

2014年5月
« 4月   6月 »
 1234
567891011
12131415161718
19202122232425
262728293031  

side bar top



アーカイブ

カテゴリー