EC2 で作成した Windows Server 2019のAdministratorパスワードを忘れたので、EC2Rescueでパスワードリセットしてみた

2022.05.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

EC2でWindows Serverを作成して遊んでたいたのですが、変更したAdministratorのパスワードを忘れてしまいました。
しかし、EC2Rescueを使うことでリセットできることを知っていたので落ち着いて対処することが出来ました。

EC2Rescueの使い方の流れは以下の記事で詳しく解説されております。

この記事では管理者パスワードのリセットにフォーカスして書いてみます。

デフォルトから管理者パスワードを変更したEC2を作成

最初ログインできなくなった時はパニックになり、誤ってEC2インスタンスを削除してしまいました。
よって、ここでは管理者パスワードを変更したWindows Serverインスタンスを改めて用意したいと思います。
AMIは標準で提供されているMicrosoft Windows Server 2019 Baseを使いました。

インスタンス作成後にキーペアを使って管理者のデフォルトパスワードを取得することが出来ます。

パスワードを変更

デフォルトパスワードを使ってRDP接続を行い、管理者のパスワードを変更しましょう。

PS C:\Users\Administrator> net user "Administrator" "HogeFuga111"
The command completed successfully.

接続出来なくなりましたね。

復旧作業

冒頭の記事にも詳しく記載されていますが、流れとしては

  1. Windows Serverの Rescueインスタンスを作成
  2. 復旧対象インスタンスを停止してルートボリュームをデタッチし、Rescueインスタンスにアタッチ
  3. EC2Rescue for Windows Server を Rescueインスタンスへインストール
  4. Rescueインスタンスで EC2Rescue を実行し、アタッチされたオフラインボリュームの起動時管理者パスワードリセットを有効化
  5. 復旧対象インスタンスにルートボリュームとしてアタッチしなおして起動
  6. 初期パスワードをキーペア使って取得

なお、EC2Rescue for Windows Server と SSM Runbookを使う方法があるようなのですが、この記事では EC2Rescue for Windows Serverを使ったものになります。

Windows Serverの Rescueインスタンスを作成

Windows Server 2008 R2以降のEC2インスタンスで利用可能です。
本日はWindows Server 2019を対象に使ってみました。

復旧対象インスタンスを停止してルートボリュームをデタッチし、Rescueインスタンスにアタッチ

復旧対象インスタンスのルートボリュームをRescueインスタンスにアタッチする必要があります。
まず、ルートボリュームのデタッチのために復旧対象インスタンスを停止します。

ストレージタブから対象のルートボリュームを選択し、ボリュームコンソール画面で選択しデタッチします。

再度アタッチで、今度はRescueインスタンスへアタッチします。

EC2Rescue for Windows Server を Rescueインスタンスへインストール

以下公式ドキュメントでも案内されていますが、Internet Explorerのセキュリティ設定を触らずにバイナリのダウンロードだけしたかったので以下のPowerShellコマンドを使わせて頂きました。

PS C:\Users\Administrator> Invoke-WebRequest https://s3.amazonaws.com/ec2rescue/windows/EC2Rescue_latest.zip -OutFile $e
nv:USERPROFILE\Desktop\EC2Rescue_latest.zip
>>

Rescueインスタンスで EC2Rescue を実行し、アタッチされたオフラインボリュームの起動時管理者パスワードリセットを有効化

ダウンロードしたファイルを展開し、EC2Rescue.exeを実行します。

まず、Current InstanceOffline Instanceからモードを選択します。
前者はアクティブなインスタンスから潜在的な問題の診断とトラブルシューティングを行うことが出来ます。
後者は今回のように他のインスタンスのルートボリュームに対してトラブルシューティングを行う機能です。今回はこちらを利用します。

いくつかオプションがありますが、今回は管理者パスワードのリセットを行いたいので、Dinagnose and Rescueを選択し、Detected possible issuesにて、EC2LaunchのReset Administrator Passwordを選択します。

復旧対象インスタンスにルートボリュームとしてアタッチしなおして起動

これで、EC2Rescueで必要な設定変更が完了したので、復旧作業を行ったボリュームを元の復旧対象インスタンスにアタッチしなおして起動します。
この際、ルートボリュームとしてアタッチすることを間違えないようにしてください。

ボリュームのアタッチ後、停止されていたインスタンスを起動します。

初期パスワードをキーペア使って取得

問題なく起動されたら、接続メニューから関連づいているキーペアを使って初期パスワードを取得してみましょう。

取得することが出来ました。
最初に取得した初期パスワードとも違っていますね。リセットされています。

無事アクセスできることも確認出来ました。

さいごに

本日は、EC2Rescueを使って Windows Server 2019 の管理者パスワードをリセットしてみました。
冒頭の記事が5年前のものだったので、最新OSでも利用できるのだろうかと確認も兼ねて行ったのですが全くツールのUIも変わってなくて驚きました。
そして、画像つきで詳しく紹介されていますので、EC2Resuce for Windows Serverの詳しい利用方法はそちらの記事を参照頂ければと思います。

Amazon EC2のWindows用復旧ツール『EC2Rescue』が利用可能になりました | DevelopersIO

本記事がパスワードリセット方法を探している方の助けになれば幸いです。