Сегодня мы выпускаем очередное обновление TNI 2, буквально насыщенное действием!
Точнее, действиями: теперь можно многое сделать с компьютерами в сети, не покидая комфортного окна TNI. Но всё по порядку. Сперва традиционный список изменений:
Несколько Стандартных действий TNI умеет выполнять напрямую (Перезагрузка, Выключение и Wake-on-LAN); остальные же действия, известные как Пользовательские, позволяют с помощью несложного скриптования и системных или сторонних утилит добиться практически любого эффекта.
Продемонстрирую несколько примеров, начав с наиболее очевидного. Предположим, вы хотите использовать старый добрый ping.exe, чтобы пропинговать устройство. Для этого вы открываете cmd.exe и вводите в консоль ping.exe, добавляя IP нужного компьютера. Почему бы не упростить эту задачу:
Пропинговать устройство=cmd.exe /K ping.exe %IP%
Так описываются действия. Теперь вы просто щелкаете любой компьютер в дереве сети правой кнопкой и видите это:

Думаю, затея ясна. Теперь хочется разнообразия!
Совсем не сложно описать что-то вроде этого:
Управление компьютером=mmc.exe compmgmt.msc /Computer=%IP%
Но это действие применимо только к Windows-машинам, так что нет никакого смысла делать его доступным для Mac’ов и Linux’ов, верно? Добавим к описанию условную директиву.
Управление компьютером=mmc.exe compmgmt.msc /Computer=%IP%
Так уже гораздо лучше. Разовьем тему. Вот еще одно полезное действие:
Открыть web-страницу=https://%HOST%/
Здесь тоже есть над чем поработать:
{$IF OPEN80}Открыть web-страницу=https://%HOST%/
Условия часто позволяют устранить путаницу и неоднозначность, используя информацию, которая известна программе о ваших компьютерах. Вот какими могут быть проверки:
OPENXX — открыт ли указанный порт.OPENSSHPORT — здесь мы используем номер порта SSH, указанный в настройках Сканера.ONLINEWIN — работает ли компьютер под управлением Windows…LIN — …Linux…MAC — …или MacOS X.SSH — был ли узел просканирован по SSH (это может оказаться Linux, Mac OS X или FreeBSD).SNMP — был ли узел просканирован по SNMP.LAN — находится ли это устройство в той же подсети, что и ваш ПК.Разумеется, добавив перед любым условием “!”, вы получите его отрицание. То есть, !ONLINE означает “оффлайн”, !WIN значит “что угодно кроме Windows” и так далее. Кроме того, можно перечислить несколько условий в одном блоке IF через запятую, что будет расценено как логическое И. Например:
{$IF LAN,!ONLINE}Wake-on-LAN=wol.exe %MAC:%
Некоторые действия не должны выполняться для нескольких компьютеров одновременно, и по умолчанию считается, что цель — единственное устройство. Если же действие должно быть доступно, когда на мушке несколько компьютеров (или если выбрана группа), к его описанию нужно добавить директиву {$MULTI}.
Wake-on-LAN=wol.exe %MAC:%
При этом возникает еще одна тонкость. Приведенное выше описание делает действие применимым к группе устройств, если любое из них не в сети и любое из них в вашей подсети. С первым условием все в порядке (активные устройства тоже получат WOL-пакеты, не беда), а вот рассылать WOL’ы за пределы локальной сети — затея бесплодная. Так что переформулируем второе условие как каждое из них в вашей подсети, добавив “!” после него. С восклицательным знаком строже: LAN! — обязательно для всех!
{$MULTI}{$IF LAN!,!ONLINE}Wake-on-LAN=wol.exe %MAC:%
Вот теперь можно считать это действие хорошо продуманным.
Скорее всего, большинство действий будут носить мирный характер, но некоторые представители этой породы могут быть опасны, если вызвать их случайно. К таким приписывайте директиву {$?}. Тогда при каждом вызове вам будет показано дополнительное окно подтверждения. Например, используем Sysinternals PSTools чтобы выключить удаленный компьютер. Вот что я назвал опасностью.
{$?}Выключить=C:\PSTools\psshutdown.exe -k \\%HOST%
Пойдем еще дальше: вот действие для запуска удаленного рабочего стола.
Remote Desktop=mstsc.exe /v:%IP%
Проще некуда. Но вызов этого действия лишь покажет нам окно авторизации, где нам придется вручную вводить пароль. Можно сделать лучше. Давайте отправим этому окну пароль автоматически с помощью виртуальных нажатий клавиш!
Remote Desktop, автологин=mstsc.exe /v:%IP% /sendkeys:%PASSWORD%{ENTER}
После команды /sendkeys могут идти, в любом количестве и порядке, следующие блоки:
{$WAIT X} — эта директива приостановит выполнение на X миллисекунд. Если ее опустить, TNI по умолчанию подождет одну секунду прежде чем отправлять любые нажатия клавиш;{клавиша} — нажатие одной из специальных клавиш: F1..F10, LEFT, RIGHT, UP, DOWN, ENTER, BACKSPACE, PGUP, PGDN, HOME, END, TAB.Итак, в последнем примере мы автоматически вводим пароль и нажимаем Enter. Шаблон %PASSWORD% будет автоматически заменен на пароль, привязанный к конкретному компьютеру в вашем хранилище.
И кстати о шаблонах.
Вот эти шаблоны будут заменены на данные о конкретном компьютере при выполнении действия:
%HOST% — FQDN, hostname или IP, в зависимости от флага Статический IP%HOSTNAME%%IP%%MAC-%, %MAC:%, %MAC% — MAC-адрес, разделенный дефисами, двоеточиями или без разделителей, соответственно%SSHPORT% — номер порта SSH, берется из настроек Сканера%USERNAME% — имя пользователе из прикрепленного логина%PASSWORD% — пароль из прикрепленного логинаУстановив обновление, вы обнаружите большинство действий, которые служили примерами к этой записи. Вы всегда можете изменить их так, как вам удобнее, либо вовсе удалить ненужные. Смело экспериментируйте с пользовательскими действиями, ведь с помощью нашего несложного скрипта и сторонних утилит можно добиться чего угодно.
Ах да, редактирование действий. Кликните правой кнопкой мыши по любому устройству, и найдете кнопку Редактировать действия в соответствующем подменю. Или же можно сразу открыть Опции » Действия. Там будет удобная шпаргалка по синтаксису описания действий (щелчок по ключевому слову скопирует его!) и большая кнопка, которая открывает список действий в Блокноте — самом лучшем текстовом редакторе планеты. Ну, почти. :)
И последнее. Если мы что-нибудь упустили (полезное условие, директиву или шаблон, скажем), пожалуйста, дайте нам знать. Исправимся.
Возможно ли отслеживание изменения в ПО на определенном ПК?
К сожалению, пока нет. Эта функция планируется в будущих версиях.
Добрый день! Хотелось бы видеть в TNI функционал с бухгалтерским уклоном, то есть кроме инвентарного номера машины возможность прописать например в каком отделе находится, когда был последний ремонт, а так же разбивка компьютеров по отделам – перетаскивание компьютера из одного отдела в другой, когда был куплен, заметки о списании.
Планируется ли что-то из этого внедрять в будущем ? :)
Что-то подобное планируется, однако уже сейчас это можно реализовать с помощью пользовательских полей. Отделы можно представить в виде групп, а остальное прописывать в полях.
День добрый
вопрос по редактированию информации по лицензионным ключам. К сожалению у Вас не учитываются корпоративные лицензии, где по одному ключу работают несколько машин.
Здравствуйте.
Такие лицензии вполне можно учитывать. Если версии ПО совпадают, и ключ один и тот же, то программа определит это. Достаточно прописать лицензии соответствующее количество копий.
Более удобно такие лицензии можно будет учитывать в новой версии (TNI 3 + SAM), в том числе для разных версий ПО (с использованием объединения ПО).