RUS | ENG

## LAN Administrator

Данное HTA-приложение осуществляет мониторинг, сбор информации и запуск сетевых приложений на избранных хостах локальной сети.
Перечень и содержимое колонок настраивается через контекстное меню в заголовке таблице.
Информация по конкретному хосту извлекается по команде контекстного меню "Get Host Info" и может быть отредактирована и дополнена любыми произвольными параметрами с помощью команды контекстного меню "Edit Host Info".
Cостав и команды самого контекстного меню так же могут быть отредактированы и дополнены как встроенными так и произвольными внешними командами применимыми к хосту. Такое редактирование осуществляется через диалоговое окно "Edit Context Menu".
Все настройки программы и информация о хостах сохраняются в INI файле с произвольным именем, поэтому можно иметь несколько ini-файлов с различным содержимым (допустим "компьютеры.ini", "принтеры.ini", "веб-камеры.ini", "удаленный oфис.ini") и указывая в командной строке в качестве параметра имя файла, использовать одновременно несколько копий программы.
LANAdmin.ini в дистрибутиве служит лишь для примера. Благодаря гибким настройкам, вид и функциональные возможности программы в первую очередь зависят не от её автора, а от фантазии конечного пользователя.

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

- Большинство функций будут работать только при наличии у текущего пользователя прав администратора.
- Хотя программа запустится и без ini-файла, рекомендуется первый запуск произвести с имеющимся образцом, чтобы на примере убедится как можно сконфигурировать приложение.
  После запуска можно заменить список хостов на список из своей сети, если в диалоговом окне "Add Hosts" установить чекбокс на пункте "Remove all exist hosts".
- Никаких ухищрений для защиты от дебильных антивирей не предпринималось, поэтому если пользуетесь одним из них, заносите программу в список исключений.

### Описание параметров INI файла

LAN Administrator является всего лишь наглядной настраиваемой оболочкой для списка ваших хостов и применимых к ним команд.
Содержимое списка, количество колонок с информацией, все команды контекстного меню - все эти параметры хранятся в 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 должно совпадать.
username_without_domain | Признак того, удалять из имени вошедшего в систему пользователя имя домена или нет. При отсутствии данного параметра или при его нулевом значении имя домена отображается. При username_without_domain=1 имя домена удаляется. Учтите, что при такой установке, если имя локального пользователя совпадает с доменным, вы не увидите разницу между локальным и доменным входом в систему.
host_types | Доступные типы хостов через запятую. Значение по-умолчанию: "computer,server,notebook,printer,router,netcard,webcamera,ATS" Если у Вас есть желание добавить в строку новый тип, то необходимо позаботиться о наличии в подкаталоге \images изображения 16x16 в формате .ico с соответствующим именем.
column_width | Ширина колонок (в пикселях) через запятую. Переписывается автоматически, поэтому менять эти значения удобней через интерфейс программы, перетаскивая разделитель мышкой.
width height | Ширина и высота окна программы (в пикселях). Перезаписывается автоматически при изменении размеров окна.
ping_interval | Интервал опроса хостов на их доступность (в секундах).
response_time_max | Максимальное время ответа хоста на пинг (в милисекундах). Если время ответа хоста превышает заданное этим параметром значение, то индикатор активности (параметр <host.online>) окрашивается в красный цвет.
admin_name admin_pass | Имя и пароль администратора. Если в одном из диалоговых окон Вы разрешили сохранение регистрационных данных, то они сохранятся именно сюда и в следующий раз будут подставлены автоматически.
shortcut | Признак того, что программа уже установила свой ярлык на Рабочем столе. Удалите этот параметр для пересоздания ярлыка.
util_dir | Каталог размещения внешних утилит. Если задан относительный путь, то он отсчитывается от каталога программы. При задании абсолютного пути возможно использование любых переменных окружения.
В данную секцию можно добавить и любой другой параметр с произвольным именем. Затем, значение этого параметра можно будет использовать при задании других параметров. Например, если мы задали `all_users=c$\Documents and Settings\All Users\` то возможна такая запись `cm_cmd8=explorer.exe \\<host.name>\<all_users>`

[context_menu] | Настройки контекстного меню
--- | ---
cm_default | Номер пункта контекстного меню, команда из которого будет выполнена при двойном клике мыши на строке с хостом.
cm_itemN | Имя пункта контекстного меню, где N - (здесь и далее) - уникальный номер пункта меню. Если `cm_itemN=separator` или `cm_itemN=-`, то в указанную позицию меню вставляется разделитель.
cm_iconN | Полный или относительный путь к соответствующей иконке размером 16x16. Если иконка находится в подкаталоге \images, то указание пути не требуется.
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>`
cm_offline_disabledN | Признак того, будет ли данный пункт меню активным если хост, на котором вызвали контекстное меню, в данный момент не доступен. Если данный параметр равен 1, то пункт меню будет активен только если активен хост. Если данный параметр равен -1, то пункт меню будет активен только если хост не активен. Если данный параметр отсутствует или равен 0, то пункт меню будет активен всегда, независимо от активности хоста.

