Microsoft Sysinternalsツールは信じられないほど強力で便利な機能の1つに、新しいバージョンをチェックする機能があります。現在、Sysinternalsサイトを定期的に確認し、システムと最新の公式リリースとの間でバージョンを比較して、最新の状態に保つ必要があります。
より良い解決策として、バッチを作成しましたシステムにあるSysinternalsツールを自動的に更新するスクリプト。行う必要があるのは、バッチスクリプトファイルをSysinternalsツールが配置されているフォルダーに入れ、スクリプトが残りを実行するだけです。構成は必要ありません。
以下にその仕組みを示します。
- Sysinternalsからのツールの現在のリストがダウンロードされ、システム上のファイルと比較されます。
- 一致が見つかった場合、Sysinternalsの現在のバージョンがシステムにコピーされます。
- ツールが現在実行中の場合、ツールは閉じられ、スクリプトが完了すると再起動されます。
スクリプト
@ECHO OFF TITLE Sysinternals Updater ECHO Sysintenals Updater ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL ENABLEDELAYEDEXPANSION SET SysInternalsTools="%Temp%SysInternalsTools.tmp.txt" SET CurrentTasks="%Temp%CurrentTasks.tmp.txt" SET StartWhenFinished="%Temp%StartWhenFinished.tmp.txt" ECHO Detected directory: %~dp0 %~d0 CD %~p0 ECHO. ECHO. ECHO Downloading current tool list... SET LiveShare=live.sysinternals.comtools START /MIN %LiveShare% DIR %LiveShare% /B > %SysInternalsTools% TASKLIST > %CurrentTasks% ECHO ;Terminated tools > %StartWhenFinished% ECHO. ECHO Updating installed SysInternals tools FOR /F %%A IN ('DIR /B') DO ( FOR /F "usebackq" %%B IN (%SysInternalsTools%) DO ( IF /I [%%A]==[%%B] ( ECHO Updating %%A FOR /F "usebackq" %%C IN (%CurrentTasks%) DO ( IF /I [%%A]==[%%C] ( ECHO %%C is currently running, killing process - queue restart ECHO %%C >> %StartWhenFinished% TASKKILL /IM %%A /T /F ) ) XCOPY %LiveShare%%%B %%A /Y ECHO. ) ) ) ECHO. ECHO Resuming killed tasks FOR /F "usebackq skip=1" %%A IN (%StartWhenFinished%) DO ( ECHO Starting %%A START "Sysinternals Tool" "%%A" ) IF EXIST %SysInternalsTools% DEL %SysInternalsTools% IF EXIST %CurrentTasks% DEL %CurrentTasks% IF EXIST %StartWhenFinished% DEL %StartWhenFinished% ENDLOCAL ECHO. PAUSE
リンク集
Sysadmin GeekからSysinternals Updaterスクリプトをダウンロードする