リモート デスクトップ セッション ホスト リスナーの可用性

UIGeneratedMonitor0861f0a3d015499787f644d39c59c064 (UnitMonitor)

このオブジェクトは、リモート デスクトップ セッション ホスト リスナーの可用性を監視します。

Knowledge Base article:

概要

リスナー コンポーネントは RD セッション ホスト サーバー上で稼働し、新しいリモート デスクトップ プロトコル (RDP) クライアント接続のリッスンと許可を行います。そのため、ユーザーは RD セッション ホスト サーバー上で新しいリモート セッションを確立できます。RD セッション ホスト サーバー上に存在するリモート デスクトップ サービス接続ごとに、リスナーがあります。接続は、リモート デスクトップ セッション ホスト構成ツールを使用して作成および構成できます。

解決方法

この問題を解決するには、イベント ID をチェックし、次のセクションでそのイベントのトラブルシューティング情報を確認します。

次のイベント ID の解決手順: 1035

この問題を解決するには、RD セッション ホスト サーバーでリスナーの再起動を試みます。リスナーの再起動に失敗する場合、RD セッション ホスト サーバーで使用可能なシステム リソース (メモリなど) を増やしてください。

これらのタスクを実行するには、次のセクションを参考にしてください。

リスナーを再起動する

リスナーを再起動するには、RD セッション ホスト サーバー上で次のいずれかの方法を使用します。

これらの手順を実行するには、ローカルの Administrators グループのメンバーであるか、適切な権限を委任されている必要があります。

方法 1

Remote Desktop Services サービスを開始および停止するには:

1. RD セッション ホスト サーバーで、サービス スナップインを開きます。サービス スナップインを開くには、[スタート] ボタンをクリックし、[管理ツール] をポイントして、[サービス] をクリックします。

2. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[はい] をクリックします。

3. [サービス] ウィンドウで、[Remote Desktop Services] を右クリックし、[再起動] をクリックします。

4. 他のサービスを再起動するかどうかを確認するメッセージが表示されたら、[はい] をクリックします。

5. Remote Desktop Services のサービスの [状態] 列に「開始」と表示されていることを確認します。

方法 2

リモート接続を無効にして有効にするには、次の手順に従います。

1. RD セッション ホスト サーバーで、システム ツールを起動します。システム ツールを起動するには、[スタート] ボタンをクリックして、[ファイル名を指定して実行] をクリックし、「control system」と入力して [OK] をクリックします。

2. [タスク] で、[リモートの設定] をクリックします。

3. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[はい] をクリックします。

4. [システムのプロパティ] ダイアログ ボックスの [リモート] タブで、[このコンピューターへの接続を許可しない] オプションをオンにして、[適用] をクリックします。

5. [システムのプロパティ] ダイアログ ボックスで、それぞれの環境に応じて、次のいずれかを選択します。

[リモート デスクトップを実行しているコンピューターからの接続を許可する (セキュリティのレベルは低くなります)]

[ネットワーク レベル認証でリモート デスクトップを実行しているコンピューターからのみ接続を許可する (セキュリティのレベルは高くなります)]

2 つのオプションの詳細については、[選択に関する詳細] をクリックしてください。

6. [OK] をクリックして、[システムのプロパティ] ダイアログ ボックスを閉じます。

使用可能なシステム リソースを増やす

使用可能なメモリの量を増やす方法の 1 つとして、RD セッション ホスト サーバーで実行されているプログラムやプロセスの中に終了できるものがあるかを判断する方法があります。タスク マネージャーを使用すると、最も多くのメモリが使用されているプロセスを特定して、そのプロセスを終了することができます。

この手順を実行するには、ローカルの Administrators グループのメンバーであるか、適切な権限を委任されている必要があります。

タスク マネージャーを使用して RD セッション ホスト サーバー上のメモリを解放するには、次の手順に従います。

1. RD セッション ホスト サーバーで、タスクバーの空いている場所を右クリックし、[タスク マネージャーの起動] をクリックします。

2. [プロセス] タブをクリックします。

3. [ユーザー名] 列および [メモリ (プライベート ワーキング セット)] 列が表示されることを確認します。表示されない場合、[表示] メニューの [列の選択] をクリックし、[ユーザー名][メモリ (プライベート ワーキング セット)] チェック ボックスをオンにして [OK] をクリックします。

4. タブの最下部で、[全ユーザーのプロセスを表示する] チェック ボックスをオンにします。

5. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[はい] をクリックします。

6. メモリ使用量の順にプロセスを並べ替えるには、[メモリ (プライベート ワーキング セット)] 列の見出しをクリックします。

