0
Ахмадинежад
25.12.12
✎
12:57
|
<code>
Шел = Новый COMОбъект("Shell.Explorer");
ФСО = Новый COMОбъект("Scripting.FileSystemObject");
Программа = ФСО.GetFile(Шел.fullname()).Name;
Сеть = Новый COMОбъект("WScript.Network");
Пользователь= ВРег(Сеть.UserName);
Компьютер=".";
Локатор = Новый COMОбъект("wbemscripting.swbemlocator");
Сервис = Локатор.ConnectServer(Компьютер,"root\cimv2","","","","",128);
СкриптВБС = Новый COMОбъект("MSScriptControl.ScriptControl");
СкриптВБС.language="vbscript";
Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
Скрипт.language="javascript";
Скрипт.AddObject("Процессы",Сервис.ExecQuery("select * from win32_process where name='"+Программа+"' and commandline like '%-Embedding%'"));
//Процессы = Скрипт.Eval("new Enumerator(Процессы)");
oP=Сервис.ExecQuery("select * from win32_process where name='"+Программа+"' and commandline like '%-Embedding%'");
Для каждого p из oP цикл
Процесс = p;
СкриптВБС.AddObject("p_"+Процесс.ProcessId,Процесс);
СкриптВБС.Eval("p_"+УбратьПробелы(Строка(Процесс.ProcessId))+".getOwner(user,domain)");//***888***
Если Пользователь = Врег(СкриптВБС.Eval("user")) Тогда
Сообщить("Убиваем ОЛЕ "+Процесс.ProcessId);
Процесс.Terminate();
КонецЕсли;
КонецЦикла;
</code>
Ошибку выдаёт на строке //***888***
Произошла исключительная ситуация (Ошибка выполнения Microsoft VBScript): Требуется объект: 'p_1144'
Строка, переданная в качестве параметра методу Eval имеет значение: "p_1144.getOwner(user,domain)"
Процесс с PID-ом 1144 в диспетчере задач виден.
________________________
Вопрос: что ему, собсно, надо ?
|
|