вопрос по отчётам и макросам

Started by semi-liquid, April 07, 2022, 10:54:48 AM

Previous topic - Next topic

semi-liquid

#15
возможно я мало ждал и потому готов повторить проверку завтра утром, но ничего не изменилось. dummy выбирал верхний.
На скрипт система не ругалась, но либо я не дождался, либо что-то не так сделал(
если что отключенный вариант на скрине - сделал то же самое, но скрипт добавил тот что предлагали выше, результат одинаковый.
И он стоит верхним не потому что я вам не доверяю, а потому что до этого я с другим нодом экспериментировал, там ваш первый))

Filipp Sudanov

А custom attribute "currentlyLoggedUser" вы добавили вручную, или он автоматически добавился?

Если автоматически, то выглядит, что скрипт возвращает пустое значение. Если на ноде сделать Execute server script и там запустить вот это, то что оно напечатает?:

list = $node->readAgentList("System.ActiveUserSessions");
println("=" . list . "=");
currentlyLoggedUser = SplitString(list[0], "\"")[1];
println("=" . currentlyLoggedUser . "=");

semi-liquid

автоматом добавилось.
Сделал что вы сказали вот результат, admind - то что надо вытащить.
vor-admin комп с которого я к серваку нетхмс подключен по рдп.

Filipp Sudanov

Да, получается что в этом списке может быть еще тот юзер, что залогинен на Console и он может быть пустой. И список может быть в любом порядке. Тогда такой скрипт, он соберет всех юзеров через запятую, если имя юзера не пустое:


list = $node->readAgentList("System.ActiveUserSessions");
loggedUsers = %();
for (l : list)
{
  username = SplitString(l, "\"")[1];
  if (username != "") loggedUsers->append(username);
}
loggedUsersStr = ArrayToString(loggedUsers, ",");
$node->setCustomAttribute("currentlyLoggedUser", loggedUsersStr);

semi-liquid

что-то всё равно идёт не так(

semi-liquid

понял, не хватало строчки возвращающей значение)
return loggedUsersStr;

semi-liquid

#21
работает))  :) :) :) :) :)
а теперь это надо вручную по всем компам или где-то ещё можно отдельно запустить по всем?
я не против первого варианта, круто что оно вообще работает) спасибо за это вам огромное :) :)
по идее же это как-то можно как раз в DC Summary Table впихнуть и заставить работать по всем компам?

Filipp Sudanov

Не, вручную не стоит, у нас есть шаблоны (Templates) и лучше все делать через них.

В дереве объектов правый клик на Templates, Create, Template, дать ему какое-нибудь имя. Он появится под Templates. На нем правой кнопкой, Data Collection Configuration. Там опять-таки нужно создать DCI со всеми свойствами (или можно на том DCI что был создан на ноде сделать Copy to another node и указать имя шаблона).
Дальше нужно шаблон назначить на ноды. Правой кнопкой по шаблону, Apply. Там можно выбирать несколько нод сразу (с помощью shift или ctrl), или можно выбрать сразу контейнер.

Еще шаблоны умеют накладываться автоматом - там может быть скрипт, который решает, нужен ли этот шаблон на этой ноде. Примеры можно посмотреть в шаблонах, которые идут "из коробки" - Templates->Operating systems например.

semi-liquid

круто) всё работает как надо)
спасибо вам огроменное, что разжевали всё)