MSTSC:リモート制御とアクセスのための究極のCLIツール

本日の急速なIT世界では、リモートアクセスはシームレスな接続と効率的な運用に必要不可欠です。幸いにも、Microsoft Terminal Server Client (MSTSC)を使用すれば、別のPCにリモートアクセスして制御を取ることができます。

MSTCSは、ホストやサーバーにリモートでアクセスするためにリモートデスクトップを実行するコマンドです。そして、このチュートリアルでは、リモートアクセスの基本とMSTSCの機能の概要を学びます。

準備はいいですか?リモートコントロールのゲームを活性化させるために、続けて読んでください!

前提条件

このチュートリアルは、実演形式で設計されています。一緒に進むためには、ローカルおよびリモートのWindowsホストが必要です。このチュートリアルでは、両方のホストにWindows 10 Proが使用されています。

リモートデスクトップ接続を許可するためには、リモートホストにWindows Pro OSが必要です。Windows Homeを使用している場合は、このチュートリアルを続ける前にWindows Proにアップグレードしてください。
Windows 10 HomeをWindows 10 Proにアップグレードする
Windows HomeをWindows Proにアップグレードする

リモートデスクトッププロトコル(RDP)の有効化

RDPは、Microsoftによって開発されたプロトコルで、ネットワークを介してWindowsベースのコンピュータやサーバにリモートでアクセスすることができます。RDPを使用すると、リモートコンピュータに接続し、そのリソースを自分の前に座っているかのように使用することができます。

WindowsでRDPを有効にするには、以下の手順に従ってください:

1. リモートサーバで管理者としてPowerShellを開き、作業ディレクトリがC:\Windows\System32であることを確認します。

2. 次に、以下の./reg addコマンドを実行して、レジストリの変更を確認メッセージとともに行います(-f)。

このコマンドにより、リモートデスクトップ接続が有効になります。

  • "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" Terminalサービスの設定を制御するレジストリキーのパス。
  • /v – 変更する値の名前を指定します。この場合、fDenyTSConnections値がリモートデスクトップ接続を許可するか拒否するかを制御します。
  • /t – 変更するデータ型を指定します。この場合、DWORD(ダブルワード)データ型(REG_DWORD)です。
  • /dfDenyTSConnectionsキーの値を0に設定して、リモートデスクトップ接続を許可します。
./reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
Enabling Remote Desktop connections in the registry

3. 以下の./netsh advfirewallコマンドを実行して、リモートデスクトップ接続を許可するファイアウォールルールをsetします。このコマンドにより、WindowsファイアウォールがRDP経由の着信リモートデスクトップトラフィックをブロックしないようになります。

./netsh advfirewall firewall set rule group="remote desktop" new enable=yes
Setting a firewall rule to allow Remote Desktop connections

おそらくもはやWindowsマシンにリモートでアクセスする必要がなく、マシンのセキュリティを向上させたい場合は、以下のコマンドを実行して着信リモートデスクトップトラフィックをブロックします。

./reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
./netsh advfirewall firewall set rule group="remote desktop" new enable=No

フルスクリーンモードでリモートホストに接続する

マイクロソフトのリモートデスクトップ接続クライアントは、リモート接続のためのユーザーフレンドリーなGUIを提供しており、これは優れています。しかし、GUIはリモートホストに迅速にアクセスするための最も効率的な解決策ではないかもしれません。

幸いなことに、MSTSCにはコマンドラインインターフェース(CLI)があり、1つのコマンドで直接接続してRDPサーバーを制御することができます。さらに、MSTSCはフルスクリーンモードをサポートしており、リモートデスクトップセッションのより多くを見ることができるため、効率的に作業することができます。

フルスクリーンモードでリモートホストに接続するには:

ローカルマシンでPowerShellを開き、次のいずれかの./mstscコマンドを実行してリモートホストに接続します。

次のように置き換えることを確認してください:

  • <IP_Address>–リモートホストの実際のパブリックIPアドレス。
  • <Port>–デフォルトポート(3389)以外のリモートホストで使用するポート。それ以外の場合は、ポートを省略してデフォルトのポートを自動的に使用します。
# 構成されたRDPポートを使用してリモートホストに接続
./mstsc /v:<IP_Address>:<Port> /f
# デフォルトのRDPポート(3389)を使用してリモートホストに接続
./mstsc /v:<IP_Address> /f

作業ディレクトリに関係なくmstscコマンドを実行したい場合は、MSTSCのパス(C:\Windows\System32\mstsc)をPATH環境変数に追加します。追加した後は、次のようにコマンドを実行できます:mstsc /v:<IP_Address>:<Port> /f

求められた場合、以下に示すようにリモートホストの資格情報を入力し、OKをクリックして接続を認証してください。

Authenticating the remote desktop connection

以下の出力は、フルスクリーンモードのリモートデスクトップ接続を示しています。

Viewing a remote desktop connection in full-screen mode

リモートデスクトップ接続の解像度のカスタマイズ

多くのツールと作業する場合に役立つフルスクリーンモードでリモートホストに接続する方法を見てきました。ただし、リモートデスクトップセッションの解像度がローカルディスプレイの解像度と一致しない場合があります。

リモート接続の解像度をカスタマイズすると、リモートデスクトップセッションのサイズを調整できます。

リモートデスクトップ接続の解像度をカスタマイズするには、以下の手順に従います。

以下のコマンドを実行して、カスタムの幅(/w)と高さ(/h)でリモートホストに接続します。 <Width><Height>の値を、希望するピクセル解像度を表す値に置き換えます。

