'############################################################
'# Server Protect For Linux Pattern ファイルの配布
'#
'# 実行方法:コマンドコンソールから実施する
'# D:\task\splx>cscript //nologo Z10_Main.vbs > splxpatcopy.log &
'#
'# UPDATE 2013/09/06
'#
'# RELATE PARAMERWE VALUE & MASHINE ENVIROMENT
'# PARM : BLANK -> XXM1XV01 (プロキシ有)
'# 1 -> XXV1DM12 ,XXV1DM13 (プロキシ無)
'#
'#
'############################################################
Option Explicit
' グローバル定義
Dim sGparm_Proxy 'パラメータ1 1:プロキシ無
Dim iStepNo : iStepNo = 1 'ステップ番号
Dim msg : msg = "" 'メッセージ
Dim sComputer
Dim URL
'************************************************************
' 定数
'************************************************************
'
' IVMIXVI01のリクエスト対象のURL (インターネットサイト)
'Const XXMIXVI01 = "http://downloadcenter.trendmicro.com/index.php?clk=tab_pattern&clkval=109®s=jp&lang_loc=13"
Const URL_XXMIXVI01 = "http://localhost:8080/examples/dl.html"
' SAV1DM12のリクエスト対象のURL (社内サイト:XXMIXVI01)
'Const URL_XXV1DM12 = "http://999.18.137.8/officescan/splxdownload/Z10_Main.ini"
Const URL_XXV1DM12 = "http://localhost:8080/examples/Z10_Main.ini"
' SAV1DM13のリクエスト対象のURL (社内サイト:XXV1DM12)
'Const URL_XXV1DM13 = "http://999.18.145.50/officescan/splxdownload/Z10_Main.ini"
Const URL_XXV1DM13 = "http://localhost:8080/examples12/Z10_Main.ini"
' Trend Micro Server Protect Download Center Base Url
'Const TO_URL_BASE_TMSP = "http://www.trendmicro.com/ftp/products/aupattern/japan_offline/"
Const TO_URL_BASE_TMSP = "http://localhost:8080/examples/"
' IVMIXVI01 Site Base URL
'Const TO_URL_XXMIXVI01 = "http://999.18.137.8/officescan/splxdownload/"
Const TO_URL_XXMIXVI01 = "http://localhost:8080/examples/"
' SAV1DM12 Site Base URL
'Const TO_URL_XXV1DM12 = "http://999.18.145.50/officescan/splxdownload/"
Const TO_URL_XXV1DM12 = "http://localhost:8080/examples12/"
' SAV1DM13 Site Base URL
'Const TO_URL_XXV1DM13 = "http://999.18.145.50/officescan/splxdownload/"
Const TO_URL_XXV1DM13 = "http://localhost:8080/examples13/"
' カレントパス
Const CURRENT_PATH = "D:\task\splx"
' ダウンロード設定ファイルのパス
Const DWLDFILE_INI = "D:\task\splx\Z10_Main.ini"
' レスポンスを内容を一時出力のパス
Const RESPONS_TEXT = "D:\task\splx\tmp\GetDLC_Site.txt"
' 処理候補リスト
Const LIST_FILE_TM = "D:\task\splx\tmp\tmcmFList.txt"
' 外部共通部品のファイル
Const INCLD_SCRIPT = "D:\task\splx\scripts\stdlib.vbs"
' ダウンロード先と展開先のディレクトリ
Const ZIP_BASEPATH = "D:\Program Files (x86)\Trend Micro\OfficeScan\PCCSRV\splxDownload"
' IVMIXVI01 Site Base URL
Const PARM_MODE1 = 1 'プロキシ経由なし
' ドライブのリミット値(空容量 バイト)
Const DRIVE_FREE_LIMIT = 1100000000
' 候補リストパターン
Const PATTERN_ZIP = "tmcm_patternupdate"
'**************************************************************
' 1.0 処理全体
'**************************************************************
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
'Wscript.Echo objShell.CurrentDirectory
Set objShell = Nothing
'カレントパス取得
Dim objPath
Set objPath = CreateObject("Scripting.FileSystemObject").GetFolder(".")
'Wscript.Echo objPath
Dim s
Main_Init()
Main_Prosess()
Main_Terminate()
WScript.Quit (0)
'**************************************************************
' 1.2 メイン処理
'**************************************************************
Sub Main_Prosess()
'---------------------------------------------------------
'-- 1.2 メイン処理(1) リクエスト対象のURL -------------
'---------------------------------------------------------
' 設定ファイルを作成する
Dim sMain_Prosess
Dim sGetDLC_Site
Dim sURI,sFile
Dim iPos,str
Dim objFso, objFile
sMain_Prosess = ""
SetLogStepStart 1,"SITE HTML GET **********************"
'Http GetでダウンロードするZIPの情報の保管先から引出す
IF sComputer = "XX09716" THEN
sGetDLC_Site = GetDLC_Site(URL,"2")
ELSE
sGetDLC_Site = GetDLC_Site(URL,"")
END IF
'取りこんだファイルから必要なURL情報を引き出す
sFile = GetUrlFile(sGetDLC_Site)
'自環境のMain.Iniへ ダウンロードするURLを書き出す)
'URIと連結させて、URLをファイルへ書き出す。
IF sComputer = "XXV1DM12" THEN
sGetDLC_Site = TO_URL_IVMIXVI01 & sFile
End IF
IF sComputer = "XXV1DM13" THEN
sGetDLC_Site = TO_URL_SAV1DM12 & sFile
End IF
WScript.Echo now & MSGLEVEL_I & "URL =" & URL
WScript.Echo now & MSGLEVEL_I & " ( " & GetURI(sGetDLC_Site) & " " & GetUrlFile(sGetDLC_Site) & " ) "
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.OpenTextFile(DWLDFILE_INI, 2, True)
IF Err.Number > 0 THEN
WScript.Echo now & MSGLEVEL_E & "NG Open Error " & DWLDFILE_INI
WScript.Quit (10)
ELSE
objFile.WriteLine sGetDLC_Site
END IF
objFile.Close
WScript.Echo now & MSGLEVEL_I & "RE_WRITE OK " & DWLDFILE_INI
Set objFile = Nothing
Set objFso = Nothing
SetLogStepEnd 1, "SITE HTML GET ********************** "
'---------------------------------------------------------
'-- 1.2 メイン処理(2) パターンファイをダウンロード -
'---------------------------------------------------------
SetLogStepStart 2,"Pattern File DownLoad **************"
Dim sURLPattern,savefile
Dim sRet
' 定義ファイルを読み込んで、変数ファイル名を編集する
sURLPattern= trim(ReadTextLine(DWLDFILE_INI))
savefile = ZIP_BASEPATH & "\" & GetUrlFilename(sURLPattern)
WScript.Echo now & MSGLEVEL_I & "From : " & sURLPattern & vbCrLf & _
vbtab & vbtab & vbtab & "TO : " & savefile
sRet = GetDLC_ZIP( sURLPattern, savefile)
WScript.Echo now & MSGLEVEL_I & "結果:" & sRet
IF left(trim(sRet),2) = "NG" THEN
WScript.Echo now & MSGLEVEL_E & "** 実行中止 ********************************************" & vbCrLf
WScript.Quit (10)
END IF
SetLogStepEnd 2, " Pattern File DownLoad ***********"
'---------------------------------------------------------
'-- 1.2 メイン処理(3) 展開する ------------------------
'---------------------------------------------------------
SetLogStepStart 3,"Extract File ***********************"
Dim ExtractFrom ' 展開元ファイル
Dim ExtractTo ' 展開先
Dim s
Dim sType
s = trim(ReadTextLine(DWLDFILE_INI))
ExtractFrom = ZIP_BASEPATH & "\" & GetUrlFilename(s)
ExtractTo = ZIP_BASEPATH
sType = Unzip_Tmcm(ExtractFrom,ExtractTo)
WScript.Echo now & MSGLEVEL_I & "From : " & _
ExtractFrom & vbCrLf & _
vbtab & vbtab & vbtab & "TO : " & ExtractTo
SetLogStepEnd 3, "Extract File ***********************"
'Main_Prosess = s
End Sub
'**************************************************************
' 1.1 初期処理
'**************************************************************
Sub Main_Init()
IncludeScript INCLD_SCRIPT
' VBS起動するWSHコマンドがcScriptでない場合は
' エラーコード99で終了する
IF Not(IsCscript()) THEN
WScript.Quit (99)
END IF
msg="**Note:CScript Only Run**"
sComputer = SetLogHeader(msg)
IF sComputer = "XXMIXVI01" THEN
URL = URL_XXMIXVI01
END IF
' SAV1DM12のリクエスト対象のURL
IF sComputer = "XXV1DM12" THEN
URL = URL_XXV1DM12
END IF
' SAV1DM13のリクエスト対象のURL
IF sComputer = "XXV1DM13" THEN
URL = URL_XXV1DM13
END IF
Call GetParam()
End Sub
'-----------------------------------------------
' 1.1.1 パラメータ取得処理
'-----------------------------------------------
Sub GetParam()
Dim i
Dim objParm
sGparm_Proxy = "" ' モード
Set objParm=WScript.Arguments
For i=1 To objParm.Count
WScript.echo now & MSGLEVEL_I & "** (" & i & ") " & objParm.Item(i - 1)
IF i = 1 THEN
sGparm_Proxy = objParm.Item(i - 1)
END IF
Next
End sub
'**************************************************************
' 1.3 終了処理
'**************************************************************
Sub Main_Terminate()
Dim s
Dim patternchr
patternchr = PATTERN_ZIP
'-----------------------------------------------------
'-- 1.3.1 ファイルをコピーする -----------------------
'-----------------------------------------------------
SetLogStepStart 4,"COPY FILE **************************"
Dim sToFile
sToFile = ZIP_BASEPATH & "\" & "Z10_Main.ini"
Z10_CopyFile DWLDFILE_INI,sToFile
WScript.Echo now & MSGLEVEL_I & "OK Copy:FROM " & DWLDFILE_INI & vbcrlf & vbtab & "TO:" & sToFile
'ダウンロードしたパターンファイルを現在のバージョンを除くものを削除する
'tmpにデイレクトリ一覧を作成して(今ダウンロードしたものは除く)
s= trim(ReadTextLine(DWLDFILE_INI))
Call TmcmProcLst(GetUrlFilename(s),patternchr)
' 候補リストに従い、削除する
Call TmcmProcDel()
SetLogStepEnd 4, "COPY FILE **************************"
WScript.Echo now & MSGLEVEL_I & "** NORMAL_END *****************************************" & vbCrLf
WScript.Quit (0)
End Sub
'************************************************************
' 関数: IncludeScript
' 用途:外部スクリプトをロードする
' 入力: テキストファイルパス
'************************************************************
Sub IncludeScript( strFileName )
Dim efso,efile
Set efso = CreateObject("Scripting.FileSystemObject")
Set efile = efso.OpenTextFile( strFileName )
ExecuteGlobal efile.ReadAll
efile.Close
End Sub