目次
はじめに
こんにちは。ディーネットの牛尾です。
今回はAWS上のWindowsサーバにRDP接続できなくなったときの
対処法について書いていきます。
なぜこの記事を書くのか
本来、WindowsサーバのAdministratorパスワードは、AWSマネジメントコンソールから
「パスワードの取得」を選択し、保持している秘密鍵(.pemファイル)で復号化して確認するのが
正しい手順です。


もし、秘密鍵を紛失してしまった場合はどうでしょうか?
- RDP接続ができない
- パスワードも復号化できない
- サーバにアクセスする手段がない...
そんな絶体絶命の状況でも、AWS Systems Manager(SSM)を使えば
サーバに接続してパスワードを変更できます。
今回はその手順を実際に試した結果とともに紹介していきます~。
SSMとは
AWS Systems Manager(SSM)は、AWSリソースを管理するためのサービスです。
その中の「Session Manager」という機能を使うと、ブラウザやAWS CLIから
直接EC2インスタンスに接続できます。
SSHやRDPのポートを開放する必要がなく、セキュアにサーバへアクセスできるのが特徴です。
※注意: 今回の記事では、SSMの初期設定(IAMロールの設定やSSM Agentのインストールなど)は
完了している前提で進めます。
前提条件
- EC2インスタンス(Windows Server)が起動している
- EC2インスタンスにSSM用のIAMロール(
AmazonSSMManagedInstanceCoreポリシー)がアタッチされている - SSM Session Managerで接続できる状態になっている
実際にやってみた
1. SSM Session Managerで接続
AWSマネジメントコンソールから以下の手順で接続します。
- EC2ダッシュボードを開く
- 対象のWindowsインスタンスを選択
- 「接続」ボタンをクリック
- 「Session Manager」タブを選択
- 「接続」をクリック

すると、ブラウザ上でPowerShellのプロンプトが表示されます。
PS C:\Windows\system32>
2. パスワード変更コマンドを実行
Windowsでユーザーのパスワードを変更するには net user コマンドを使います。
失敗例1: パスワードが弱すぎる
PS C:\Windows\system32> net user Administrator hogehoge2026
結果:
The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements.
More help is available by typing NET HELPMSG 2245.
パスワードが簡単すぎるとWindowsのパスワードポリシーにひっかかって、
OS側で弾かれてしまいます。
失敗例2: 特殊文字のエスケープ忘れ
PS C:\Windows\system32> net user Administrator fN4$wp%7M#62&
結果:
At line:1 char:36
+ net user Administrator fN4$wp%7M#62&
+ ~
The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double quotation marks ("&") to pass it as part of a string.
& や ^ などの記号は、PowerShellでは特殊な意味を持つため、そのまま使うとエラーになってしまう...
成功例: ダブルクォーテーションで囲む
PS C:\Windows\system32> net user Administrator "fN4$wp%7M#62&"
結果:
The command completed successfully.
成功!!!!!
パスワードに特殊文字を含む場合は、必ずダブルクォーテーション(")で囲む必要があるようですね。
3. RDP接続を確認
そして、パスワード変更後、新しいパスワードでRDP接続できることを確認します。
- ユーザー名:
Administrator - パスワード: 先ほど設定した新しいパスワード
無事に接続できれば完了です!
ポイントまとめ
- パスワードは複雑なものを設定する(大文字・小文字・数字・記号を組み合わせる)
- 特殊文字(
&,^,$など)を含む場合は必ずダブルクォーテーションで囲む net userコマンドの基本構文:net user [ユーザー名] "[新しいパスワード]"
まとめ
今回は、秘密鍵を紛失してRDP接続できなくなったWindowsサーバに対して、SSMを使ってパスワードを
変更する方法を紹介しました。
ただし、これはあくまで最終手段です。
秘密鍵は絶対になくさないように管理しましょう。
- 秘密鍵は安全な場所に保管する
- チームで共有する場合は、パスワード管理ツールを使う
それでも万が一のときは、今回の方法を思い出してみてください。
SSMがあれば、無理やりサーバへのアクセスをすることができます。
最後まで読んでいただき、ありがとうございました。
マネージドサービス課に所属しています。