トップ 履歴 一覧 カテゴリ ソース 検索 ヘルプ RSS ログイン

Win32/mstsc

INDEX

リモートデスクトップ接続

リモートデスクトップ接続起動

MSTSC [<接続ファイル>] [/v:<サーバー[:ポート]>] [/admin] [/f[ullscreen]]
[/w:<幅> /h:<高さ>] [/public] | [/span] [/multimon] [/migrate]
[/edit "接続ファイル"]
"接続ファイル"
接続用の .RDP ファイルを指定
/v:<サーバー[:ポート]>
接続先のリモート コンピューターを指定
/w:<幅>
ウィンドウの幅を指定
/h:<高さ>
ウィンドウの高さを指定
/f
全画面モードにする
/span
幅と高さをローカル仮想デスクトップと一致させる。必要に応じて複数のモニターにまたがって表示する(すべてのモニターを長方形に調整する必要がある)
/multimon
セッションのモニターのレイアウトをクライアント側の現在の構成と同じになるように構成する
/admin
サーバー管理用のセッションに接続する。この接続においてリダイレクトや Easy Print が無効にされる。ただし、XP や 2003 の RDP 6.0 以前のクライアントの場合は /console を指定する。
/public
パブリックモードで実行する
/edit "接続ファイル"
指定した .RDP 接続ファイルを編集用に開く
/migrate
クライアント接続マネージャーで作成された従来の接続ファイルを新しい .RDP 接続ファイルに移行する

リモートデスクトップ接続設定

(前回の)接続設定の内容は、マイドキュメントに "Default.rdp" という隠しファイルとして保存される。中身は「キー:型:値」で列挙されたテキストファイル。

また、「名前を付けて保存」でファイルに保存し、それをダブルクリックなり起動パラメータに渡すことで、その設定で接続することが出来る。

※Windows XP SP3 / リモートデスクトップ接続 6.1.7600/6.0.6001

Win32/mstsc/config を参照

リモートデスクトップ接続 ショートカットキー

[Alt] + [Home]
スタートメニュー表示
[Alt] + [Delete]
ウインドウメニュー表示
[Alt] + [PageUp]
タスク切換(左から右)
[Alt] + [PageDown]
タスク切換(右から左)
[Ctrl] + [Alt] + [Break]
全画面表示
[Ctrl] + [Alt] + [End]
Ctrl+Alt+Del
[Ctrl] + [Alt] + [-]
アクティブウインドウのキャプチャ
[Ctrl] + [Alt] + [+]
デスクトップのキャプチャ

 多段接続時の Ctrl+Alt+Del の送信

複数の端末を経由して、リモートデスクトップ接続を行う場合、Ctrl+Alt+Del などの特殊キーの送信が、接続元の自端末もしくは一つ目の接続にしか送信できない。これらの特殊キーは、自端末もしくはそこで動くリモートデスクトップ接続でフックされてしまうため、その先にキー入力が送信されない。

更にその先に対して特殊キーを送信した場合は、そのキー操作を行いたいリモートデスクトップ接続をしているところで、スクリーンキーボード を起動し、Ctrl+Alt+End を押して、対象サーバに Ctrl+Alt+Del を送る。

スクリーンキーボード は、Windows 10 の場合は、メニューの「Windows 簡単操作」にある。または、Ctrl + Win + O のショートカットキーで起動できる。

リモートデスクトップサーバ

 サーバのリソース利用

クライアントから接続時にオーディオやプリンタなどのリソースを接続するか設定出来るが、サーバからも接続を拒否するか設定出来る。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
; オーディオのキャプチャ(録音)を無効にする.
"fDisableAudioCapture"=dword:00000000
; クライアントオーディオへのマッピングを無効にする.
"fDisableCam"=dword:00000000
; COM port のリダイレクトを無効にする.
"fDisableCcm"=dword:00000001
; クライアントドライブへのマッピングを無効にする.
"fDisableCdm"=dword:00000000
; クリップボードのリダイレクトを無効にする.
"fDisableClip"=dword:00000000
; クライアントプリンタへのマッピングを無効にする.
"fDisableCpm"=dword:00000001
; LPT port (プリンタ)のリダイレクトを無効にする.
"fDisableLPT"=dword:00000001

※調べ切れてないのでメモ程度

リモート デスクトップ サービス の許可

  設定

  レジストリ

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
fDenyTSConnections=0 有効
fDenyTSConnections=1 無効

リモート デスクトップ 接続 の許可

  ユーザグループ の追加

ローカルグループの「Administrators」または「Remote Desktop Users」に、対象のユーザ・グループを参加させる。

Administrators に追加すると、管理者権限まで付与されるので、一般ユーザの権限のままでリモートデスクトップ接続を許可したい場合は、Remote Desktop Users に追加する。

  グループ ポリシー で設定

グループ ポリシー の設定で接続を許可・拒否するユーザ・グループを指定する。

コンピューター構成 - Windows 設定 - セキュリティ 設定 - ローカル ポリシー - ユーザー権限の割り当て の リモート デスクトップ サービスを使ったログオンを拒否」または「リモート デスクトップ サービスを使ったログオンを許可」に対象ユーザ・グループを追加する。

ちなみに、初期状態では「リモート デスクトップ サービスを使ったログオンを許可」に「Administrators」と「Remote Desktop Users」が追加されている。

  レジストリ

グループ ポリシー の設定に対応する、レジストリに、許可・拒否するユーザ・グループを指定する。

CVE-2018-0886 の CredSSP の更新プログラム

