ДействияДействия — это инструмент для выполнения операций над сетевыми узлами в хранилище прямо из дерева сети.Доступ к ним можно получить из контекстного меню сетевого узла или группы:Если действие является не активным, это означает что узел не соответствует одному из Условий или Условие не может быть применимо к данному узлу дерева сети.См. Условия.По умолчанию в меню видны только действия, применимые к выбранным узлам. Это можно поменять в Настройках.Действия также могут быть запущены из контекстного меню узлов на карте сети.Стандартные действияTNI включает три стандартных действия:Перезагрузка;Выключение;Wake-on-LAN.Они не требуют настройки. Чтобы выполнить одно из них, просто выберите его из списка действий для нужного узла или группы узлов.Пользовательские действияМеханизм пользовательских действий позволяет использовать любые системные инструменты или сторонние утилиты для выполнения желаемой задачи с удаленным сетевым устройством.Пользовательские действия определяются в файле действий, используя простой синтаксис. Чтобы открыть файл действий, выберите Редактировать действия в меню действий или нажмите кнопку Редактировать команды в Блокноте в Настройках Действия В разделе Действия окна Настроек можно найти удобную краткую справку по синтаксису определения действий с примерами и полным списком ключевых слов и шаблонов (см ниже), включая возможность скопировать по нажатию. Пример пользовательских действий для программы UltraVNCПример пользовательских действий для программы 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Проверяет, работает ли устройство под WindowsLINПроверяет, работает ли устройство под LinuxMACПроверяет, работает ли устройство под macOSSSHПроверяет, работает ли устройство под любой системой, просканированной по протоколу SSH (Linux, macOS, FreeBSD, ESX/ESXi)SNMPПроверяет, было ли устройство просканировано по протоколу SNMPLANПроверяет, находится ли устройство в одной подсети с вашим ПК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, чтобы произвести автоматический вход.