Windows 8.1 32 bit /Windows10 32 bit 環境で ActiveX が自動的に削除されてしまう

こんにちは。Windows プラットフォーム サポートの加藤です。
本日は、Windows 8.1 32 bit /Windows10 32 bit 環境 において ActiveX が自動的に削除されてしまう現象についてご紹介いたします。
※ Windows 8.1 64 bit / Windows10 64 bit 環境では ActiveX は削除されません

ActiveX が自動的に削除されてしまう現象は、SilentCleanup タスクが実行されることで発生します。
SilentCleanup タスクでクリーンアップ対象となるフォルダはDownloaded Program Files とTemporary Internet Files ですが
ActiveX は、クリーンアップ対象となるフォルダ Downloaded Program Files に、既定でダウンロードされるため、本現象が発生します。

Windows 8.1 までは、ディスク全体の容量に対して空き容量が 10 % を下回った場合にのみ SilentCleanup タスクが実施されていましたが、
Windows 10 では、ユーザーの利便性を向上させる意図から、システムが idle 状態に移行した場合にも、SilentCleanup タスクが実行されるように
動作が変更されたため、本事象が発生する頻度が増えています。

< SilentCleanup タスクの実行条件>
■ Windows 10 ディスク空き容量が 10 % を下回る or 一定時間 idle 状態
■ Windows 8.1 ディスク空き容量が 10 % を下回る のみ

< SilentCleanup タスクのクリーンアップ対象フォルダ >
■ Downloaded Program Files (規定で ActiveX コンポーネントのダウンロード先となっています)
■ Temporary Internet Files

< Bit 数の違いによる差異 >
Bit 数の違いによってActiveX コンポーネントに関連する差異は下記 2 点ございます。

■ 32 bit 環境の場合
エクスプローラー上に “ C:\Windows\Downloaded Program Files ” 配下のActiveX コンポーネントが表示される
SilentCleanup タスクで ActiveX コンポーネントが削除される

■ 64 bit 環境の場合
エクスプローラー上に“ C:\Windows\Downloaded Program Files ” 配下のActiveX コンポーネントが表示されない
SilentCleanup タスクで ActiveX コンポーネントが削除されない

※ 64 bit 環境 の場合、エクスプローラー上には C:\Windows\Downloaded Program Files 配下ActiveX コンポーネントが
※ 表示されませんが dir コマンドにて確認可能です。

以下、ActiveX が自動的に削除されてしまう現象の回避策をご案内いたします。
2 つの方法のいずれかを実施することで、回避することができます。

  1. ActiveX のダウンロード先を SilentCleanup タスクのクリーンアップ対象から除外する
  2. SilentCleanup タスクを停止する

以下にて、それぞれの設定手順をご案内いたします。


1.  ActiveX のダウンロード先を SilentCleanup タスクのクリーンアップ対象から除外する


1 コマンド プロンプトを管理者権限で実行する

2 以下のコマンドを実行し、クリーンアップ設定を実施する。

cleanmgr /sageset:2

※ /sageset はクリーンアップ設定をするオプションで、0 ~ 65535 の保存番号を指定します。(上記例では 2 番)。
クリーンアップ設定は /sageset で指定した保存番号に対し、削除対象となるフォルダを保存することができます。
フォルダの選択は、手順 3 で実施します。

3 手順 2 の後、ディスク クリーンアップの設定画面が表示されたら、削除されるファイルから [ダウンロードされたプログラム ファイル] のチェックを外し、[OK] を選択する。

4 タスク スケジューラを起動。

5 タスク スケジューラの左ペインにある [タスク スケジューラ ライブラリ] より、[Microsoft] -> [Windows] -> [DiskCleanup] の順に選択する。

6 画面中央に SilentCleanup タスクが表示されたら、右クリックをし、[プロパティ] を選択する。

7 プロパティ画面の [操作] タブを選択し、[編集] をクリックする。

8 引数の追加欄に、手順 1 で用意したクリーンアップ設定を以下のように指定し、[OK] をクリックする。

/autoclean /sagerun:2 /d %systemdrive%

※ /sagerun は指定した設定番号(上記例では 2 番)を使用し cleanmgr を実行するオプションです。/sagerun で指定した保存番号に設定されたフォルダに対してクリーンアップ処理を実行します。

 

  • < 想定されるデメリット >
    C:\Windows\Downloaded Program Files 配下の一時ファイル等、不要なファイルが自動的に削除されなくなります。
    そのため、ディスク容量が逼迫している場合や一時ファイルの残存を回避したい場合は、定期的に不要なファイルを確認し手動、もしくはバッチ ファイル等でファイルを削除ください。

 


2.  SilentCleanup タスクを停止する


1 コマンド プロンプトを管理者権限で実行する。

2 以下のコマンドを実行し、SilentCleanup タスクを無効化する。

schtasks.exe /change /TN "\Microsoft\Windows\DiskCleanup\SilentCleanup" /Disable

 

  • < 想定されるデメリット >
    SilentCleanup タスクを無効化した場合は、一時ファイル等、不要なファイルが自動的に削除されなくなります。
    そのため、ディスク容量が逼迫している場合や一時ファイルの残存をさせてくない場合は、定期的に不要なファイルを確認し手動、もしくはバッチ ファイル等でファイルを削除ください。

このブログが皆様のお役に立てれば幸いです。