7. メモリ使用量の多いプロセスの中に終了できるものがあるか確認します。

8. プロセスを終了するには、プロセス名をクリックし、次に [プロセスの終了] をクリックします。

9. [プロセスの終了] をクリックし、そのプロセスを終了することを確認します。

タスク マネージャーを使用してもメモリを解放できない場合、またはメモリを解放した後もこの問題が引き続き発生する場合は、RD セッション ホスト サーバーを再起動します。

次のイベント ID の解決手順: 1036

この問題が発生する場合、RD セッション ホスト サーバーの別のアプリケーションがリモート デスクトップ プロトコル (RDP) と同じ TCP ポートを使用している可能性があります。RDP に割り当てられている既定のポートは 3389 です。

この問題を解決するには、RDP と同じポートを使用しているアプリケーションを特定します。そのアプリケーションのポート割り当てを変更できない場合、レジストリを編集して、RDP に割り当てられているポートを変更します。レジストリの編集後、Remote Desktop Services サービスを再起動する必要があります。Remote Desktop Services サービスを再起動した後に、RDP ポートが正しく変更されていることを確認してください。

これらのタスクを実行するには、次のセクションを参考にしてください。

RDP と同じポートを使用しているアプリケーションを特定する

netstat ツールを実行すると、ポート 3389 (または割り当てられている RDP ポート) が RD セッション ホスト サーバーの別のアプリケーションによって使用されているかを特定できます。

netstat を使用するには:

1. RD セッション ホスト サーバーで、[スタート] ボタンをクリックして、[ファイル名を指定して実行] をクリックし、「cmd」と入力して [OK] をクリックします。

2. コマンド プロンプトで、「netstat -a -o」と入力して Enter キーを押します。

3. 状態が「LISTENING」の TCP ポート 3389 (または割り当てられた RDP ポート) のエントリを探します。このようなエントリがある場合、このポートは別のアプリケーションによって使用されています。そのポートを使用しているプロセスまたはサービスの PID (プロセス ID) が [PID] 列の下に表示されます。

ポート 3389 (または割り当てられている RDP ポート) を使用しているアプリケーションを特定するには、netstat ツールからの PID 情報と共に tasklist コマンドライン ツールを使用します。

1. RD セッション ホスト サーバーで、[スタート] ボタンをクリックして、[ファイル名を指定して実行] をクリックし、「cmd」と入力して [OK] をクリックします。

2. 「tasklist /svc」と入力し、Enter キーを押します。

3. ポートに関連付けられている PID 番号 (netstat 出力からの情報) のエントリを探します。その PID に関連付けられているサービスまたはプロセスが右側に表示されます。

RDP に割り当てられているポートを変更する

このアプリケーションが別のポートを使用できるかを確認する必要があります。そのアプリケーションのポートを変更できない場合、RDP に割り当てられているポートを変更する必要があります。

重要: Microsoft では、RDP に割り当てられているポートを変更することはお勧めしません。

RDP に割り当てられているポートを変更する必要がある場合、レジストリを編集する必要があります。

この手順を実行するには、ローカルの Administrators グループのメンバーであるか、適切な権限を委任されている必要があります。

RDP に割り当てられているポートを変更するには:

注意: レジストリを誤って編集すると、システムに重大な障害をもたらす可能性があります。レジストリを変更する前に、重要なデータのバックアップを作成するようにしてください。

1. RD セッション ホスト サーバーで、レジストリ エディターを開きます。レジストリ エディターを開くには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックし、「regedit」と入力して、[OK] をクリックします。

2. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[はい] をクリックします。

3. 次のレジストリ サブキーを見つけてクリックします。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations

注: RDP-TCP は既定の接続名です。RD セッション ホスト サーバー上の特定の接続のポートを変更するには、WinStations キーの下の接続を選択します。

4. 右のウィンドウで、PortNumber レジストリ エントリをダブルクリックします。

5. RDP に割り当てるポート番号を [値のデータ] ボックスに入力します。PortNumber は 16 進数値として入力されています。

6. [OK] をクリックして変更を保存し、レジストリ エディターを閉じます。

Remote Desktop Services サービスを再起動する

RDP ポート割り当ての変更を有効にするには、Remote Desktop Services サービスを停止して、開始します。

この手順を実行するには、ローカルの Administrators グループのメンバーであるか、適切な権限を委任されている必要があります。

Remote Desktop Services サービスを開始および停止するには:

1. RD セッション ホスト サーバーで、サービス スナップインを開きます。サービス スナップインを開くには、[スタート] ボタンをクリックし、[管理ツール] をポイントして、[サービス] をクリックします。

