コマンドプロンプトがランダムにポップアップしてすぐに閉じる

コマンドプロンプトまたは不明なプログラムウィンドウが、何もせずに特定の間隔またはランダムな間隔で点滅する場合は、それがタスクスケジューラジョブである可能性が高くなります。 ただし、マルウェアではないことを確認するためだけに、どのプログラムが実行されたかを確認する必要があります。

タスクマネージャーを開いて[プロセス]タブまたは[詳細]タブを確認するまでに、コマンドプロンプトプロセスまたは不明なプログラムは既に実行を完了しているはずです。

コマンドプロンプトウィンドウがすぐに閉じて、何が実行されているかを確認したり、PrintScreenを使用してスクリーンショットを撮ったりする時間がないかもしれません。

この投稿では、コマンドプロンプトウィンドウがランダムにポップアップする理由と、最後に実行された不明なタスクの正確な名前を見つける方法について説明しています。

コマンドプロンプトがランダムにポップアップしてすぐに閉じる

特に、システムが数分間アイドル状態になっているときにのみコマンドプロンプトウィンドウが点滅する場合は、自動メンテナンスタスクが実行されている可能性があります。 PowerShellを使用して自動メンテナンスタスクのリストを表示できます。

その他の可能性は次のとおりです。

Office 365バックグラウンドタスク

タスクスケジューラライブラリMicrosoft\Officeは2つのスケジュールされたタスクがあります。

  • OfficeBackgroundTaskHandlerLogonは、ユーザーがログオンしたときに実行されます
  • OfficeBackgroundTaskHandlerRegistrationは1時間ごとに実行されます

上記のタスクが実行されると、フラッシュでコマンドプロンプトウィンドウが開いたり閉じたりします。これは、ユーザーにとって非常に煩わしい作業です。 どちらのタスクも「ユーザー」アカウントグループで実行するように設定されています。 「システム」アカウントで実行するようにOfficeBackgroundTaskHandlerRegistrationを設定すると、コマンドプロンプトポップアップが表示されなくなり、タスクが非表示で実行されます。

  1. タスクスケジューラを開き、 Microsoft\Officeブランチに移動しMicrosoft\Office
  2. OfficeBackgroundTaskHandlerRegistration選択して右クリックし、[プロパティ]を選択します。
  3. [ ユーザーまたはグループの変更]をクリックし、「 System」 、「OK」、「OK」と入力します。

ドライバー設定ユーティリティ

特定の間隔でドライバーを更新するタスクを(スケジューラーを介して)実行し、コマンドプロンプトを自動的に開いたり閉じたりするドライバーセットアップユーティリティというサードパーティソフトウェアがあります。 Acer、Gateway、Packard BellなどのOEMは、コンピューターにDriverSetupUtilityをバンドルしているようです。 DriverSetupUtilityまたはドライバーアップデータープログラムは、スケジュールされたタスクとして1時間ごとに毎日のタスクとして実行するように設定されており、実行すると次のような画面が表示されます。

 FINDSTR:C:\ ProgramData \ acer \ updater2 \ updater2.xmlを開けませんシステムは指定されたパスを見つけることができません。 ファイルC:\ Program Files \ DriverSetupUtility \ FUB \ +にアクセスできませんFINDSTR:C:\ ProgramData \ packard bell \ updater2 \ updater2.xmlを開けませんシステムは指定されたパスを見つけることができません。 ファイルC:\ Program Files \ DriverSetupUtility \ FUB \ +にアクセスできませんFINDSTR:C:\ ProgramData \ gateway \ updater2 \ updater2.xmlを開けません指定されたパスが見つかりません。 ファイルC:\ Program Files \ DriverSetupUtility \ FUB \ +にアクセスできませんFINDSTR:C:\ ProgramData \ gateway \ updater2 \ updater2.xmlを開けません 

サードパーティのドライバーアップデータープログラムはシステムに必須ではありません。不要な場合は、コントロールパネル→プログラムと機能→ ドライバーセットアップユーティリティ (またはDriverSetupUtility)をアンインストールします

一方、Dellには独自のSupportAssistユーティリティがあり、これらのクレイジーなバッチファイルを実行しません。 それはきちんとしたインターフェースを持っており、ユーザーはシステムの更新があれば通知されます。

コマンドプロンプトウィンドウがポップアップする理由を確認する

Office 365またはDriver Updaterを使用しないでください。 上記の情報が該当しない場合は、トリガーされているプログラムまたはタスクを絞り込むために従うことができるいくつかの一般的な追跡方法を次に示します。

プロセスモニターのトレース

プロセスモニタートレースを実行して、新しいプロセスまたはスレッドの作成アクティビティを監視する場合、コマンドプロンプトウィンドウまたは画面にポップアップ表示された(そしてすぐに終了した)その他のプログラムがタスクスケジューラーによって起動されたかどうかを判別できるはずです。ない。 詳細については、「Windowsで実行中のプロセスの親プロセスを特定する方法」の記事を参照してください。

