Действия

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

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

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

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

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

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

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

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

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

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

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

Определение нового действия

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

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

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

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

Шаблоны

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

 %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  Проверяет, работает ли устройство под OS X
 SSH  Проверяет, работает ли устройство под любой системой, просканированной по протоколу SSH (Linux, OS X, 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!} Если все целевые узлы отключены

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

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

{$?}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

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