<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Отключение агентов]]></title><description><![CDATA[<p dir="auto">У меня следующий скрипт пропадает при раскомментировании строки с "//	o-&gt;flags += 33554432;"</p>
<pre><code>sub EnumerateNodes(rootObject)
{
	//trace(1, "  will disable " . rootObject-&gt;name);
    // Walk all child objects
    foreach(o : GetObjectChildren(rootObject))
    {
        if (classof(o) == "Node")
        {
            // Process node object
         //   trace(1, "  + " . o-&gt;name);
            if (o-&gt;name != "localhost") {
            	if (o-&gt;flags &lt; 33554432) {
            	// Error if next will be uncommented
            	//	o-&gt;flags += 33554432;
            	 	trace(1, "  disabled " . o-&gt;name . "   " . o-&gt;flags);
					}
            } else {
	         //   trace(1, " IS SERVER " . o-&gt;name);
	         }
        }
        else if (classof(o) == "NetObj")
        {
            // For all other objects, go down the tree
            // There can be additional checks for object class, like
            // if (o-&gt;type == 5)
            EnumerateNodes(o);
        }
    }
}

EnumerateNodes(FindObject(1));
</code></pre>
<p dir="auto">Ошибка:</p>
<pre><code>$ nxadm -c "exec DisableAgent"
ERROR: Script "DisableAgent" not found
</code></pre>
<p dir="auto">Не могу понять в чем проблема... <img src="https://forum.netxms.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f61e.png?v=72b86a538fc" class="not-responsive emoji emoji-android emoji--disappointed" style="height:1.4em;width:auto;vertical-align:middle" title=":(" alt="😞" /></p>
<p dir="auto">Как временное решение - через БД (при остановленном netxmsd):</p>
<pre><code>select NODE_FLAGS from nodes
where NODE_FLAGS &lt; 33554432
and PRIMARY_IP != '127.0.0.1';
update nodes set NODE_FLAGS = NODE_FLAGS + 33554432
where NODE_FLAGS &lt; 33554432 and PRIMARY_IP != '127.0.0.1';
commit;
</code></pre>
]]></description><link>https://forum.netxms.org/topic/3018/отключение-агентов</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 15:08:02 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/3018.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Mar 2014 09:20:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Отключение агентов on Tue, 25 Mar 2014 22:54:57 GMT]]></title><description><![CDATA[<p dir="auto">Добавил новые методы в класс Node: enableAgent, enableConfigurationPoll, enableIcmp, enableSnmp, enableStatusPoll, enableTopologyPoll.<br />
Теперь в скрипте можно написать</p>
<p dir="auto">o-&gt;enableAgent(false);</p>
]]></description><link>https://forum.netxms.org/post/13300</link><guid isPermaLink="true">https://forum.netxms.org/post/13300</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Tue, 25 Mar 2014 22:54:57 GMT</pubDate></item><item><title><![CDATA[Reply to Отключение агентов on Tue, 25 Mar 2014 18:38:37 GMT]]></title><description><![CDATA[<p dir="auto">Было бы замечательно.</p>
]]></description><link>https://forum.netxms.org/post/13296</link><guid isPermaLink="true">https://forum.netxms.org/post/13296</guid><dc:creator><![CDATA[andrey--k]]></dc:creator><pubDate>Tue, 25 Mar 2014 18:38:37 GMT</pubDate></item><item><title><![CDATA[Reply to Отключение агентов on Tue, 25 Mar 2014 18:36:05 GMT]]></title><description><![CDATA[<p dir="auto">Можно добавить функции или методы в NXSL класс для изменения конкретных флажков или аттрибутов (как сделано например сейчас с ManageObject или RenameObject).</p>
]]></description><link>https://forum.netxms.org/post/13295</link><guid isPermaLink="true">https://forum.netxms.org/post/13295</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Tue, 25 Mar 2014 18:36:05 GMT</pubDate></item><item><title><![CDATA[Reply to Отключение агентов on Tue, 25 Mar 2014 18:34:18 GMT]]></title><description><![CDATA[<p dir="auto">Наверное не стоит открывать классы на запись, так как ошибок подобных этой вылезет сразу очень много. А если и открывать, то необходимо проверить приведение типов к классам + проверка ошибок при компиляции скриптов...<br />
Возникает вопрос, как наиболее правильно добавлять подобный функционал? Через API?</p>
]]></description><link>https://forum.netxms.org/post/13294</link><guid isPermaLink="true">https://forum.netxms.org/post/13294</guid><dc:creator><![CDATA[andrey--k]]></dc:creator><pubDate>Tue, 25 Mar 2014 18:34:18 GMT</pubDate></item><item><title><![CDATA[Reply to Отключение агентов on Tue, 25 Mar 2014 18:27:36 GMT]]></title><description><![CDATA[<p dir="auto">Строка</p>
<p dir="auto">o-&gt;flags += 33554432;</p>
<p dir="auto">дает ошибку компиляции, а поскольку команда exec ищет только скомпилированные скрипты, то выдается несколько нелогичное сообщение "script not found".</p>
<p dir="auto">Ошибка компиляции на самом деле из-за бага в интерпретаторе NXSL - он не понимает += для аттрибутов объектов.</p>
<p dir="auto">o-&gt;flags = o-&gt;flags + 33554432;</p>
<p dir="auto">скомпилируется без ошибок. Кстати, дла выставления и проверки флагов надо использовать битовые операции:</p>
<p dir="auto">o-&gt;flags = o-&gt;flags | 33554432;</p>
<p dir="auto">тогда можно не проверять на текущее значение flags.</p>
<p dir="auto">Однако главная проблема в том, что сейчас флаги объекта из скриптов менять нельзя (и вообще ничего нельзя) - в NXSL класс Node read-only. Я могу это поменять, но это уже будет в следующем релизе (ну или со снапшота собрать можно будет).</p>
]]></description><link>https://forum.netxms.org/post/13293</link><guid isPermaLink="true">https://forum.netxms.org/post/13293</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Tue, 25 Mar 2014 18:27:36 GMT</pubDate></item></channel></rss>