Действия

Действия — это инструмент для выполнения операций над сетевыми узлами в хранилище прямо из дерева сети.

Доступ к ним можно получить из контекстного меню сетевого узла или группы:

Если действие является не активным, это означает что узел не соответствует одному из Условий или Условие не может быть применимо к данному узлу дерева сети.

См. Условия

По умолчанию в меню видны только действия, применимые к выбранным узлам. Это можно поменять в Настройках.

Действия также могут быть запущены из контекстного меню узлов на карте сети.

Стандартные действия

TNI включает три стандартных действия:

  • Перезагрузка;
  • Выключение;
  • Wake-on-LAN.

Они не требуют настройки. Чтобы выполнить одно из них, просто выберите его из списка действий для нужного узла или группы узлов.

Пользовательские действия

Механизм пользовательских действий позволяет использовать любые системные инструменты или сторонние утилиты для выполнения желаемой задачи с удаленным сетевым устройством.

Пользовательские действия определяются в файле действий, используя простой синтаксис. Чтобы открыть файл действий, выберите Редактировать действия в меню действий или нажмите кнопку Редактировать команды в Блокноте в Настройках / Действия.


В разделе Действия окна Настроек можно найти удобную краткую справку по синтаксису определения действий с примерами и полным списком ключевых слов и шаблонов (см ниже), включая возможность скопировать по нажатию.

Пример пользовательских действий для программы UltraVNC:

{$IF WIN,ONLINE}UltraVNC conection="C:\Program Files\UltraVNC\UltraVNC.exe" -c: -h: -x -a:1 -m:
{$IF ONLINE} Remote VNC=vncviewer.exe -connect host %HOST%

Создание нового действия

Чтобы добавить новое действие, добавьте строчку к файлу действий:

Имя действия=команда

Имя действия — это имя, которое будет отображаться в меню действий.

Команда — это непосредственно команда, которую должна выполнить операционная система.

Шаблоны

В определении команды можно использовать строковые шаблоны для передачи параметров целевого сетевого узла в команду. Перечень поддерживаемых шаблонов:

 %HOST% FQDN, сетевое имя или IP, в зависимости от флага "Статический IP"
 %HOSTNAME% Сетевое имя устройства
 %ALIAS% Псевдоним устройства
 %IP% IP-адрес устройства
 %MAC-% MAC-адрес с дефисами
 %MAC:% MAC-адрес с двоеточиями
 %MAC% MAC-адрес без разделителей
 %SSHPORT% Порт SSH, указанный в настройках сканера
 %USERNAME% Имя привязанного пользователя
 %PASSWORD% Пароль привязанного пользователя
 %DATE% Текущая дата (в формате ГГГГММДД)
 %TIME% Текущее время (в формате ЧЧММ)
 %TIMES% Текущее время (в формате ЧЧММСС)

Пример использования шаблона в команде:

Пинговать устройство=ping.exe %HOST%

Условия

К определению действия можно добавлять условные директивы, таким образом делая действие неприменимым к некоторым устройствам. Это может быть полезно в разных случаях, например для предотвращения выполнения команды, которая априори не может быть успешно выполнена.

Условие указывается с помощью конструкции {$IF условие} перед определением действия:

{$IF условие}Имя действия=команда

Перечень поддерживаемых условий:

 OPEN00 Проверяет, открыт ли указанный порт
 OPENSSHPORT Проверяет, открыт ли порт SSH, указанный в настройках сканера
 ONLINE Проверяет, в сети ли устройство
 WIN Проверяет, работает ли устройство под Windows
 LIN Проверяет, работает ли устройство под Linux
 MAC Проверяет, работает ли устройство под macOS
 SSH Проверяет, работает ли устройство под любой системой, просканированной по протоколу SSH (Linux, macOS, FreeBSD, ESX/ESXi)
 SNMP Проверяет, было ли устройство просканировано по протоколу SNMP
 LAN Проверяет, находится ли устройство в одной подсети с вашим ПК
 EXISTS(filename.exe) Проверяет, существует ли указанный исполняемый файл по путям, указанным в переменной окружения PATH

Несколько условий через запятую соединяются по принципу логического И.

Добавление "!" перед условием отрицает его (логическое НЕ).


Пример использования условий:

{$IF LAN,!ONLINE}Wake-on-LAN=wol.exe %MAC:%

Действия для нескольких узлов

По умолчанию действие считается неприменимым одновременно к нескольким устройствам. Поэтому оно не появляется в списке действий когда вы выбираете несколько устройств или группу. Чтобы оно было доступно в этом случае, необходимо явно разрешить множественные цели путем добавления директивы {$MULTI} перед определением.

Пример использования:

{$MULTI}{$IF LAN,!ONLINE}Wake-on-LAN=wol.exe %MAC:%

 

При нацеливании на множество устройств, условие считается удовлетворенным, если любая цель удовлетворяет ему. Чтобы сделать условие обязательным для всех целей, добавьте "!" после него.

Примеры:

{$IF LAN}Если любой из целевых узлов находится в локальной подсети
{$IF LAN!}Если все целевые узлы находятся в локальной подсети

Модификаторы отрицания и обязательности для всех можно комбинировать:

{$IF !ONLINE!}Если все целевые узлы отключены

Группировка действий

Команды {$GROUP} и {$END GROUP} позволяют разбить список действий на группы.

 

Пример использования:

{$GROUP}Имя группы

{$F OPEN80}Browse web=http://%HOST%/

{$END GROUP}

Защита от случайного выполнения

Если действие "небезопасно", добавление директивы {$?} перед определением запросит подтверждение выполнения перед запуском действия.

{$?}Shutdown="C:\PSTools\psshutdown.exe" -k \\%HOST%

Посылка нажатий клавиш

Иногда выполнение команды приводит к появлению интерфейса, требующего пользовательского ввода. Чтобы автоматизировать эту задачу, TNI может посылать заданные нажатия клавиш в запущенное приложение.

Чтобы посылать нажатия клавиш, добавьте к определению команду /sendkeys: и затем строчку символов, которые нужно послать. После этой команды вы можете использовать:

Произвольный текстОтсылается как есть
ШаблоныПреобразуются в текст и отсылаются как есть
{$WAIT X}Приостановить отсылку на X миллисекунд. Если вы не укажете эту директиву, по умолчанию пауза перед отсылкой составляет одну секунду
{имя клавиши}Симулировать нажатие специальной клавиши. Имя клавиши может быть одним из следующих: F1..F10, LEFT, RIGHT, UP, DOWN, ENTER, BACKSPACE, PGUP, PGDN, HOME, END, TAB

Пример использования:

Remote Desktop с логином=mstsc.exe /v:%IP% /sendkeys:%PASSWORD%{ENTER}

При выполнении команды открывается окно авторизации. TNI посылает пароль в поле ввода и нажимает Enter, чтобы произвести автоматический вход.

 

Total Network Inventory

Инвентаризация сети, учет компьютеров и программ для корпоративных сетей различных масштабов.