【VBScript Shell】使用vbs shell在指定时间段内自动结束某个进程

以下vbs代码段实现在特定时间段将指定的进程kill掉:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Usage:														'
' 	cscript AutoTerminateTicCopyBat.vbs >> terminatecopy.log	'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Global Constants Initialization								'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
COMMAND_TO_TERMINATE = "copy-data.bat"
HOUR_OF_ENDTIME_IN_GMT8 = 16


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Terminates the specific process during the given time range	'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function TerminatesCmdProcess(strProcess)
	Dim objProcesses
	strComputer = "."
	Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
	Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name ='cmd.exe' and "_
											   & " CommandLine like '%" & COMMAND_TO_TERMINATE & "%'")

	For Each objProcess in colProcesses
		objProcess.Terminate()
		
		WScript.Echo Now() & " Automatically terminated the process " & objProcess.CommandLine 
	Next			

End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Check if it is the time to terminate the specific process 	'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function IsTime2Terminate
	Dim bRet
	Dim hourOfCurUtcTime
	Dim hourOfCurTimeInGMT8
	
	bRet = False
	
	'Get current UTC time on the machine
	strComputer = "."
	Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
	Set colItems = objWMIService.ExecQuery("Select * from Win32_UTCTime")
	
	For Each objItem in colItems
		hourOfCurUtcTime = objItem.Hour
		hourOfCurTimeInGMT8 = hourOfCurUtcTime + 8
	Next
	
	If hourOfCurTimeInGMT8 >= HOUR_OF_ENDTIME_IN_GMT8 Then
		bRet = True
	End If

	IsTime2Terminate = bRet
End Function


'Main Process
Dim bFlag 
bFlag = True

Do While bFlag
	
	If IsTime2Terminate() Then
		TerminatesCmdProcess strProcess
	End If

	WScript.Sleep 1000*60
Loop


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值