
Windowsマシンにリモート接続する場合、最も一般的な接続方法といえるのが「リモートデスクトップ接続」ですが、この機能はデフォルトでは無効化されており利用するには有効化する必要があります。
そこでここでは、Windowsの設定からやコマンド操作でリモートデスクトップ接続機能を有効化する方法を紹介します。
なお、リモートデスクトップ機能は、ProとEnterpriseエディションのみに搭載されている機能で、Homeエディションは搭載されていません。
目次
リモートデスクトップ機能の有効化
リモートデスクトップ機能を有効化する方法としては、Windowsの「設定」から有効化する方法と、コマンド操作で有効化する方法が一般的です。
Windowsの設定から有効化
Windowsの設定画面からリモートデスクトップを有効化するときは、Windowsの「設定」から「システム」>「リモートデスクトップ」を順に開き「リモートデスクトップ」をオンに設定します。

ネットワークレベル認証の設定
リモートデスクトップ接続を有効化すると、デフォルトで「ネットワークレベル認証」が有効化されていますが、利用する接続ツールによってはネットワークレベル認証に対応していない場合があり、そのようなときはネットワークレベル認証を無効化する必要があります。
ネットワークレベル認証の設定を変更するときは、リモートデスクトップの項目を展開して「デバイスが接続にネットワークレベル認証を使用することを要求する(推奨)」のチェックをオフに設定します。

ファイアウォールの設定
Windowsの設定画面からリモートデスクトップ接続を有効化すると、自動的にWindowsに標準搭載されているファイアウォール「Microsoft Defender ファイアウォール」の設定が変更され、リモートデスクトップ接続による通信が許可されます。
なお、サードパーティーのセキュリティ対策ソフトを利用している場合は、リモートデスクトップ接続を許可する必要があります。ちなみに、リモートデスクトップ接続では、デフォルトでTCP3389番ポートが使用されます。
コマンド操作で有効化
コマンド操作でリモートデスクトップ接続を有効化するときは、管理者としてターミナル(コマンドプロンプトまたはPowerShell)を起動して、以下のコマンドを実行します。
以降では例として、PowerShellコマンドレットを使った方法を紹介しています。
PS C:\> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type Dword -Value "0"無効化するときは、以下のコマンドを実行します。
PS C:\> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Type Dword -Value "1"ネットワークレベル認証の設定
ネットワークレベル認証を無効化したいときは、以下のコマンドを実行します。
PS C:\> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type Dword -Value "0"有効に戻す場合は、以下のコマンドを実行します。
PS C:\> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Type Dword -Value "1"ファイアウォールの設定
コマンド操作でリモートデスクトップ接続を有効化した場合は、Windowsファイアウォールのリモートデスクトップ接続を許可する設定も必要になります。
Windowsファイアウォールのリモートデスクトップ接続を許可する設定を有効化するには、以下のコマンドを順に実行します。
PS C:\> Set-NetFirewallRule -DisplayName "リモート デスクトップ - シャドウ (TCP 受信)" -Enabled TruePS C:\> Set-NetFirewallRule -DisplayName "リモート デスクトップ - ユーザー モード (TCP 受信)" -Enabled TruePS C:\> Set-NetFirewallRule -DisplayName "リモート デスクトップ - ユーザー モード (UDP 受信)" -Enabled True標準ユーザーでリモートデスクトップ接続する
リモートデスクトップ接続は、デフォルトでAdministratorsに所属するユーザー(管理者ユーザー)のみが接続でき、標準ユーザーで接続したい場合は、そのユーザーをRemote Desktop Usersグループに追加しておく必要があります。
具体的な手順は、以下の記事をご覧ください。
待ち受けポート番号を変更する
リモートデスクトップ接続はデフォルトでTCP3389番ポートで待ち受けていますが、セキュリティ対策として待ち受けポート番号を変更したい場合があります。
リモートデスクトップ接続の待ち受けポート番号は、レジストリで設定します。
レジスト設定は、レジストリエディターからGUI操作で設定することもできますが、ここではPowerShellの「Set-ItemProperty」コマンドレットを使って設定します。
設定は、管理者権限でPowerShellを起動し、以下のコマンドを実行し、コマンドの「XXXXX」部分に、待ち受けに利用する任意のポート番号を指定します。
PS> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber" -Type Dword -Value "XXXXX"ポート番号は、他のサービスやアプリケーションで利用しているポート番号と競合しないように49152~65535の間から選ぶのが良いでしょう。
コマンドを実行したら設定を反映させるために、Windowsを再起動すれば設定完了です。
ファイアウォール設定
次に、上で設定したポート番号でリモートデスクトップ接続できるようファイアウォールの設定を変更します。
Windowsに標準搭載されているファイアウォール機能を利用している場合は、新しい受信の規則を追加(TCP用とUDP用の2つ)します。
受信の規則の追加は、管理者権限でPowerShellを起動して、以下のコマンドを順に実行し、コマンドの「XXXXX」の部分には、上記のレジストリ設定で指定したポート番号を入力します。
PS> New-NetFirewallRule -DisplayName "@RDP_TCP" -Profile Any -Direction Inbound -Protocol TCP -LocalPort XXXXX -Action AllowPS> New-NetFirewallRule -DisplayName "@RDP_UDP" -Profile Any -Direction Inbound -Protocol UDP -LocalPort XXXXX -Action Allow新しいポート番号でリモートデスクトップ接続できることを確認したら、デフォルトのファイアウォールの規則は無効化しておきます。
PS> Disable-NetFirewallRule -DisplayName "リモート デスクトップ - ユーザー モード (TCP 受信)"PS> Disable-NetFirewallRule -DisplayName "リモート デスクトップ - ユーザー モード (UDP 受信)"サードパーティーのセキュリティ対策ソフトを利用している場合は、セキュリティ対策ソフトで新しいポート番号でリモートデスクトップ接続を許可するよう設定してください。
動作確認
待ち受けポート番号を変更したら、実際に新しいポート番号でリモートデスクトップ接続できるか確認します。
待ち受けポート番号をデフォルトから変更した場合は、リモートデスクトップ接続の画面で接続先マシン名を入力する欄に、接続先マシン名とポート番号を合わせて「接続先マシン名:ポート番号」と入力します。
たとえば、接続先マシン名が「remotepc」でポート番号が「45678」なら「remotepc:45678」と入力します。

あとがき
数台のWindowsに設定するだけなら、Windowsの設定画面から設定するのが簡単ですが、同じ設定を複数台のマシンに適用したい場合は、コマンド操作で行うと効率よく設定できるでしょう。