Sysinternals Tools 자동 업데이트 스크립트

그외 2010. 7. 30. 09:31 Posted by TEAMCR@K

Microsoft 의 Sysinternals 에서 제공되고 있는 Tool들은 취약점 점검할시에, 보안 점검할시에 매우 유용하게 사용되고 있습니다.
Tool 들이 워낙 많기 때문에 각각에 대한 버전 업데이트 정보를 얻는것도 쉽지 않죠.

아래는 Sysinternals 관련된 툴 (SysinternalSuite 라고 하지요) 들을 이전 다운로드 받은것과 비교해서 업데이트 된 부부분은 자동으로 교체해주는 배치 파일 스크립트 입니다.

URL  정보 : http://sysadmingeek.com/articles/batch-script-to-auto-update-sysinternals-tools/

 @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.com\tools
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