次に、コマンドプロンプトウィンドウを開いたタスクスケジューラジョブの例を示します。 プロセスの作成は、プロセスモニターを使用して追跡されました。

PIDまたは親プロセスがわかったら、タスクマネージャーの[詳細]タブでそのPIDを検索するだけです。 Windowsサービスを実行するホストプロセスであるsvchost.exeを指している可能性があります。 タスクマネージャーでコマンドラインフィールドを有効にすると、サービスグル​​ープが表示されます。 サービスグル​​ープ名が"Schedule"場合、それはタスクスケジューラです。

Windows SysInternalsのProcess MonitorおよびProcess Explorerは、現在バックグラウンドで実行されているものを正確に通知します。 これらの優れたユーティリティに加えて、スケジュールされたタスクを追跡するために、組み込みのタスクスケジューラコマンドラインユーティリティSchTasks.exeまたはサードパーティのTaskSchedulerViewユーティリティを使用することもできます。

画面で最後に点滅したコマンドプロンプトウィンドウがタスクスケジューラジョブとして起動されたかどうかを確認する方法は、次のとおりです。

オプション1:TaskSchedulerViewユーティリティの使用

NirSoftのTaskSchedulerViewは、タスクに関するすべての情報を表示します。 このツールは、タスクスケジューラからのすべてのタスクのリストを表示し、複数のタスクを一度に無効または有効にできます。 リストされているすべてのタスクについて、次の情報が表示されます。

  • タスク名
  • 説明文
  • 状態
  • 非表示(はい/いいえ)
  • 最終実行/次
  • 実行時間
  • タスクフォルダ
  • タスクのEXEファイル名またはCOMハンドラー
  • 逃した実行の数
  • もっと…

TaskSchedulerViewで、リストを「最終実行」列で並べ替え、最終実行タスクをダブルクリックして、最後に実行されたプログラムを正確に見つけます。

タスクが標準のWindowsタスクの場合は、無視してください。 タスク名またはプログラム名が疑わしい場合は、Malwarebytesマルウェア対策を使用してシステムの完全スキャンを実行するだけでなく、シグネチャを更新してウイルス対策の完全スキャンを実行します。

(ただし、バックグラウンドで実行されるすべてのプログラムがスケジュールされたタスクであるとは限りません。現在実行中のプログラムが正当な理由で別のプログラムまたはコマンドラインを起動する可能性があります。または、いくつかのスタートアップエントリポイントのいずれかから実行されている可能性があります。 。自動実行、プロセスエクスプローラー、およびプロセスモニターユーティリティを使用すると、実行中のプロセスと自動開始エントリの明確な画像が得られます。

オプション2:SchTasks.exeを使用してタスクリストと最終実行時間を取得する

タスクスケジューラの実行履歴は、 schtasks.exeコンソールツールを使用して照会できます。

管理者特権のコマンドプロンプトウィンドウを開き、次のように入力します。

 schtasks / query / FO TABLE / v | クリップ 

注:タスクのクエリの場合、SchTasks.exeでは管理者特権のコマンドプロンプトから実行する必要はありません。

出力はクリップボードにコピーされます。 メモ帳を開き、出力を貼り付けます。

タスクのリストと、最終実行時間を含むタスクの詳細が表示されます。 未知のプログラムウィンドウが現れたり消えたりした実際の時間と時間を一致させます。

特に注目するのは、 最終実行時間、 タスク名、実行するタスクという3つの列です。 このリストは最終実行時間でグループ化またはソートされていないため、ファイルの最後までこれらのフィールドを調べてください。

Excelへのインポート

詳細な検査を行うには、次のコマンドを使用して、TABLEまたはLISTレポート形式の代わりにCSVレポートを生成します。

 schtasks / query / FO CSV / V> d:\ tasks-list.csv 

たとえば、 d:\ tasks-list.csvは、出力が書き込まれるファイルの名前とパスです。 Excelを使用してCSVファイルを開き、必要に応じて列を再配置し、それに応じてフォーマットします。 前回の実行時間 (降順)で並べ替えます

組み込みのタスクスケジューラには、タスクの最終実行時刻とその他すべての詳細が一覧表示されますが、すべてのフォルダを手動で確認するのは時間がかかります。 SchTasks.exeまたはTaskSchedulerViewを使用すると、すぐに作業を実行できます。

不明なプログラムまたはコマンドプロンプトウィンドウがポップアップし、ウィンドウのタイトルを読み取る前にすぐに閉じる場合、実行されたプログラムを見つける方法がわかりました。

こちらもご覧ください

  • 不明なエラーメッセージの原因となったプログラムを見つける方法
  • プロセスモニターを使用してレジストリとファイルシステムの変更を追跡する方法
  • Windowsで実行中のプロセスの親プロセスを特定する方法

関連記事