Тема: JS:не получается "убить" процесс терминального пользователя
Написал скрипт для убития процесов, которые остались от незавершённых терминальных сессий:
var fsObj = new ActiveXObject("Scripting.FileSystemObject");
var SWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator");
var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;
var strLoc = ".";
var strFile = "Y:\\Backup_1C\\log.txt"; // файл для записи результата
var strProcsToKill = "1cv8.exe"; // приложение, которое будем останавливать
var SWbemServices = SWbemLocator.ConnectServer(strLoc, "root\\cimv2", "", "");
var SWbemObjectSet = SWbemServices.ExecQuery("SELECT * FROM Win32_Process WHERE Name = " + "\"" + strProcsToKill + "\"", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly);
en = new Enumerator(SWbemObjectSet), k = 0;
while (!en.atEnd())
{
i = en.item();
i.Terminate, k++;
en.moveNext();
}
var txtfl_ = fsObj.OpenTextFile(strFile, 8, true);
if(k !== 0)
{
txtfl_.WriteLine("Было остановлено: " + k + " процессов \"1cv8.exe\"");
txtfl_.WriteLine("----------------------------------------------------");
}
else
{
txtfl_.WriteLine("Активных процессов \"1cv8.exe\" в системе не обнаружено");
txtfl_.WriteLine("----------------------------------------------------");
}
txtfl_.close();
Пробую запустить этот скрипт от имени Администратора, правда также из терминальной сессии, смотрю в лог, пишет сколько процессов с таким именем было остановлено, на деле этого не происходит, процессы как висели в диспетчере так и висят... "Руками" убиваются нормально...
Думал скрипт кривой, заменил имя процесса на notepad.exe, скрипт его убил, правда этот notepad был запущен мною же... Чёт не пойму почему мне не удаётся остановить процессы, оставшиеся от терминальных пользователей?

