Назад | Перейти на главную страницу

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 содержит правильный идентификатор процесса. Скрипт выводит на экран: PSKill.exe 6884 Но строка, которая должна выполнять команду, ничего не делает.

Если я наберу команду, она будет работать нормально. Почему PsKill нормально работает, когда я его набираю, но не из VbScript?

Попробуйте запустить его в сценарии с параметром -accepteula в качестве аргумента командной строки. Эти инструменты открывают лицензионное соглашение при первом запуске, и если не на кого нажать кнопку «Принять», они, как правило, просто зависают.

Попробуйте поменять строчку местами. Это позволит ему показать процесс в собственном окне и дождаться его завершения.

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

Конечно, если это пойдет слишком быстро, вам может повезти, если вы подключите его к файлу журнала.

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

Похоже, мне это должно сработать. Работает ли VBScript под учетной записью пользователя с разрешениями на завершение задачи?