RUS | ENG

LAN Administrator

Рабочее окно приложения

Данное HTA-приложение осуществляет мониторинг, сбор информации и запуск сетевых приложений на избранных хостах локальной сети.
Перечень и содержимое колонок настраивается через контекстное меню в заголовке таблице.
Информация по конкретному хосту извлекается по команде контекстного меню "Get Host Info" и может быть отредактирована и дополнена любыми произвольными параметрами с помощью команды контекстного меню "Edit Host Info".
Cостав и команды самого контекстного меню так же могут быть отредактированы и дополнены как встроенными так и произвольными внешними командами применимыми к хосту. Такое редактирование осуществляется через диалоговое окно "Edit Context Menu".
Все настройки программы сохраняются в файлах main.ini и menu.ini. Информация о хостах - в файле hosts.ini. Эти файлы располагаются в именных подкаталогах profiles\<name>. Можно иметь несколько профилей с различным содержимым (допустим "компьютеры", "принтеры", "веб-камеры", и т.п.) и указывая в командной строке в качестве параметра имя профиля, использовать одновременно несколько копий программы.
Настроенные профили в дистрибутиве служат лишь для примера. Благодаря гибким настройкам, вид и функциональные возможности программы в первую очередь зависят не от её автора, а от фантазии конечного пользователя.

LAN Administrator является всего лишь наглядной настраиваемой оболочкой для списка ваших хостов и применимых к ним команд.
Содержимое списка, количество колонок с информацией, все команды контекстного меню - все эти параметры хранятся в ini-файле.

Замечания к использованию

Описание параметров файла main.ini

[main] Общие настройки программы.
column_headers Заголовки колонок. Любой текст, разделенный запятыми.
Например: column_headers=IP-адрес,Тип и частота процессора
column_contents Содержимое выводимых полей, разделенные запятыми.
В качестве выводимого содержимого может быть указан один или несколько параметров хоста (с префиксом host. и в угловых скобках) а так же произвольный текст.
Например: column_contents=<host.ip>,<host.proc_name> (<host.proc_clock> MHz)

Естественно, кол-во запятых (а, значит и количество аргументов) в параметрах column_headers и column_contents должно совпадать.
host_types Доступные типы хостов через запятую. Значение по-умолчанию: "computer,server,notebook,thinclient,printer,router,netcard,webcamera,ATS"
Если у Вас есть желание добавить в строку новый тип, то необходимо позаботиться о наличии в подкаталоге \images изображения 16x16 в формате .ico с соответствующим именем.
column_width Ширина колонок (в пикселях) через запятую. (Используется только при первом старте программы)
В дальнейшем пользователь изменяет ширину колонок через интерфейс программы, перетаскивая разделитель мышкой. (Клик правой кнопкой на разделителе сбрасывает ширину колонки в авто).
Новые значения сохраняются в cookie.
width
height
Ширина и высота окна программы (в пикселях). (Используется только при первом старте программы)
Значения перезаписываются автоматически при изменении размеров окна и сохраняются в cookie.
ping_interval Интервал опроса хостов на их доступность (в секундах).
response_time_max Максимальное время ответа хоста на пинг (в милисекундах). Если время ответа хоста превышает заданное этим параметром значение, то индикатор активности (параметр <host.online>) окрашивается в красный цвет.
admin_name
admin_pass
Имя и пароль администратора.
Если в одном из диалоговых окон Вы разрешили сохранение регистрационных данных, то они сохранятся именно сюда и в следующий раз будут подставлены автоматически.
true_udefined Если этот параметр задан со значением отличным от 0 (например, 1), то при вызове из контекстного меню внешней команды, строка ее запуска не будет проверятся на существование заданных в ней параметров.
Это позвояет опустить часть параметров при запуске внешней команды.
priority_ip Если этот параметр задан со значением отличным от 0 (например, 1), то, при периодическом опросе хостов и при запуске встроенных команд контекстного меню, будет использоваться ip адрес хоста, а не его имя.
Данная установка предпочтительна в сетях со статической ip адресацией.
В данную секцию можно добавить и любой другой параметр с произвольным именем. Затем, значение этого параметра можно будет использовать при задании других параметров.
Например, если мы задали
all_users=c$\Documents and Settings\All Users\
то возможна такая запись
cm_cmd8=explorer.exe \\<host.name>\<all_users>

Описание параметров файла menu.ini

[context_menu] Настройки контекстного меню
cm_default Номер пункта контекстного меню, команда из которого будет выполнена при двойном клике мыши на строке с хостом.
cm_itemN Имя пункта контекстного меню, где N - (здесь и далее) - уникальный номер пункта меню.
Если cm_itemN=separator или cm_itemN=-, то в указанную позицию меню вставляется разделитель.
cm_iconN Полный или относительный путь к соответствующей иконке размером 16x16. Если иконка находится в подкаталоге \images, то указание пути не требуется.
Вместо иконки можно использовать произвольный символ из любого шрифта, задав через точку с запятой букву, строку стиля и цвет. Например "O;normal 14px Wingdings;blue"
cm_cmdN Команда, выполняемая при выборе данного пункта.
В качестве параметров команды используются значения выбранного хоста. Если в списке отмечено несколько хостов, то команда выполняется над каждым хостом последовательно.
Если имя команды предваряется символом @, то подразумевается внутренняя команда LAN Administrator. В настоящее время допустимы следующие внутренние команды: AddHosts, RemoveSelHost, GetSelHostInfo, EditHostInfo, ExportToExcel, ImportFromExcel, ExecRemote, HTTPConnect, EditContextMenu. Действие их понятно из названия.
Помимо внутренних допустимы любые внешние команды. Командная строка для такой команды задается обычным порядком. В командной строке можно использовать любые параметры, имеющиеся в ini-файле. Параметры вставляются в командную строку в угловых скобках. Значения параметров с префиксом host. берутся из соответствующих значений текущего хоста (или, последовательно, из значений отмеченных хостов).
Например:
cm_cmd22="<util_dir>\RAdmin\radmin.exe" /connect:<host.ip>:<host.radmin_port>

