
私は、Windows(できるだけ多くの種類)マシンから、既知の安全な一時フォルダ/ファイル(Windowsの一時フォルダ、すべてのユーザーのIEの一時フォルダなど)をすばやく見つけてクリーンアップする優れたバッチスクリプトを探しています。私はCCleaner(Cleanmgr.exeよりも)のようなUIツールが好きですが、複数のコンピュータをクリーンアップしようとすると迅速に、または最小限の関与で、スクリプトがあればいいと思います。
さらに、スクリプトを使用すると、複数のスクリプトを連結できます。おそらく、1 つのスクリプトでさまざまなウイルス対策および/またはマルウェア検出器を起動することになります。
誰か良いものを持っているか、良いリソースを教えてもらえますか?
答え1
これは私が書いた小さなスクリプトで、USB ユーティリティ ドライブに保存しています... Citrix サーバーに最適です :)
@echo off
Echo Started %time%
Echo Started %time% >> temps.txt
Echo Running for XP... >> temps.txt
Echo Running for XP...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temp\" (
RMDIR /S /Q "%%G\Local Settings\Temp"
MKDIR "%%G\Local Settings\Temp"
Echo Cleared %%G\Local Settings\Temp
Echo Cleared %%G\Local Settings\Temp >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temporary Internet Files\" (
RMDIR /S /Q "%%G\Local Settings\Temporary Internet Files\"
MKDIR "%%G\Local Settings\Temporary Internet Files\"
Echo Cleared %%G\Local Settings\Temporary Internet Files\
Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Running for Vista >> temps.txt
Echo Running for Vista...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Temp\" (
RMDIR /S /Q "%%G\AppData\Local\Temp\"
MKDIR "%%G\AppData\Local\Temp\"
Echo Cleared %%G\AppData\Local\Temp\
Echo Cleared %%G\AppData\Local\Temp\ >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\" (
RMDIR /S /Q "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
MKDIR "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
Echo Cleared %%G\Local Settings\Temporary Internet Files\
Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Ended %time%
Echo Ended %time% >> temps.txt
自己責任で使用してください。これにより内容が削除されます。
私はこれを、Documents and Settings フォルダまたは Vista の Users から実行します。CD コマンドを先頭に簡単に追加して、どこからでもこれを実行できます。
cd %userprofile%
cd ..
また、私の経験では、いつでも temp フォルダをクリアしても通常は安全です。temp 内のファイルを使用するプログラムはファイルをロックし、このスクリプトはそのファイルでエラーを出して続行します。
IF EXIST 行はここで特に便利です。スクリプトが NetworkService や同様のフォルダーにフォルダーを作成しないようにします。Vista または XP で実行していない場合は、そのセクションは非常に速く実行されます。
スクリプトを実行する場所に temps.txt ログファイルを作成します。
編集: Freenode の ##windows-server からのアドバイス: Q: 最初にどの OS で実行されているかを検出し、適切なセクションを実行しないのはなぜですか? A: 抽出されたハード ドライブなどのオフライン メディアでスクリプトを頻繁に使用します。
答え2
一時ファイルをゴミ箱に入れることには注意してください。一部のソフトウェア インストーラーは、起動の合間にそこにファイルを保管します。私の昔の上司は重要なファイルをそこに保存していました (ただし、当時は、いくつかのことについてあまり賢明ではありませんでした)。
バッチ ファイルで、次の操作を実行します。
DEL /S /Q "%TEMP%\*.*"
必要な処理が実行されます。ログオン スクリプトとして実行すると (または、通常はログオン中に実行すると)、ユーザーごとの temp ディレクトリがクリアされます。スタートアップ スクリプトとして実行すると (.DEFAULT として実行中に)、マシンごとの temp ディレクトリがクリアされます。
起動時およびログオン時に経過時間に基づいて一時ファイルを消去するために実行する VBScript があります。これは顧客に属するものなので、ここに投稿することはできません (顧客の費用で作成しました) が、スクリプト作成者が数分で作成できるものです。
IE の「一時インターネット ファイル」を消去するためのサポートされている API については知りません。単に削除することもできると思いますが、私はそうしません。
答え3
最高の安全一時ディレクトリをクリーンアップする方法は cleanmgr を使用することです。欠点は、各マシンで sageset を実行するか、(はるかに簡単な) レジストリ エントリを含む ADM ファイルを作成し、グループ ポリシーを使用してクライアント デスクトップにプッシュする必要があることです。確認するレジストリ キーは、HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches です。
答え4
必要な機能はすべてすでに備わっているので、スクリプトで Ccleaner を使用するのはいかがでしょうか。次に、Psexec を使用してスクリプトをプッシュし、Ccleaner を呼び出し、完了したら Ccleaner を削除します。Ccleaner で必要なすべての設定を含む .ini ファイルを追加できます。この方法なら、車輪の再発明をする必要はありません。再利用がすべてです。