PSKill 无法从 VbScript 运行

PSKill 无法从 VbScript 运行

我们的本地 IIS6 Windows 2003 服务器上有一个网站,偶尔会锁定,我们希望使用 VbScript 来终止该进程。它位于 system32 文件夹中。我正在本地机器上运行这些测试。

为了简单起见,我的 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 但应该执行命令的行什么也没做。

如果我输入命令,它工作正常。为什么当我输入 PsKill 时它工作正常,而从 VbScript 中输入时却不工作?

答案1

尝试交换线路。这将使其在自己的窗口中显示该过程并等待其完成。

WshShell.Run "PSKill.exe " & W3WP.ProcessId, 1, true

当然,如果速度太快,你最好将其传输到日志文件

WshShell.Run "PSKill.exe " & W3WP.ProcessId & ">> log.txt"

在我看来它应该可以工作。VBScript 是否在具有终止任务权限的用户帐户下运行?

答案2

尝试在脚本中使用“-accepteula”作为命令行参数来运行它。这些工具在第一次运行时会弹出 EULA,如果没有人点击“接受”,它们往往会挂起。

相关内容