您的位置:首页 > 编程语言 > VB

VBScript:关闭进程与模拟键盘输入

2010-08-12 10:01 567 查看
场景:

根据部门的定期维护任务要求:在每月的XX日凌晨XX点重启指定的服务器(W2K3),在该服务器上运行着一套极为重要的应用程序。手动的重启方式 为先关闭该应用程序的监视程序(当应用程序崩溃时会自动再次重启该服务),然后再关闭应用程序,在关闭应用程序之前需要输入管理密码才可以完全关闭。

这次分享的脚本就是用来完成类似于以上定期维护任务的,通过脚本可以了解到如何关闭进程和VBS模拟键盘输入。

strComputer = "."
strApp="'WatchDog.exe'"

Set WshShell = CreateObject("WScript.Shell")
Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")

Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process where Name=" & strApp)
For Each objProcess In colProcessList
Set list = GetObject("winmgmts:").execquery("Select * from Win32_Process where Name=" & strApp)

if list.count > 0 then                             '如果strApp的进程存在
wscript.echo "Killing " & strApp
objProcess.Terminate()                         '关闭进程
end if
Next

strProcessKill = "'ProcessName.exe'"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess    = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = " & strProcessKill )

if colProcess.Count > 0 then
For each objProcess in colProcess
'wscript.echo objProcess.ProcessID              '显示PID
WshShell.AppActivate objProcess.ProcessID       '应用程序置顶
WScript.Sleep 3000                              '等待3秒
WshShell.SendKeys "^x"                          '关闭应用程序
WScript.Sleep 2000                              '等待2秒
WshShell.SendKeys "88888"                       '输入密码
WshShell.SendKeys "{ENTER}"                     '输入回车
WshShell.SendKeys "{ENTER}"
Next
End If

如果想在关闭应用程序后使用VBS来关闭操作系统,在VBS的尾部增加以下代码即可。

Wscript.Run("shutdown -s -f -t 60")

服务器重启之后,您一定特别希望确认各项服务器是否都正常运行,假如有脚本可以自动检查这些服务是正常,并发送一封电子邮件告诉你,该多好啊?周末再与大家分享。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 休闲 VBScrip