' ftp-sys-chk-schedule-cancel.vbsi copyright 2004,2005 orii0 ' cancel schdule of ftp-sys-chk-schadule.vbs ' ' 12/21/04 orii0 create '----------------------- ' CONSTANTS for exection '----------------------- Const PGM_NAME = "ftp-sys-chk-schedule-cancel" 'Program name myPGM = PGM_NAME & ".vbs" Const SCHEDULE_PGM = "ftp-sys-chk.vbs" 'Target program name Const PGM_VER = "1.05" 'Varsion myDRIVE = "C" 'DISK Drive TXT_NAME = PGM_NAME & ".txt" 'Report file name FTPPARM = PGM_NAME & "-ftpcommand.txt" 'FTP command file name Const FTPSRVR = "192.168.0.20" 'FTP server ' Check current folder myDIR= Replace(WScript.ScriptFullName,myPGM,"") mySCHEDULE_PGM=myDIR & SCHEDULE_PGM FTPCOM = "ftp -n -i -v -s:"& myDIR & "\"& FTPPARM 'FTP command ' TCP/IP strComputer = "." Set objWMIService = GetObject _ ("winmgmts:" & "!\\" & strComputer & "\root\cimv2") Set colAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True") ' REPORT FILE Set objFS1 = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS1.GetFolder(myDIR) Set objFile = objFolder.CreateTextFile(TXT_NAME) ' FTP command file Set objFS2 = CreateObject("Scripting.FileSystemObject") Set objFolder2 = objFS2.GetFolder(myDIR) Set objFile2 = objFolder2.CreateTextFile(FTPPARM) '--------------------- ' START main process '--------------------- myHOSTNAME = "" ' Hedline of report file objFile.WriteLine(myPGM &" VER:" & PGM_VER &" Cancel windows monitor schedule date: "& Now ) objFile.WriteLine("Current folder:"& myDIR ) ' TCP/IP For Each objAdapter in colAdapters objFile.WriteLine("Host name: " & objAdapter.DNSHostName) if Not IsNull(objAdapter.DNSHostName) Then myHOSTNAME = objAdapter.DNSHostName End If Next ' Candel target task objFile.WriteLine("----------------------------") objFile.WriteLine("Cancel IDE download schedule") objFile.WriteLine("----------------------------") objFile.WriteLine(" cancel target task = " & mySCHEDULE_PGM ) ' TASK SCHEDULE LIST objFile.WriteLine("--------------------------------") objFile.WriteLine("TASK Schedule List before cancel") objFile.WriteLine("--------------------------------") myCOUNT = 0 myCOUNT2 = 0 myTOTCOUNT = 0 myJOBID = 0 myJOBID2 = 0 Dim myJOBIDS(400) Dim myJOBIDS2(400) Erase myJOBIDS Erase myJOBIDS2 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colScheduledJobs = objWMIService.ExecQuery _ ("Select * from Win32_ScheduledJob") For Each objJob in colScheduledJobs objFile.WriteLine( " " ) objFile.WriteLine( "Job ID: " & objJob.JobID ) objFile.WriteLine( "Command: " & objJob.Command ) objFile.WriteLine( "Days Of Month: " & objJob.DaysOfMonth ) objFile.WriteLine( "Days Of Week: " & objJob.DaysOfWeek ) objFile.WriteLine( "Elapsed Time: " & objJob.ElapsedTime ) objFile.WriteLine( "Install Date: " & objJob.InstallDate ) objFile.WriteLine( "Job Status: " & objJob.JobStatus ) objFile.WriteLine( "Start Time: " & objJob.StartTime ) objFile.WriteLine( "Status: " & objJob.Status ) objFile.WriteLine( "Time Submitted: " & objJob.TimeSubmitted ) objFile.WriteLine( "Until Time: " & objJob.UntilTime ) If objJob.Command = mySCHEDULE_PGM Then myJOBID = objJob.JobID myCOUNT = myCOUNT + 1 myJOBIDS(myCOUNT) = myJOBID End IF myTOTCOUNT = myTOTCOUNT + 1 Next objFile.WriteLine( "Number of schedule: " & myTOTCOUNT ) objFile.WriteLine( "Target number of schedule: " & myCOUNT & " " & mySCHEDULE_PGM ) ' TASK SCHEDULE CANCEL ' JobID が myJOBID のスケジュールされたタスクを削除します objFile.WriteLine( "---------------------" ) objFile.WriteLine( "TASK Schedule Cancel " ) objFile.WriteLine( "---------------------" ) ' Delete mySCHEDULE_PGM If myCOUNT > 0 Then strComputer = "." For myI = 1 to myCOUNT myJOBID = myJOBIDS(myI) Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objInstance = objWMIService.Get("Win32_ScheduledJob.JobID=" & myJOBID) err = objInstance.Delete objFile.WriteLine( "TASK schedule cancel program: " & mySCHEDULE_PGM ) objFile.WriteLine( " cancel job ID: " & myJOBID ) objFile.WriteLine( " canceled: error code: " & err ) Next Else objFile.WriteLine( "No cancel: no schedule " & mySCHEDULE_PGM ) End If objFile.Close ' ' REPORT by FTP and update script If Not IsNull(myHOSTNAME) Then ' Create FTP command file: FTPCOM objFile2.WriteLine("open "& FTPSRVR) ' objFile2.WriteLine("pwd") ' objFile2.WriteLine("pwd") objFile2.WriteLine("user ftpuser ftppasswrd") objFile2.WriteLine("lcd "& myDIR) objFile2.WriteLine("cd /ftpuser/server_monitor") objFile2.WriteLine("ascii") objFile2.WriteLine("put "& TXT_NAME & " "& myHOSTNAME &"-task-schedule-list.txt") objFile2.WriteLine("bye") objFile2.Close ' FTP send the report(text file) Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run FTPCOM, 0 End If