このコマンドにより、リモートデスクトップセッションが画面に快適に収まり、テキスト、画像、その他の要素が明瞭かつ読みやすく表示されることが保証されます。

./mstsc /v:<IP_Address>:<Port> /w:<Width> /h:<Height>

下記のように、リモートデスクトップセッションは通常のウィンドウと同じであり、指定された解像度の限界まで最大化できます。

Customizing the resolution for Remote Desktop connections

ローカルディスプレイの解像度の自動一致

リモートデスクトップ接続の解像度をカスタマイズすることは、正しい値を知っていればうまくいきます。しかし、ローカルディスプレイの解像度に合わせたい場合はどうでしょうか? “/span” フラグを使用することで、リモートデスクトップ接続の「スパン」モードを実現できます。

次のコマンドを実行し、/span フラグを追加して、ローカルディスプレイの解像度に合わせてリモートホストに接続します。

スパンモードが有効になっていると、MSTSCは自動的にローカルディスプレイの解像度を検出し、リモート接続の解像度をそれに合わせて調整します。

./mstsc /v:192.168.1.100 /span
Matching to local display resolution automatically

パブリックモードでリモートホストに接続する

フルスクリーンモードやスパンモードでリモートホストに接続するだけでなく、パブリックモードでもリモートホストに接続することができます。このモードは、複数のユーザーが共有するパブリックコンピュータからリモートマシンに接続する場合に便利です。

パブリックモードが有効になっていると、リモートホストにログインするために使用する資格情報は保存されず、キャッシュされません。この動作により、他のユーザーがリモートマシンにアクセスすることが防止されます。

次のコマンドを実行して、パブリックモード (/public) でリモートホストに接続します。

./mstsc /v:<IP_Address>:<Port> /public

リモートセッション中に行ったすべての変更、設定、および好みは、セッションが切断されると自動的に破棄されます。

Connecting to a remote host in public mode

管理者としてリモートホストに接続する

あなたは通常のユーザーとしてリモートホストにアクセスしていますが、これは問題ありません。ただし、リモートホストの管理には通常、管理者特権が必要です。

たとえば、ソフトウェアパッケージのインストールや管理者アカウントからのみアクセスできるシステム設定へのアクセスが必要な場合があります。

以下のコマンドを実行して、管理者権限を持つ/adminとしてリモートホストに接続してください。

./mstsc /v:<IP_Address> /w:900 /h:720 /admin
Connecting to a remote host as an admin

今、コントロールパネルを開いてUser Accountsセクションに移動します。

以下のような出力が表示されていますか?おめでとうございます!あなたは管理者としてリモートホストに正常に接続しました。

Verifying administrator privileges

既存の.rdpファイルを使用してリモートホストに接続する

これまでさまざまなモードでリモートホストに正常に接続しました。ただし、リモートホストに接続するたびに異なるパラメータを指定するのは長期的には煩わしいことがあります。

手動でMSTSCコマンドライン引数を入力する代わりに、リモートデスクトップ接続の設定を.rdpファイルに保存しないのはどうでしょうか?.rdpファイルには、リモートホストに接続するために必要なすべての設定が含まれており、これを使用してMSTSCコマンドライン引数を手動で入力する代わりに使用できます。

リモートコントロールサービスを購入すると、通常はAmazon Web ServicesやAzure RDPなどのサービスプロバイダーから.rdpファイルをダウンロードします。

リモートホストへの接続を確立するには、既存の.rdpファイルを使用します:

次のコマンドを実行し、<RDP_FILE_PATH>を既存の.rdpファイルのフルパスに置き換えて、.rdpファイルで指定された設定に従ってリモートホストに接続します。

./mstsc <RDP_FILE_PATH>

以下の例では、既存の.rdpファイル(ec2_instance.rdp)を使用して、C:\\Users\\admin\\Documents\\フォルダにあるAWS EC2インスタンスに接続する方法が示されています。

./mstsc C:\Users\admin\Documents\ec2_instance.rdp 

セキュリティ警告メッセージを無視し、接続をクリックして続行します。

Connecting to the remote host via an existing .rdp file

既存の.rdpファイルの設定の変更

おそらく、.rdpファイルには接続に必要なすべての設定が含まれていないか、設定を変更したい場合があります。いずれの場合も、/editフラグが役立ちます。

既存の.rdpファイルの設定を変更するには:

次のコマンドを実行し、/editフラグを追加して、.rdpファイルをリモートデスクトップ接続設定ウィンドウで開きます。

./mstsc /edit <RDP_FILE_PATH>

変更した設定が気に入ったら、保存をクリックして変更内容を保存するか、名前を付けて保存して新しい.rdpファイルに設定を保存します。

Modifying an existing .rdp configuration file

結論

リモートアクセスをホストやサーバーに可能にすると、USBメモリやハードドライブを行ったり来たりせずにファイルにアクセスできます。そして、このチュートリアルでは、さまざまなモード、解像度、さらには既存の.rdpファイルを介してリモートホストに接続する方法を学びました。

MSTSCを活用することで、物理的な場所に関係なくリモートコンピューターやワークステーションを効率的に管理できます。

これで、MSTSCを自信を持ってCLIツールとして使用して、安全かつ効率的なリモートホストへの接続を確立できます。次は、リモートデスクトップセッションを管理するために、qwinstaまたはrwinstaコマンドを試してみませんか?

Source:
https://adamtheautomator.com/mstsc/