Добавленный в конец коммандной строки параметр с префиксом host. в фигурных скобках говорит о том, что данная команда будет выполнена в скрытой консоли cmd.exe, а текст ее вывода заменит значение указанного параметра.
Например:
cm_cmd14=FOR /F "skip=3 tokens=2" %m IN ('arp -a <host.ip>') DO @echo %m {host.mac}
cm_offline_disabledN Признак того, будет ли данный пункт меню активным если хост, на котором вызвали контекстное меню, в данный момент не доступен.
Если данный параметр равен 1, то пункт меню будет активен только если активен хост.
Если данный параметр равен -1, то пункт меню будет активен только если хост не активен.
Если данный параметр отсутствует или равен 0, то пункт меню будет активен всегда, независимо от активности хоста.
Множество примеров других дополнительных команд для контекстного меню Вы можете найти на странице Wiki.

Описание параметров файла hosts.ini

[hostN] Настройки для хоста N
type Тип хоста (одно из значений, взятое из строки host_types)
port_check Номер порта для проверки доступности хоста. Если не указан, то используется ICMP ping
online Признак того, пингуется хост или нет. Если хост не пингуется, то значение этого параметра равно -1. Если пинги проходят, то значением параметра является время ответа хоста в милисекундах. Это значение обновляется при каждом очередном запросе доступности хоста.
name Короткое имя хоста (без имени домена)
hostname Полное доменное имя хоста
ip IP-адрес хоста
domain Имя домена или рабочей группы в которой зарегистрирован хост
username Имя вошедшего в систему пользователя в формате DOMAIN\username
user Имя вошедшего в систему пользователя без имени домена
OSVersion Название и версия операционной системы
mac MAC-адрес сетевой карты
ip_all Все IP-адреса сетевой карты
DefaultIPGateway IP-адрес основного шлюза
DNSServerSearchOrder Адреса DNS-серверов в порядке использования
proc_name Имя процессора
proc_clock Частота процессора
memory_size Размер оперативной памяти (в Mb). Несколько установленных модулей отображаются через +
memory_info Тип и скорость модулей памяти
disks_size Размеры установленных накопителей (в Gb)
video Модели установленных видеокарт с размером оперативной памяти на них (в Mb)
user_cn ФИО текущего пользователя (извлекается из AD)
user_info Информация о текущем пользователе (извлекается из AD)
user_title Заголовок текущего пользователя (извлекается из AD)
user_mail E-mail текущего пользователя (извлекается из AD)
user_telephoneNumber Номер телефона текущего пользователя (извлекается из AD)
user_otherTelephone Номер дополнительного телефона текущего пользователя (извлекается из AD)
PCSerialNumber Серийный номер системного блока (если производитель разместил его в BIOS)
MonitorName Марка подключенного монитора (если производитель разместил его в EDID)
MonitorSerialNumber Серийный номер подключенного монитора (если производитель разместил его в EDID)
SID SID текущего пользователя системы
Printers Список принтеров текущего пользователя системы (включая сетевые). Первый в списке - принтер по-умолчанию.
MappedDrives Список подключенных сетевых дисков текущего пользователя системы (включая UNC-путь).
protect Список (через запятую) имен параметров данного хоста, значения которых Вы желаете защитить от автоматического изменения по команде "Get Host Info".
В диалоговом окне "Edit Host Info" имена параметров, обновляемых по команде "Get Host Info" выделены синим цветом. Щелчок мыши вызовет добавление/удаление выбранного имени из списка параметра protect.
Параметры type, port_check, name или ip задаются вручную при добавлении нового хоста. Остальные параметры (для хостов, имеющих тип "computer", "server", "notebook") определяются автоматически при выполнении команды контекстного меню "Get Host Info".
Значения параметров, извлекаемых из Active Directory зависят от трудолюбия и предпочтений администраторов Вашего домена.
Вручную можно добавить и любые другие параметры (как прямым редактированием ini-файла, так и через диалог "Edit Host Info"). Их количество, имя и значение - произвольно. Будут ли значения заданных параметров отображаться в таблице или будут использованы в командах контекстного меню - зависит только от вашего желания.

Например, если мы зададим для хоста параметр с именем inv_number, то его значение можно выводить в соответствующую колонку
column_headers=Инв.№,...
column_contents=<host.inv_number>,...

или использовать в качестве параметра команды меню:
cm_item28=Инвентарная карточка
cm_icon28=info.ico
cm_cmd28=cmd /k chcp 1251>nul & echo Инв.номер: <host.inv_number> & echo Процессор: <host.proc_name> (<host.proc_clock> MHz) & echo Память: <host.memory_size> Mb & echo Жесткий диск: <host.disks_size> Gb

Дополнительные возможности

Ссылки

Благодарности

Огромное СПАСИБО Xameleon за первый вариант этого приложения. И хотя в далеком 2009м никто и не предполагал что из этого может получиться, именно этот скрипт побудил меня на написание LAN Administrator.
Так же хочу высказать благодарность всем авторам и компаниям чей бесплатный софт и скриптовые решения были использованы в моей программе, а именно:
jQuery, TableDnD plug-in for JQuery, PsExec, Wake On Lan Command Line, tcping.exe

Лицензионное соглашение

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

Данные для обратной связи находятся в коде заголовка HTA приложения.


mozers™