<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JScript: вызов методов WMI с выходными параметрами]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=625</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=625&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JScript: вызов методов WMI с выходными параметрами».]]></description>
		<lastBuildDate>Thu, 24 Jul 2008 15:20:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JScript: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=12862#p12862</link>
			<description><![CDATA[<p>Ещё один пример. На этот раз вызывается метод &quot;EnumKey&quot; WMI-класса StdRegProv, который принимает выходной параметр в виде массива, который будет необходимо потом перебирать в коде довольно громоздким способом:<br /></p><div class="codebox"><pre><code>var objReg = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv&quot;);
var objInParams = objReg.Methods_(&quot;EnumKey&quot;).InParameters.SpawnInstance_();
objInParams.hDefKey = 0x80000001;
objInParams.sSubKeyName = &#039;Software\\Microsoft&#039;;
var objOutParams = objReg.ExecMethod_(&quot;EnumKey&quot;, objInParams);
var sNames = objOutParams.sNames.toArray();
for (var i=0; i&lt;=sNames.length-1; i++) {
    WScript.Echo(sNames[i]);
}</code></pre></div><p>Пример читает и выводит на экран названия разделов реестра внутри ветки HKEY_CURRENT_USER\Software\Microsoft.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Thu, 24 Jul 2008 15:20:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=12862#p12862</guid>
		</item>
		<item>
			<title><![CDATA[JScript: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=4255#p4255</link>
			<description><![CDATA[<p>Иногда в сценариях с использованием WMI требуется вызов методов WMI с выходными параметрами. Например, создать процесс и получить его pID. На VBScript это получается вполне естественно:<br /></p><div class="codebox"><pre><code>Set objProcess = GetObject(&quot;winmgmts:\\.\root\cimv2:Win32_Process&quot;)
errReturn = objProcess.Create(&quot;cmd&quot;, null, null, pID)
WScript.Echo pID</code></pre></div><p>На JScript при таком подходе в переменную pID ничего не попадёт (в примере ниже эта переменная так и останется нулём):<br /></p><div class="codebox"><pre><code>objProcess = GetObject(&quot;winmgmts:\\\\.\\root\\cimv2:Win32_Process&quot;);
pID = 0;
errReturn = objProcess.Create(&quot;cmd&quot;, null, null, pID);
WScript.Echo(pID);</code></pre></div><p>Решение проблемы на JScript выглядит довольно громоздко:<br /></p><div class="codebox"><pre><code>objProcess = GetObject(&quot;winmgmts:\\\\.\\root\\cimv2:Win32_Process&quot;);
objInParams = objProcess.Methods_(&quot;Create&quot;).InParameters.SpawnInstance_();
objInParams.CommandLine = &quot;cmd&quot;;
objOutParams = objProcess.ExecMethod_(&quot;Create&quot;, objInParams);
WScript.Echo(objOutParams.ProcessId);</code></pre></div><p>Вывод: сценарии с использованием WMI часто удобнее писать на VBScript <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" />.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Sun, 26 Aug 2007 11:24:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=4255#p4255</guid>
		</item>
	</channel>
</rss>
