ある日突然、何も操作していないのにExcelが勝手に起動を繰り替える事象が発生し始めました。
非常にレアケースなので参考になる方は少ないかもしれませんが、原因の追求がとても大変だったので忘れないように覚書しておきます。
発生事象
ある日自宅のPCを使っていると、突然Excelが起動してきました。
しかもキーボードもマウスも何も触れていないのに何度も何度も起動を繰り返します。
どうやってExcelが起動してくるかと言うと、勝手に[ファイル名を指定して実行]画面が表示され、テキストボックスに文字列「excel」が自動的に入力されて、これまた自動的に[OK]ボタンが押されてExcelが起動してきます。
この一連の処理が何度も繰り返されます。
まるでVBScriptでSendkeysを使って手動操作を自動的に実行しているような感じです。
また、その事象が収まっても時間が立つと再び同様の事象が発生します。
事象の発生間隔も一定間隔ではなく非常にまばらです。
原因調査中に気づいたのですが、さらに不思議だったのは、Windowsにログインする前のログイン画面ですでにその事象が発生しているという点です。。
勝手にPINコードが入力され、[OK]が押されて、PINコードが正しくない(たぶんexcelという文字列が送信されている)ためエラーとなっているからです。
原因
まず最初にウイルスやマルウェアを疑いましたが、PCにはESETがインストールされています。
ESETは特に感染を知らせる通知なども出しておらず、この事象をウイルスやマルウェアとは認識していませんでした。
結論から先にいうと「キーボードの故障」でした。
Logicoolの無線キーボードを使用していますが、キーボードの機能としてファンクションキー?にExcelを起動が割り当てられていたようで、キーボードの故障によりそのファンクションキーがランダムに勝手に動作していることが原因でした。
私の記憶では、キーボードのファンクションキーにExcel起動を設定した記憶はないのですが...
キーボードを別のキーボードに変更したところ、事象が発生しなくなり解決に至りました。
もしPCを使っているときに自分の操作とは別に勝手にメニューが選ばれたり、別のウインドウがアクティブになったり、アプリが勝手に起動したりしたらキーボードの故障を疑いましょう。
原因がわかるまでの経緯、原因調査方法に興味がある方は、記事を最後まで読んでいただけると良いかと思います。
原因調査
ESETが検知していないので、自分で原因を調査するしかないため以下のような調査をしました。
起動プロセスの確認
タスクマネージャーを起動して、CPUの使用率で降順に並び替えておきます。
その事象が発生する際にタスクマネージャーを確認し、CPUを使っているプロセスがないか確認しました。
事象発生時だけCPUを使うプロセスは有りませんでした。
タスクマネージャー上には表示されないようにするマルウェアもあるそうなので、更に詳しくプロセスを確認できる「Process Hucker」や「Process Explorer」も使ってみましたが、該当するプロセスは見つかりませんでした。
「Process Hucker」
「Process Explorer」
プロセスの詳細な調査には上記2つのツールが役に立つので、必要なときはぜひ使ってみてください。
クリーンブートしてみる
クリーンブートした状態で事象が再現するか確認しました。
これで原因が分からなかったらもう調査する手がないので、あきらめて初期化になる感じです。
クリーンブートとは、Windowsが起動に必要なMicrosoftが提供している最低限のサービスだけ実行して、その他のサービスをすべて無効化してWindowsを起動する方法です。
手順は以下のとおりです。
[スタート]ボタンを右クリック、もしくは、[Windows]キー + [R]キーを押して[ファイル名を指定して実行]を表示します。
[名前]ボックスに"msconfig"と入力して[OK]をクリックします。
[システム構成]画面が表示されるので、[サービス]タブを選択します。
[サービス]タブの画面下部にある[Microsoft のサービスをすべて隠す]チェックボックスをオンにします。
Microsoftのサービス以外が一覧表示されている状態で[全て無効]をクリックします。
一覧表示されているサービスのチェックボックスが全てオフになっていることを確認して[OK]をクリックします。
再起動を促すメッセージが表示されるので、即再起動しても良ければ[再起動]ボタンをクリックします。
後で再起動したければ[再起動しないで終了する]をクリックします。
Windowsを再起動します。
以上でWindowsがクリーンブートで起動されます。
結果的には、クリーンブートしても事象は再発してしまいました。残念ながら初期化です。
クリーンブートから元の状態に戻す
初期化するので本来なら元に戻差なくても良いのですが、もしかしたら原因がわかるかもしれないので今の状態のシステムディスクのクローンを作ってバックアップしておきたかったので、クリーンブートされた状態から通常のブート状態に戻します。
元に戻す手順は以下のとおりです。
[スタート]ボタンを右クリック、もしくは、[Windows]キー + [R]キーを押して[ファイル名を指定して実行]を表示します。
[名前]ボックスに"msconfig"と入力して[OK]をクリックします。
[システム構成]画面が表示されるので、[サービス]タブを選択します。
[サービス]タブの画面下部にある[Microsoft のサービスをすべて隠す]チェックボックスをオンにします。
Microsoftのサービス以外が一覧表示されている状態で[全て有効]をクリックします。
一覧表示されているサービスのチェックボックスが全てオンになっていることを確認して[OK]をクリックします。
再起動を促すメッセージが表示されるので、即再起動しても良ければ[再起動]ボタンをクリックします。
後で再起動したければ[再起動しないで終了する]をクリックします。
以上でクリーンブート状態からいつものWindowsに戻った状態で起動してきます。
補足
クリーンブートの状態だと必要最低限のサービスしか動作していないため、使用するアプリケーションによっては動作しなかったり、何かしらのエラーメッセージが表示されるなど、通常の状態とは異なった動作が発生します。
そのまま使い続けるのであれば、必ずクリーンブート状態から通常の状態に戻して起動しましょう。
まとめ
非常にレアケースですが、マルウェアだと思ったら実はキーボードの故障でしたというオチの話です。
もっとランダムに色々なキーが送信されていたらすぐにキーボードの故障と気づいたと思いますが、きれいにExcelを起動する処理を繰り返すのでWindows以外の画面でも発生することに気づくまでわかりませんでした。
結局初期化することになってしまったので、余計な仕事が増えました。が、初期化する前のシステムディスクのバックアップをとってあるので大した時間はかかりませんでした。
バックアップって大事。
以上、マルウェアだと思ったらキーボードの故障でした!という記事でした。
レアケースですが、同じような症状にみまわれたらキーボード故障も疑ってみましょう。
コメント