[小ネタ]くらめその情シス:EC2上のWindowsのActive Directory 修復モードでアプリを削除する
はじめに
どうも、情シスの徳道です。今回はちょっとした小ネタをご紹介します。
EC2上でWindowsサーバを運用されているところは多いと思います。AWSの責任共有モデルでOSのセキュリティパッチやウィルス対策ソフトはユーザー側での管理が必要になっています。
https://aws.amazon.com/jp/compliance/shared-responsibility-model/
弊社でもウィルス対策ソフトとしてESET Endpoint FileSecurityをEC2上のWindowsサーバに導入しています。
先日、サーバ運用でちょっと困ったことがあり、その時に解決した方法を紹介します。
ウィルス対策ソフトがアンインストールできなくなった…
先日社内のあるWindowsサーバで、ウィルス対策ソフトのバージョンアップをしようとしたところ、アップデートインストールが失敗するように…。
手動でのアンインストールを試みるも、サービスが停止を受け付けず、ベンダーが提供しているアンインストールツールは動作せず。
これはまずい・・・。
一般的にウィルス対策ソフトはシステム特権レベルで動作するプログラムが多く、そうしたプログラムを通常モードで停止・アンインストールすることは非常に難しいです。そのため「セーフモード」でOSを起動してアンインストール作業をすることが多いと思われます。
しかしパブリッククラウドはハードウェアコンソールや仮想インフラの管理コンソールが提供されていることは少なく、AWS Systems ManagerもGUIでの操作はできませんし、やろうとするとかなり手間がかかります。さてどうしたものか。。。
Active Directory 修復モードが使えるぞ!
Windowsのサーバは複数の起動モードを持っており、msconfigで切り替えができることはご存知の方も多いと思います。
セーフモードにもいくつかのモードがありますが、ここで大事なのは「リモートデスクトップができるモードであること」です。
そこで「Active Directory 修復モード」を指定します。
OKをクリックすると、OSが再起動されます。この待ってる間って、何回やっても落ち着かないものですよね。。。
無事インスタンスが起動してきたらリモートデスクトップに繋いでみましょう。セーフモードの表示が4隅に出ていればOKです。
ウィルス対策ソフトのアンインストールツールを実行してみました。
はい、問題なく完了しますね。サービスもきれいに削除されました。
※このプログラムの場合はセーフモードでウィルス対策ソフトのプログラム本体を削除し、再度セーフモードで再起動して残ったデータを削除、という2段階で削除しています。
ちなみに通常モードですとこのように「セーフモードで実行してね」というエラーになってプログラムを削除できません。
作業が終わったら、再びmsconfigを立ち上げ、セーフブートのチェックを外します。Windowsサーバを再起動すると通常モードに戻ります。この後ウィルス対策ソフトを再インストールして事なきを得ました。
なお、msconfigのセーフブートのチェックを外さないと、何度再起動してもActive Directory 修復モードで起動してきますからご注意を。
終わりに
Windowsサーバ管理のベテランの方からすれば、えーそんなこと?って思われるかもしれないのですが、意外にもActive Directory 修復モードでリモートデスクトップが使えることはあまり知られていないのですよね。Active Directory 修復モードはそのサーバがActive Directoryサーバでなくとも使えますので、パブリッククラウド上のトラブルシューティングに活用できそうです。
すべてのアプリケーションで対応できるかどうかは試してみないとわからない部分はありますが、一度試してみる価値はあると思います。
お困りになっているサーバ管理者の方の一助になれば幸いでございます。