Тема: JScript: вызов методов WMI с выходными параметрами
Иногда в сценариях с использованием WMI требуется вызов методов WMI с выходными параметрами. Например, создать процесс и получить его pID. На VBScript это получается вполне естественно:
Set objProcess = GetObject("winmgmts:\\.\root\cimv2:Win32_Process")
errReturn = objProcess.Create("cmd", null, null, pID)
WScript.Echo pIDНа JScript при таком подходе в переменную pID ничего не попадёт (в примере ниже эта переменная так и останется нулём):
objProcess = GetObject("winmgmts:\\\\.\\root\\cimv2:Win32_Process");
pID = 0;
errReturn = objProcess.Create("cmd", null, null, pID);
WScript.Echo(pID);Решение проблемы на JScript выглядит довольно громоздко:
objProcess = GetObject("winmgmts:\\\\.\\root\\cimv2:Win32_Process");
objInParams = objProcess.Methods_("Create").InParameters.SpawnInstance_();
objInParams.CommandLine = "cmd";
objOutParams = objProcess.ExecMethod_("Create", objInParams);
WScript.Echo(objOutParams.ProcessId);Вывод: сценарии с использованием WMI часто удобнее писать на VBScript
.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