[hostN] | Настройки для хоста N
--- | ---
type | Тип хоста (одно из значений, взятое из строки host_types)
port_check | Номер порта для проверки доступности хоста. Если не указан, то используется ICMP ping
online | Признак того, пингуется хост или нет. Если хост не пингуется, то значение этого параметра равно -1. Если пинги проходят, то значением параметра является время ответа хоста в милисекундах. Это значение обновляется при каждом очередном запросе доступности хоста.
name | Имя хоста
ip | IP-адрес хоста
domain | Имя домена или рабочей группы в которой зарегистрирован хост
username | Имя вошедшего в систему пользователя в формате DOMAIN\username. При username_without_domain=1 имя домена опускается.
OSVersion | Название и версия операционной системы
mac | MAC-адрес сетевой карты
ip_all | Все IP-адреса сетевой карты (через запятую)
DefaultIPGateway | IP-адрес основного шлюза
DNSServerSearchOrder | Адреса DNS-серверов в порядке использования (через запятую)
proc_name | Имя процессора
proc_clock | Частота процессора
memory_size | Размер оперативной памяти в Mb (несколько установленных модулей отображаются через +)
memory_info | Тип и скорость модулей памяти
disks_size | Размер установленных накопителей в Gb (через запятую)
video | Модель видеокарты
video_mem | Размер оперативной памяти видеокарты в Mb
user_cn | ФИО текущего пользователя (извлекается из AD)
user_info | Информация о текущем пользователе (извлекается из AD)
user_title | Заголовок текущего пользователя (извлекается из AD)
user_mail | E-mail текущего пользователя (извлекается из AD)
user_telephoneNumber | Номер телефона текущего пользователя (извлекается из AD)
user_otherTelephone | Номер дополнительного телефона текущего пользователя (извлекается из AD)
Параметры 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`

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

- Нажатие на клавишу Esc закрывает программу без сохранения изменений сделанных в текущем сеансе.
- Нажатие на клавишу F1 показывает эту справку.
- Большинство команд контекстного меню можно выполнить как с единственным хостом, так и с несколькими, которые надо предварительно отметить чекбоксами. Одновременно отметить группу хостов можно нажимая клавишу Shift. Массовая установка или снятие чекбоксов выполняется с помощью чекбокса в заголовке таблицы. Причем, при нажатой клавише Shift отмечаются все хосты, иначе - только активные.
- Настройку столбцов таблицы (добавление, удаление, заголовок и отображаемая информация) можно осуществить с помощью команд контекстного меню, открывающегося по клику правой кнопки мыши на заголовке столбца.
- Ширина колонок таблицы устанавливается автоматически, но можно задать и фиксированное значение путем перетаскивания (с зажатой левой клавишей мыши) разделителя в заголовке столбца. После завершения перетаскивания колонка будет выводится с фиксированной шириной. Не рекомендуется всем колонкам присваивать фиксированное значение (при изменении размеров таблицы будет смотрется некрасиво).
- Можно перетащить строку с хостом в нужное место списка, зажав ее левой кнопкой мыши. Так же можно отсортировать строки автоматически по выбранному столбцу (с помощью команды "Sort" в контекстном меню заголовка столбца).
- Можно видеть в отдельном окне (открывающимся по пункту контекстного меню "Show Info") фотографию пользователя, если Вы ее заблаговременно положили в подкаталог /images и назвали <name>.jpg, где <name> должен совпадать с параметром username данного хоста. Фото может быть любого размера. Оптимальный - 90 х 120 пикселей.
- Читайте историю версий! Там все возможности расписаны более полно.

### Ссылки

- Дистрибутив (упаковывается и выкладывается периодически)
- Исходный код (самый последний вариант)
- История версий (с детализацией всех изменений)

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

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

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

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

mozers™