以前因为要配置网络打印机发现了脚本的强大功能,寒一个查里斯——晨的语录“脚本才素王道。。。。”
言归正传,还是老规矩,先看代码,下面解释
strComputer = "."指的是脚本作用域的主机,再没有防火墙干扰的情况下,可以部署在服务器上作用于客户端。
arrTargetProcs 存储需要关闭的进程名,在运行特定程序前,需要节省开支,或出于其他的目的,结束进程,我经常在cpu100%的时候用它来关机,效果比重启还好.....大材小用了。
而后获得VMI对象,安指定条件获取,之后这个就厉害了“SELECT * FROM Win32_Process”对,VMI对象都是按照面向对象思想设计的,支持这种结构查询,性能也不错。
下面的也很简单了,将查询结果与制定需要关闭的进程名进行对比,如果查询结果中有需要关闭的进程,就将其名称列出,而后objProcess.Terminate将其终结。是不是很简单
问我说的那个重启脚本么?
不要把它拷到记事本里,另存为don't double click me.vbs,然后发给同事。也不要告诉他们你是看了我的博客,呵呵
新年快乐~~
言归正传,还是老规矩,先看代码,下面解释
strComputer = "."
arrTargetProcs = Array("calc.exe","notepad.exe","freecell.exe")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
Wscript.Echo "Checking for target processes "
For Each objProcess in colProcesses
For Each strTargetProc In arrTargetProcs
If LCase(objProcess.Name) = LCase(strTargetProc) Then
WScript.Echo VbCrLf & "Process Name: " & objProcess.Name
WScript.Echo " Time: " & Now
intReturn = objProcess.Terminate
If intReturn = 0 Then
WScript.Echo " Terminated"
Else
WScript.Echo " Unable to terminate"
End If
End If
Next
Next
arrTargetProcs = Array("calc.exe","notepad.exe","freecell.exe")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
Wscript.Echo "Checking for target processes "
For Each objProcess in colProcesses
For Each strTargetProc In arrTargetProcs
If LCase(objProcess.Name) = LCase(strTargetProc) Then
WScript.Echo VbCrLf & "Process Name: " & objProcess.Name
WScript.Echo " Time: " & Now
intReturn = objProcess.Terminate
If intReturn = 0 Then
WScript.Echo " Terminated"
Else
WScript.Echo " Unable to terminate"
End If
End If
Next
Next
strComputer = "."指的是脚本作用域的主机,再没有防火墙干扰的情况下,可以部署在服务器上作用于客户端。
arrTargetProcs 存储需要关闭的进程名,在运行特定程序前,需要节省开支,或出于其他的目的,结束进程,我经常在cpu100%的时候用它来关机,效果比重启还好.....大材小用了。
而后获得VMI对象,安指定条件获取,之后这个就厉害了“SELECT * FROM Win32_Process”对,VMI对象都是按照面向对象思想设计的,支持这种结构查询,性能也不错。
下面的也很简单了,将查询结果与制定需要关闭的进程名进行对比,如果查询结果中有需要关闭的进程,就将其名称列出,而后objProcess.Terminate将其终结。是不是很简单
问我说的那个重启脚本么?
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcesses
objProcess.Terminate
Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objProcess in colProcesses
objProcess.Terminate
Next
不要把它拷到记事本里,另存为don't double click me.vbs,然后发给同事。也不要告诉他们你是看了我的博客,呵呵
新年快乐~~