我们在本地的IIS6 Windows 2003服务器上有一个网站偶尔会被锁住,我们希望一个VbScript来终止这个过程。 它位于system32文件夹中。 我正在本地机器上运行这些testing。
为了简单起见,我的VbScript文件只是有这样的行:
Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Echo "PSKill.exe " & W3WP.ProcessId WshShell.Run "PSKill.exe " & W3WP.ProcessId WScript.Echo "Killed Process"
在脚本的前面获得,W3WP.ProcessId包含正确的进程ID。 脚本输出到屏幕上:PSKill.exe 6884但是应该执行该命令的行什么也不做。
如果我input命令,它工作正常。 为什么PsKill在input时工作正常,而不是来自VbScript?
尝试换行。 这将使它在自己的窗口中显示进程并等待它完成。
WshShell.Run "PSKill.exe " & W3WP.ProcessId, 1, true
当然,如果这太快了,你可能会有更好的运气pipe道到一个日志文件
WshShell.Run "PSKill.exe " & W3WP.ProcessId & ">> log.txt"
它看起来应该对我有用。 VBScript是否在具有杀死任务权限的用户帐户下运行?
尝试在脚本中使用“-accepteula”作为命令行参数运行它。 这些工具在第一次运行时会popupEULA,如果没有人点击接受,他们往往会挂起。