Microsoft Sysinternalsツールは非常に強力で便利ですが、欠けている機能の1つは、新しいバージョンをチェックする機能です。現在、最新の状態に保つには、Sysinternalsサイトを定期的にチェックし、システムと最新の公式リリースのバージョンを比較する必要があります。
より良い解決策として、システムにあるSysinternalsツールを自動的に更新するバッチスクリプトを作成しました。バッチスクリプトファイルをSysinternalsツールが配置されているフォルダーに配置するだけで、残りはスクリプトが実行します。構成は必要ありません。
仕組みは次のとおりです。
- Sysinternalsのツールの現在のリストがダウンロードされ、システム上のファイルと比較されます。
- 一致するものが見つかった場合、Sysinternalsの現在のバージョンがシステムにコピーされます。
- ツールが現在実行中の場合、ツールは閉じられ、スクリプトが完了すると再起動されます。
スクリプト
@ECHO OFF
TITLE Sysinternals Updater
ECHO Sysintenals Updater
ECHO作成者:Jason Faulkner
ECHO SysadminGeek.com
エコー。
エコー。
SETLOCAL ENABLEDELAYEDEXPANSION
SET SysInternalsTools = "%Temp%SysInternalsTools.tmp.txt"
SET CurrentTasks = "%Temp%CurrentTasks.tmp.txt"
SET StartWhenFinished = "%Temp%StartWhenFinished.tmp.txt"
ECHO検出ディレクトリ:%〜dp0
%〜d0
CD%〜p0
エコー。
エコー。
ECHO現在のツールリストをダウンロードしています...
SET LiveShare = \ live.sysinternals.comtools
START / MIN%LiveShare%
DIR%LiveShare%/ B>%SysInternalsTools%
タスクリスト>%CurrentTasks%
ECHO;終了したツール>%StartWhenFinished%
エコー。
ECHOインストール済みのSysInternalsツールの更新
FOR / F %% A IN( 'DIR / B')DO(
FOR / F "usebackq" %% B IN(%SysInternalsTools%)DO(
IF / I [%%A] == [%%B](
ECHO更新%% A
FOR / F "usebackq" %% C IN(%CurrentTasks%)DO(
IF / I [%%A] == [%%C](
ECHO %% Cは現在実行中であり、プロセスを強制終了します-キューの再起動
ECHO %% C >>%StartWhenFinished%
TASKKILL / IM %% A / T / F
)
)
XCOPY%LiveShare %%% B %% A / Y
エコー。
)
)
)
エコー。
ECHO強制終了されたタスクの再開
FOR / F "usebackq skip = 1" %% A IN(%StartWhenFinished%)DO(
ECHO開始%% A
START "Sysinternals Tool" "%% A"
)
存在する場合%SysInternalsTools%DEL%SysInternalsTools%
IF EXIST%CurrentTasks%DEL%CurrentTasks%
IF EXIST%StartWhenFinished%DEL%StartWhenFinished%
ENDLOCAL
エコー。
一時停止
リンク
SysadminGeekからSysinternalsアップデータスクリプトをダウンロードする