2018年5月の更新プログラムで、CVE-2018-0886 の CredSSP の更新プログラムが配信された。これが適用されたクライアントから、未適用のサーバに接続すると、下記のようなメッセージのダイアログがでて認証エラーで接続できなくなる。

認証エラーが発生しました。

要求された関数はサポートされていません

リモート コンピューター: <computer name>

原因は CredSSP 暗号化オラクルの修復である可能性があります。

詳細については、https://go.microsoft.com/fwlink/?linkid=866660 を参照してください

 回避策

レジストリを変更して、未適用でも認証エラーとならないようにする。

REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2

英語キーボードになる

「リモートデスクトップ接続」 win32 ディスクトップアプリ、「リモートデスクトップ」 Windows (Microsoft) ストアアプリ(UWPアプリ)、どちらでも発生する。

クライアントでは、日本語配列 JP106/109 キーボードを使っているが、リモート先では、英語配列 US 101/104 キーボードと認識される(Shift+2 で @、半角/全角 や 変換、無変換キーが効かない など)。

※ストア版では、Ver.10.2.1535.0 より前は、US101 とも異なるキーボードレイアウトになっている。

  キーボードレイアウト が 英語キーボード になっている

「設定」を開き、「時刻と言語」の「言語」の項目にある、「優先する言語」で「日本語」を選択、「オプション」ボタンを押して言語のオプションを開く。

「ハードウェア キーボードレイアウト」の項目で、「英語キーボード」となっていたら、「レイアウトの変更」ボタンをおして、「日本語キーボード(106/109 キー)」を選択して、「今すぐ再起動」で再起動します。

  Microsoft IME 再インストール

日本語入力は、Windows 10 に標準で Microsoft IME (または、ATOK などサードパーティ製品)で行われる。何らかの原因で日本語入力ができない場合には、Microsoft IME を入れ直すことで直る可能性がある。

入れ直すためには、対象言語を優先する言語から外す必要がある。このため、英語などを追加し、言語の優先順位を変える。そのため、画面表示などが一時的に英語になる。

  pagefiles.sys と hiberfil.sys の再作成

pagefiles.sys の再作成

Windows の仮想メモリが使用するシステムファイル。一度なしにしてから、再度指定して作成しなおします。

システムのプロパティで、詳細設定タブのパフォーマンスから設定する。「ページング ファイルなし」にして、設定ボタンを押す。そして再起動する。

立ち上がってきたら、再度設定画面を開いて、「自動的に管理する」か「カスタム サイズ」で任意のサイズで仮想メモリを作成する。

仮想メモリがあること前提になっているアプリケーションがあるので、メモリを多く積んでいても「なし」にはしないほうが吉。また、「カスタム サイズ」で指定する場合、初期サイズと最大サイズを同じにして、pagefiles.sys のサイズが変わらないようにしておくと断片化がされなくなる。

hiberfil.sys の再作成

休止状態にした際に使用されるシステムファイル。一度無効にしてから、再度有効にして作成しなおします。デスクトップなど休止状態を使わないなら無効のままでもよい、ノートの場合はバッテリーが少なくなった場合に休止状態へ移行しよとするので有効にしたほうがよいかと。

管理者でコマンドプロンプトを開き、

powercfg.exe /hibernate off

で無効にする。

powercfg.exe /hibernate on

で有効にする。

powercfg.exe /a

で、スリープや休止状態の状態が確認できる。

  レジストリを修正する

リモートデスクトップで接続した場合に使用されるキーボードレイアウトが、通常のコンソールの場合と異なるものが使用される。

原因

コンソール接続の場合は、以下のレジストリにあるキーボード レイアウト "kbd106.dll" が利用されます。

 パス: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

 名前: LayerDriver JPN

しかしながら、リモート デスクトップ接続の場合は、以下のレジストリにあるキーボード レイアウト "KBDJPN.DLL" が利用されてしまい、kbd106.dll とは異なるキーボード配列となります。("KBDJPN.DLL" は現状 英字配列を元としたレイアウトとなっています。)

 パス: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411

 名前: Layout File

回避策

レジストリを変更して、キーボード レイアウトを日本語配列の "kbd106.dll" にする。

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411" /v "Layout File" /t REG_SZ /d "kbd106.dll"

  レジストリを修正する その2

 パス: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters 名前: LayerDriver KOR

固まる

  WDDMグラフィックディスプレイドライバー を無効にする。

  • パス: HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
  • 名前: fEnableWddmDriver
  • 型:REG_DWORD
  • 値:1:有効(WDDM ドライバを使う)、0:無効(WDDM でなく XDDM を使う)
REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fEnableWddmDriver" /t REG_DWORD /d 1 /f 

  UDP を無効にする

TCP は、通信パケットがきちんと届いているか確認される(消失があれば再送され、到達順番が正しくされる)。UDP は、通信パケットが正しく届かないことがある(消失したり、到達順序が入れ替わったり)。その分、高速なデータ転送ができる。

クライアントの UDP を無効にする

  • パス: HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client
  • 名前: fClientDisableUDP
  • 型:REG_DWORD
  • 値:0:無効(UDP と TCP の両方を使用)、1:有効(TCP のみを使用)
REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" /v "fClientDisableUDP" /t REG_DWORD /d 1 /f 

サーバの通信を TCPのみ使用にする

  • パス: HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
  • 名前: SelectTransport
  • 型:REG_DWORD
  • 値:0:UDP と TCP の両方を使用、1:TCP のみを使用、2:UDP と TCP のいずれかを使用
REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "SelectTransport" /t REG_DWORD /d 1 /f 

参考資料等

最終更新時間:2022年06月16日 09時38分13秒 指摘や意見などあればSandBoxのBBSへ。