サイトアイコン puti se blog

AWSフリートマネージャーはリモートデスクトップサービスが停止状態で接続できる?

AWSでWindowsの画面接続するときに、

リモートデスクトップサービス(RDS)

が機能していないと、致命的です。

例えば、AWSでリモートデスクトップがつながらない状態になってしまったときに、何とかリモート接続し、トラブルの状態を確認する方法はないものでしょうか?

環境・前提条件

という時の話です。

フリートマネージャーで「リモートデスクトップ(RDS)との接続」

【結論】当然、RDSが停止していると接続できません。

以下、確認エビデンスです。

AWSで、ブラウザ経由のWindows画面接続ができる「フリートマネージャー」の「リモートデスクトップ(RDS)との接続」で接続します。

その後、接続したWindows上のサービス一覧から「Remote Desktop Services」を停止します。

すると、フリートマネージャーのWindows接続が切断されます。

フリートマネージャーで「ターミナルセッションを開始する」

【結論】RDSが停止していても接続できます。

以下、確認エビデンスです。

AWSで、ブラウザ経由のWindows画面接続ができる「フリートマネージャー」の「ターミナルセッションを開始する」で接続します。

その後、接続したWindows上で「Remote Desktop Services」を停止します。

net stop "Remote Desktop Services"

コマンドを実行。

その後も、フリートマネージャーは接続できており、コマンドが実行できました。

ただし、EC2がドメインコントローラーの場合は、「ターミナルセッションを開始する」で接続できない使用でした。

【参考】ターミナルセッション接続に使用されているWindowsサービス

ドメインコントローラー上でも当然「Amazon SSM Agent」サービスは実行されている

フリーとマネージャーでは、Windows上の

「Amazon SSM Agent」

サービスが使用されています。

例えば、Administratorのパスワードを忘れてしまった場合も、「ターミナルセッションを開始する」で接続は可能で、net useコマンドでAdministratorのパスワードをリセットすることができます。

ドメインコントローラーではないWindows EC2のローカルユーザー一覧

Windows上でコマンドラインを実行しているのは、Windowsの「ssm-user」ユーザーです。

※ ドメインコントローラー上では、ローカルのssm-userがなくなってしまうために、ターミナルセッション接続できないんですね。

ドメインコントローラー上で実行したnet userコマンド結果。ssm-userは存在しない

一方、似たようにリモートコマンド実行できるSSMの「Run Command」の実行ユーザーは、「systme」ユーザーなので、ドメインコントローラーでもリモートコマンド実行可能です。

【参考】Powershellでイベントログを確認する方法

もしもの時に、
RDPが接続できないコマンド接続(ターミナル接続・RunCommand)の状態で、Powershellを使ってWindowsのイベントログを確認する方法を紹介します。

eventlog -Logname system -newest 30

eventlogコマンドは、Get-Eventlogコマンドレットのエイリアスになります。
上記は、Systemイベントログの新しいものから30件表示させた結果です。

Get-EventLog system -EntryType Error

上記は、SystemイベントログをErrorログのみ表示させた結果です。

AWSのレスキューツール

「aws上でリモートデスクトップにつながらなくなった!」
となった場合も、そこでお陀仏というわけではなく、awsから様々なレスキューツールが出ています。

リモートデスクトップが接続できない問題に、知識や勘所がなくても
以下のレスキューツールを使用すれば、解決の糸口をつかめることでしょう。

 AWSSupport-TroubleshootRDP

AWSSupport-ExecuteEC2Rescue

EC2Rescue

モバイルバージョンを終了