<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JS: вызов методов WMI с выходными параметрами]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9493</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9493&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JS: вызов методов WMI с выходными параметрами».]]></description>
		<lastBuildDate>Wed, 23 Apr 2014 11:56:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82177#p82177</link>
			<description><![CDATA[<div class="quotebox"><cite>Flasher пишет:</cite><blockquote><p>результата нет</p></blockquote></div><p>странно, у меня заработало...</p><p>Да, проверил оба способа в HTA - оба работают (с минимальными изменениями):</p><div class="codebox"><pre><code>&lt;head&gt;&lt;hta:application id=&quot;HTApp&quot; /&gt;&lt;/head&gt;
&lt;script type=&quot;text/javascript&quot; language=&quot;JavaScript&quot;&gt;//&lt;![CDATA[
  var i,
   k=new ActiveXObject(&#039;Scripting.FileSystemObject&#039;).getSpecialFolder(1);
   l=(&#039;&quot;&#039;+k+&#039;\\mshta.exe&quot; &#039;+HTApp.commandLine).replace(/\\/g,&#039;\\\\&#039;).replace(/&#039;/g,&#039;\\\&#039;&#039;),
   m=GetObject(&#039;winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2&#039;),
   n=&#039;SELECT Handle FROM Win32_Process WHERE CommandLine Like \&#039;%&#039;+l+&#039;%\&#039;&#039;;
  for(i=new Enumerator(m.execQuery(n));!i.atEnd();i.moveNext())alert(i.item().handle);
//]]&gt;&lt;/script&gt;</code></pre></div><div class="codebox"><pre><code>&lt;script type=&quot;text/javascript&quot; language=&quot;JavaScript&quot;&gt;//&lt;![CDATA[
  var
   p=new ActiveXObject(&#039;WScript.Shell&#039;).Exec(&#039;rundll32 kernel32,Sleep&#039;).processId,
   q=GetObject(&#039;winmgmts:\\\\.\\root\\cimv2:win32_process.Handle=&quot;&#039;+p+&#039;&quot;&#039;),
   r=q.parentProcessId;
  q.terminate();
  alert(r);
//]]&gt;&lt;/script&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Wed, 23 Apr 2014 11:56:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82177#p82177</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82176#p82176</link>
			<description><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p><strong>Flasher</strong>, все-таки пример Ваш работает, но только при запуске из папки. Недостатки я перечислил.</p></blockquote></div><p>ОК, спасибо, что подтвердили. С недостатками согласен, даже знал про ещё один, поправлю, как разберусь с запрашиваемой стороной.</p><div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><div class="codebox"><pre><code>...JS&#039;n&#039;VBS...</code></pre></div></blockquote></div><p>Вот где собака порылась. Апострофы в пути к файлу дают ошибку в запросе. Хм. В мыслях единственное как это обойти, обрезать путь до первого апострофа, но что-то не ахти идея, с учётом того на каких отрезках этот апостроф может вылезти. Проще вообще отказаться от них в именах скриптовых подпапок.</p><br /><div class="codebox"><pre><code>.replace(/&#039;/g, &quot;\\&#039;&quot;);</code></pre></div><p>Какая-то сомнительная история. Добавил в запрос косые перед апострофами - результата нет.</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Wed, 23 Apr 2014 10:35:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82176#p82176</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82175#p82175</link>
			<description><![CDATA[<p>Сначала запускал из AkelPad&#039;а, сейчас попробовал из TC и Проводника - тот же результат: тишина... Добавил в конце</p><div class="codebox"><pre><code>WScript.echo(Query);</code></pre></div><p>получил</p><div class="codebox"><pre><code>SELECT Handle FROM Win32_Process WHERE CommandLine Like &#039;%C:\\Windows\\System32\\WScript.exe&quot; &quot;G:\\Adds\\Scripting\\Expiriences\\JS&#039;n&#039;VBS\\получить свой PID Flasher.js%&#039;</code></pre></div><p>для всех 3-х типов запуска. Кавычки в середине не по феншую... Если убрать совсем</p><div class="codebox"><pre><code>SELECT Handle FROM Win32_Process WHERE CommandLine Like &#039;%C:\\Windows\\System32\\WScript.exe G:\\Adds\\Scripting\\Expiriences\\JS&#039;n&#039;VBS\\получить свой PID Flasher.js%&#039;</code></pre></div><p>результат тот же, если добавить в начале и в конце</p><div class="codebox"><pre><code>SELECT Handle FROM Win32_Process WHERE CommandLine Like &#039;%&quot;C:\\Windows\\System32\\WScript.exe&quot; &quot;G:\\Adds\\Scripting\\Expiriences\\JS&#039;n&#039;VBS\\получить свой PID Flasher.js&quot;%&#039;</code></pre></div><p>ничего не меняется...</p><p>О! Победил.</p><div class="codebox"><pre><code>var WMI = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2&quot;);
var CLine = (WScript.FullName + &#039;&quot; &quot;&#039; + WScript.ScriptFullName)
 .replace(/\\/g, &quot;\\\\&quot;)
 .replace(/&#039;/g, &quot;\\&#039;&quot;);
var Query = &quot;SELECT Handle FROM Win32_Process WHERE CommandLine Like &#039;%\&quot;&quot; + CLine + &quot;\&quot;%&#039;&quot;;
for(var p = new Enumerator(WMI.ExecQuery(Query)) ; !p.atEnd() ; p.moveNext())
  WScript.Echo(&quot;PID WScript.exe данного скрипта: &quot; + p.item().Handle);
</code></pre></div><p>удвоение слэшей - обязательно, иначе не работает, не любит апострофы в путях, в определении Query добавил кавычки вокруг CLine, запускается и из папки, и из Акела, и из комстроки.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Wed, 23 Apr 2014 09:51:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82175#p82175</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82164#p82164</link>
			<description><![CDATA[<p><strong>Flasher</strong>, все-таки пример Ваш работает, но только при запуске из папки. Недостатки я перечислил.</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Wed, 23 Apr 2014 07:09:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82164#p82164</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82158#p82158</link>
			<description><![CDATA[<p>2) А запуская из папки, тоже не отрабатывает? Если да, то тут какие могут быть причины?</p><p>Кстати, я попробовал не экранировать двойную косую - ругается.</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Tue, 22 Apr 2014 20:21:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82158#p82158</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82157#p82157</link>
			<description><![CDATA[<p>1) лишняя операция.<br />2) в коде целесообразно учитывать все условия. Запускаю из папки, в том числе.</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Tue, 22 Apr 2014 20:16:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82157#p82157</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82156#p82156</link>
			<description><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>Во-первых, нет смысла экранировать косую черту.</p></blockquote></div><p>Это разве что-то нарушит?<br /></p><div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>Во-вторых, если рабочей папкой программы установлена директория, в которой находится скрипт, то можно допустить, что вызов может быть следующим: wscript.exe test.js. При этом WScript.ScriptFullName покажет полный путь. Имя процесса может быть без расширения &quot;exe&quot;. Пример в SCITE запустите для разнообразия. Кавычки также не всегда есть.</p></blockquote></div><p>Это всё справедливо для случая намеренного запуска из комстроки, тогда скрипт действительно не отработает. Я же писал для случая прямого вызова скрипта из папки. Как сами запускаете?</p><div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><p>Вставил эхо перед циклом - отрабатывает, а из цикла - тишина.</p></blockquote></div><p>Проблема может быть только в составленном запросе. Только разобраться бы, что там может не соответствовать действительности. Ты скрипт запускаешь из папки по Enter?</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Tue, 22 Apr 2014 19:47:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82156#p82156</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82153#p82153</link>
			<description><![CDATA[<p><strong>Flasher</strong><br />Никаких правок. Вставил эхо перед циклом - отрабатывает, а из цикла - тишина. С кавычками поигрался, replace убирал - тишина.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Tue, 22 Apr 2014 19:16:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82153#p82153</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82150#p82150</link>
			<description><![CDATA[<div class="quotebox"><cite>Flasher пишет:</cite><blockquote><p><strong>Serge Yolkin</strong><br />Хотел бы всё-таки уточнить, ты никаких правок не делал? Только копипаст?</p></blockquote></div><p>У меня аналогично не пашет. Я думаю, что не совсем корректно код написан.<br />Например, что первое бросается в глаза - это <br /></p><div class="codebox"><pre><code>CLine = (WScript.FullName + &#039;&quot; &quot;&#039; + WScript.ScriptFullName).replace(/\\/g, &#039;\\\\&#039;)</code></pre></div><p>Во-первых, нет смысла экранировать косую черту.<br />Во-вторых, если рабочей папкой программы установлена директория, в которой находится скрипт, то можно допустить, что вызов может быть следующим: wscript.exe test.js. При этом WScript.ScriptFullName покажет полный путь. Имя процесса может быть без расширения &quot;exe&quot;. Пример в SCITE запустите для разнообразия. Кавычки также не всегда есть.</p><p>Далее, <br /></p><div class="codebox"><pre><code>CLine = (WScript.FullName + &#039;&quot; &quot;&#039; + WScript.ScriptFullName).replace(/\\/g, &#039;\\\\&#039;)
Query = &quot;SELECT Handle FROM Win32_Process WHERE CommandLine Like &#039;%&quot; + CLine + &quot;%&#039;&quot;</code></pre></div><p>Ну явно же видно, что Вы не совсем верно кавычки расставили. Получается, LIKE &#039;%wscript.exe&quot; &quot;test.js%&#039;. </p><p>Плюс Ваш алгоритм не дает гарантию, что Вы получите идентификатор иного скриптового процесса, который аналогично был запущен с тем же хостом и скриптом в качестве аргумента.</p><p>Думаю, что дал развернутый ответ.</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Tue, 22 Apr 2014 18:19:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82150#p82150</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82146#p82146</link>
			<description><![CDATA[<p><strong>Serge Yolkin</strong><br />Хотел бы всё-таки уточнить, ты никаких правок не делал? Только копипаст?</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Tue, 22 Apr 2014 17:43:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82146#p82146</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82142#p82142</link>
			<description><![CDATA[<div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><p>на пост вышел поиском, и не обратил внимания на форум, в котором он находится.</p></blockquote></div><p>Теперь зато ясно, как такое происходит.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 22 Apr 2014 17:14:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82142#p82142</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82137#p82137</link>
			<description><![CDATA[<div class="quotebox"><cite>Serge Yolkin пишет:</cite><blockquote><p>P.S. Пример от Flasher не заработал <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> без всяких ошибок, просто ничего не показал (Win7x32).</p></blockquote></div><p>Странно, у меня система та же, всё показывает.</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Tue, 22 Apr 2014 14:39:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82137#p82137</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82128#p82128</link>
			<description><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Просто товарищ <strong>Serge Yolkin</strong> начал обсуждать и задавать вопрос в Коллекции. Мне пришлось создать новую тему и перенести сюда его сообщение.</p></blockquote></div><p>Прошу прощения, на пост вышел поиском, и не обратил внимания на форум, в котором он находится.</p><p>Всем спасибо за помощь!</p><p>P.S. Пример от <strong>Flasher</strong> не заработал <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> без всяких ошибок, просто ничего не показал (Win7x32). Пример от <strong>JSman</strong> работает отлично.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Tue, 22 Apr 2014 09:52:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82128#p82128</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81977#p81977</link>
			<description><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p><strong>ypppu</strong>, а что обсуждать-то? Каким способом узнавать как называть параметры? Один и тот же код везде, по сути.</p></blockquote></div><p>Просто товарищ <strong>Serge Yolkin</strong> начал обсуждать и задавать вопрос в Коллекции. Мне пришлось создать новую тему и перенести сюда его сообщение.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sun, 20 Apr 2014 05:59:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81977#p81977</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: вызов методов WMI с выходными параметрами]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81975#p81975</link>
			<description><![CDATA[<p><strong>Flasher</strong>, добавил <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Sun, 20 Apr 2014 04:32:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81975#p81975</guid>
		</item>
	</channel>
</rss>
