リモート・デスクトップ接続を利用するためには、あらかじめコンソール画面で許可の設定を行っておかなければならない。だがリモートからレジストリを操作すれば、コンソールで作業を行わなくても、リモート・デスクトップ接続を有効にできる。グループ・ポリシーを使えば、複数のコンピュータのリモート・デスクトップ接続をまとめて制御できる。
対象OS:Windows XP/Windows Vista/Windows 7/Windows Server 2003/Windows Server 2008/Windows Server 2008 R2
Windows OSに搭載されている「リモート デスクトップ(ターミナル サービス)」機能は、リモートからコンピュータをGUIベースで操作するための機能であり、管理用途だけなく、コンピュータ上にインストールされたアプリケーションなどを利用するために、広く使われている便利な機能である。
リモート・デスクトップ機能を利用するためには、あらかじめ対象となるコンピュータ上でこの機能を有効にしておかなければならない。デフォルトではこれらの機能は無効にされているからだ。
リモート・デスクトップを有効にするには、Windows XP/Windows Server 2003の場合、まず[マイ コンピュータ]を右クリックして、ポップアップ・メニューから[プロパティ]を選択し、[システムのプロパティ]ダイアログを表示させる。そして[リモート]タブの中にある[このコンピュータにユーザーがリモートで接続することを許可する]というチェック・ボックスをオンにする。
Windows Vista以降のWindows OSの場合は、まず[コンピューター]を右クリックして[プロパティ]を選び、表示されたシステム・アプレットの左側メニューから[リモートの設定]をクリックして、[システムのプロパティ]ダイアログの[リモート]タブを表示させる。そして[リモート デスクトップを実行しているコンピューターからの接続を許可する (セキュリティのレベルは低くなります)]または[ネットワーク レベル認証でリモート デスクトップを実行しているコンピューターからのみ接続を許可する (セキュリティのレベルは高くなります)]のいずれかを選択すると、リモート・デスクトップが有効になる。
ネットワーク・レベル認証とは、リモート・デスクトップ接続前にユーザーを認証することでセキュリティを高める機能のことで、接続元クライアントがこの機能をサポートしている必要がある。ネットワーク・レベル認証を必要としない前者を選択すれば、どのクライアントからでもリモート・デスクトップで接続できるようになる。
以上の操作を行っておけば、自宅や出張先、別の支社といった離れた場所から(VPN接続経由などで)リモート接続して、コンピュータを操作できる。
だが実際にリモート・デスクトップ接続しようとして、初めてこの設定(リモート・デスクトップの有効化)を忘れていたことに気付く場合がある。システムのインストール直後や、いままでリモート・デスクトップ接続をしたことがないシステムでは、この設定を忘れている場合があるからだ。
こういう場合は、まずリモートからリモート・デスクトップ機能を有効にしたいのだが、残念ながら上記の操作は、対象となるシステムのコンソールからしか操作できない。デスクトップや[スタート]メニューにある[マイ コンピュータ]/[コンピューター]アイコンをクリックして設定しなければならないからだ。
しかしリモートからレジストリを操作したり、あるいはグループ・ポリシーを設定したりすれば、コンソール上で作業しなくても、リモート・デスクトップ機能を有効にできる。
レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリエディタの操作は慎重に行うとともに、あくまで御自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Server Insider編集部では責任を負いかねます。ご了承ください。
リモート・デスクトップ接続を許可するためのレジストリは以下のとおりである。
項目 | 内容 |
---|---|
キー | HKEY_LOCAL_MACHINEの SYSTEM\CurrentControlSet\Control\Terminal Server |
値の名前 | fDenyTSConnections |
値の型 | REG_DWORD型 |
値の内容 | 1→許可しない(デフォルト値) 0→許可する |
リモート・デスクトップ接続を許可するためのレジストリ・エントリ |
fDenyTSConnectionsの値はデフォルトでは1になっているので、この値を0にする。リモートからレジストリを操作するには、レジストリ・エディタ(regedit.exe)でリモート・コンピュータへ接続して操作すればよい。ただしあらかじめリモートからレジストリを操作できるように、ネットワークを設定しておく必要があるとともに(通常のファイル共有が可能なようにファイアウォールなどを開けておく)、この操作を実行するユーザーは管理者権限を持っている必要がある。またWindows Vista以降のWindows OSでは、リモートからのレジストリ接続を処理するRemote Registryサービスを明示的に起動しなければならないことがある。
この値を0に変更すれば、システムのプロパティ画面でリモート・デスクトップ接続を許可するチェック・ボックスをオンにしたのと同じ状態になり、自動的にリモート・デスクトップ接続を受け付ける状態(TCPのポート3389番をリッスンする状態)になる。このとき、ネットワーク・レベル認証はデフォルトで無効になる。1にすれば、リモート・デスクトップ接続は禁止される。
■Windowsファイアウォールが有効な場合の対処方法
システムのプロパティ画面でリモート・デスクトップ接続を許可するチェック・ボックスをオンにすると、自動的にWindowsファイアウォールの設定も変更され、リモート・デスクトップ接続用のTCPポート3389番への着信が許可されて接続可能になる。
しかし、上記のようにレジストリ“fDenyTSConnections”の値を変更しただけでは、Windowsファイアウォールの設定は変更されない。もしWindowsファイアウォールが有効だと、このままではリモート・デスクトップ接続に失敗するので、次のようにリモートからレジストリを修正してTCPポート3389番への着信を許可する必要がある。
項目 | 内容 |
---|---|
キー(ドメイン所属時) | HKEY_LOCAL_MACHINEの SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\ FirewallPolicy\DomainProfile\GloballyOpenPorts\List |
キー(ワークグループ構成時) | HKEY_LOCAL_MACHINEの SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\ FirewallPolicy\StandardProfile\GloballyOpenPorts\List |
値の名前 | 3389:TCP |
値の型 | REG_SZ型 |
値の内容 | 「3389:TCP:*:<有効/無効>:@……」 <有効/無効>=Enabled →TCPポート3389番の着信を許可 <有効/無効>=Disabled →TCPポート3389番の着信を許可しない(デフォルト) |
TCPポート3389番の着信を許可するWindowsファイアウォール設定用レジストリ(Windows XP/Windows Server 2003の場合) あらかじめ値に記されている文字列の中で、<有効/無効>の部分を「Enabled」に書き換える。ドメインに所属するコンピュータとワークグループ構成のコンピュータでは、レジストリ・キーが異なるので注意していただきたい。 |
項目 | 内容 |
---|---|
キー | HKEY_LOCAL_MACHINEの SYSTEM\CurrentControlSet\Services\SharedAccess\ Parameters\FirewallPolicy\FirewallRules |
値の名前 | RemoteDesktop-In-TCP |
値の型 | REG_SZ型 |
値の内容 | 「v2.**|Action=Allow|Active=<有効/無効>|Dir=In|Protocol=6|LPort=3389|……」 <有効/無効>=TRUE →TCPポート3389番の着信を許可 <有効/無効>=FALSE →TCPポート3389番の着信を許可しない(デフォルト) |
TCPポート3389番の着信を許可するWindowsファイアウォール設定用レジストリ(Windows Vista以降のWindows OS) あらかじめ値に記されている文字列の中で、<有効/無効>の部分を「TRUE」に書き換える。 |
上記のレジストリの値を修正したら、いったんシステムを再起動する(再起動にはコマンド・プロンプトで「shutdown -m \\<サーバ名> -r」を実行する)。
これでTCPポート3389番の着信が許可されるはずだ。リモート・デスクトップ接続に成功したら、コントロール・パネルのアプレットあるいはnetshコマンドを用いてWindowsファイアウォールの設定を確認し、必要なら接続元IPアドレスによる制限などを設定すること。
■Terminal Services/Remote Desktop Servicesの稼働やアカウントにも注意
もしこれでも接続できない場合は、「Terminal Services」サービス(Windows Server 2008以前)または[Remote Desktop Services]サービス(Windows 7以降)の設定を確認する。サービスの[スタートアップの状態]が[自動]になっているか、サービスが開始されているかどうかを確認し、必要ならば設定を変更後、システムを再起動してみるとよい。
なお、リモート・デスクトップで接続するには、AdministratorsおよびRemote Desktop Usersグループに属するアカウントを利用するか、Active Directoryのユーザー・アカウントのプロパティで[ターミナル サーバーへのログオンを許可する]という属性を有効にしておく必要がある。
Active Directoryのグループ・ポリシーを使って、リモート・デスクトップ接続(ターミナル・サービスへの接続)を許可することもできる。この場合は、グループ・ポリシー・エディタで下表のパスにあるポリシーを[有効]にする。
管理用テンプレート提供元のWindows OS | ポリシーのパス |
---|---|
Windows XP/Windows Server 2003 | [コンピュータの構成]−[管理用テンプレート]−[Windows コンポーネント]−[ターミナル サービス]の[ユーザーがターミナル サービスを使ってリモート接続することを許可する] |
Windows Vista/Windows Server 2008 | [コンピュータの構成]−[管理用テンプレート]−[Windows コンポーネント]−[ターミナル サービス]−[ターミナル サーバー]−[接続]の[ユーザーがターミナル サービスを使ってリモート接続することを許可する] |
Windows 7/Windows Server 2008 R2 | [コンピュータの構成]−[管理用テンプレート]−[Windows コンポーネント]−[リモート デスクトップ サービス]−[リモート デスクトップ セッション ホスト]−[接続]の[ユーザーがリモート デスクトップ サービスを使ってリモート接続することを許可する] |
リモート・デスクトップ接続を許可するためのグループ・ポリシーのパス 当該ポリシーのありか(パス)は、グループ・ポリシー編集時に使われる管理用テンプレート・ファイルが、どのWindows OSから提供されているかによって異なる。もし対象OSのポリシーのパスを探しても当該ポリシーが見つからない場合は、ほかのWindows OSのポリシーのパスを探していただきたい。 |
ポリシー設定を変更したら、システムをリモートから再起動すればよい(再起動にはコマンド・プロンプトで「shutdown -m \\<サーバ名> -r」を実行する)。
上記のグループ・ポリシーの設定では、Windowsファイアウォールの設定は変更されない。必要であれば、前述のようにWindowsファイアウォールでTCPポート3389番への着信を許可すること。
Windows 2000 Serverのターミナル・サービスは、あらかじめ[コントロール パネル]の[アプリケーションの追加と削除]−[Windows コンポーネントの追加と削除]にある[Windows コンポーネント]−[ターミナル サービス]をインストールしておく必要がある。レジストリの変更だけで許可/不許可を簡単に制御することはできない。
■更新履歴
【2010/08/27】Windows Vista/7/Server 2008/2008 R2での設定方法を追記しました。またWindowsファイアウォールが有効な場合の対処方法を追記しました。
【2005/05/14】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.