2. [ユーザー アカウント制御] ダイアログ ボックスが表示されたら、表示された操作が正しいことを確認し、[はい] をクリックします。

3. [サービス] ウィンドウで、[Remote Desktop Services] を右クリックし、[再起動] をクリックします。

4. 他のサービスを再起動するかどうかを確認するメッセージが表示されたら、[はい] をクリックします。

5. Remote Desktop Services のサービスの [状態] 列に「開始」と表示されていることを確認します。

RDP ポートが変更されたことを確認する

RDP ポート割り当てが変更されたことを確認するには、netstat ツールを使用します。

netstat を使用するには:

1. RD セッション ホスト サーバーで、[スタート] ボタンをクリックして、[ファイル名を指定して実行] をクリックし、「cmd」と入力して [OK] をクリックします。

2. コマンド プロンプトで、「netstat -a」と入力して Enter キーを押します。

3. RDP に割り当てたポート番号のエントリを探します。割り当てたポートが一覧に表示され、状態が「LISTENING」になっているはずです。

次のイベント ID の解決手順: 1066

この問題は通常は無視してかまいません。

次のイベント ID の解決手順: 1132

この問題を解決するには、リモート デスクトップ セッション ホストの役割サービスをインストールする必要があります。

この手順を実行するには、ローカルの Administrators グループのメンバーであるか、適切な権限を委任されている必要があります。

リモート デスクトップ セッション ホストの役割サービスをインストールするには:

1. サーバー マネージャーを開きます。サーバー マネージャーを開くには、[スタート] ボタンをクリックし、[管理ツール] をポイントして、[サーバー マネージャー] をクリックします。

2. [役割の概要][役割の追加] をクリックします。

3. 役割の追加ウィザードの [開始する前に] ページで、[次へ] をクリックします。

4. [サーバーの役割の選択] ページで、[リモート デスクトップ サービス] チェック ボックスをオンにし、[次へ] をクリックします。

5. [リモート デスクトップ サービス] ページで、[次へ] をクリックします。

6. [役割サービスの選択] ページで、[リモート デスクトップ セッション ホスト] チェック ボックスをオンにし、[次へ] をクリックします。

7. [互換性維持のためのアプリケーションのアンインストールと再インストール] ページで、[次へ] をクリックします。

8. [リモート デスクトップ セッション ホストの認証方法の指定] ページで、[ネットワーク レベル認証を必要とする] をクリックし、[次へ] をクリックします。

9. [ライセンス モードの指定] ページで、適切なオプションを選択し、[次へ] をクリックします。

10. [このリモート デスクトップ セッション ホスト サーバーへのアクセスが許可されたユーザー グループの選択] ページで、[次へ] をクリックします。

11. [クライアント エクスペリエンスの構成] ページで、適切なオプションを選択し、[次へ] をクリックします。

12. [インストール オプションの確認] ページで、RD セッション ホストの役割サービスがインストールされることを確認し、[インストール] をクリックします。

13. [インストールの結果] ページに、インストール処理を完了するためにサーバーの再起動を求めるメッセージが表示されます。[閉じる] をクリックし、[はい] をクリックして、サーバーを再起動します。

14. サーバーを再起動して、リモート デスクトップ セッション ホストの役割サービスのインストールで使用したユーザー アカウントと同じユーザー アカウントでコンピューターにログオンしたら、RD セッション ホストの役割サービスが正常にインストールされたことを確認し、[閉じる] をクリックして [RD セッション ホストの構成] ウィンドウを閉じます。

Element properties:

TargetMicrosoft.Windows.Server.10.0.RemoteDesktopServicesRole.Service.RDSessionHost
Parent MonitorSystem.Health.AvailabilityState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.SingleEventLogManualReset2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
リモート デスクトップ セッション ホスト リスナーの可用性の警告
イベント ID: {0} -- 説明: {1}
RunAsDefault

Source Code:

<UnitMonitor ID="UIGeneratedMonitor0861f0a3d015499787f644d39c59c064" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.Server.10.0.RemoteDesktopServicesRole.Service.RDSessionHost" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.SingleEventLogManualReset2StateMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="UIGeneratedMonitor0861f0a3d015499787f644d39c59c064_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDisplayNumber$</AlertParameter1>
<AlertParameter2>$Data/Context/EventDescription$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateId3ce5ff85bf5f487aaf2f12acd93a3381" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
<OperationalState ID="UIGeneratedOpStateIdcf85de4df8db46d495fede817752afef" MonitorTypeStateID="EventRaised" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>System</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-TerminalServices-RemoteConnectionManager</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1132</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1066</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1035</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1036</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</Expression>
</Configuration>
</UnitMonitor>