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


НАЧНЕМ С КУХНИ
НАПИСАНИЕ МЕНЮ
ПРОСТОЙ ПРИМЕР
СПЕЦИАЛЬНЫЕ СИМВОЛЫ
КАК СДЕЛАТЬ РАБОТУ ПРИЯТНОЙ
НА СЛУЖБЕ ПОЛЬЗОВАТЕЛЕЙ

Сегодня администраторам сетей приходится работать в среде, использующей множество технических терминов, мнемонических символов и команд - символы их усилий, направленных на взрывообразное распространение цифровой информации. Чтобы защитить пользователей сети от этой среды, администраторы могут воспользоваться встроенной утилитой NetWare под названием MENU. Настраивая меню NetWare, утилита позволяет упростить выполнение пользовательских задач.

С помощью включенной в Net-Ware 2.2 и выше утилиты MENU администраторы могут выполнять ASCII-сценарии с тем, чтобы пользователь сети получал на экране профессионально-выглядящее меню. На практике программа MENU применяется в версиях с 2.2 по 3.11, а NetWare 3.12 и 4.x включают модифицированную версию NMENU, использующую меньше памяти и имеющую некоторые дополнительные возможности. Мы рассмотрим только первоначальную версию MENU, так как различия между обеими версиями минимальны, во всяком случае в том, что касается создания и работы с настраиваемыми меню.

НАЧНЕМ С КУХНИ

При создании настраиваемого меню потребуются два сетевых и один пользовательский файла. Система MENU состоит из двух исполняемых файлов MENU.EXE и MENUPARZ.EXE, по умолчанию находящихся в каталоге SYSPUBLIC. Первую программу можно рассматривать как интерпретатор команд. Эта программа выполняет команды из файла сценария меню. Поскольку эти команды могут быть как командами DOS, так и командами NetWare, MENU.EXE вызывает при необходимости командный процессор DOS COMMAND.COM.

Вторая исполняемая программа MENUPARZ.EXE отвечает за создание окон меню, способы взаимодействия пользователей с меню и интерпретацию данных в файле сценария меню. MENU.EXE вызывает MENUPARZ.EXE при первом запуске MENU, а также после выполнения очередной команды в файле сценария.

Сценарии меню являются третьим компонентом системы MENU. Эти файлы можно создавать при помощи редактора ASCII-текста или любого другого текстового редактора при условии, что файл затем сохраняется как ASCII-текст. Кроме того, файлы должны иметь расширение .MNU. Создав файл сценария, вы можете вызвать его, просто выполнив из командной строки команду MENU с именем файла сценария. Например, находясь в каталоге PUBLIC и имея на него права, вы должны ввести команду MENU MYMENU для выполнения файла сценария MYMENU.MNU.

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

НАПИСАНИЕ МЕНЮ

Формат файла сценария состоит из обязательных и необязательных статей (см. Пример 1). Первая строка файла сценария начинается со знака процента (%) и содержит заголовок меню. Следующая за знаком процента строка символов появляется в виде заголовка в созданном меню. Строка может содержать строчные и прописные буквы, цифры, большинство специальных символов и пробелы.

Статьи Row (ряд), Column (столбец) и Color (цвет) необязательны. Значения Row и Column определяют позицию, относительно которой меню центрируется. Значение по умолчанию 0, 0 для Row и Column соответствует позиционированию меню в центре экрана; только эта точка имеет некоторое сходство с обычной системой координат. MENU разбивает экран дисплея на 24 ряда и 80 столбцов. Значения Row и Column определяют положение центра окна меню на экране.

NetWare поддерживает перекрывающиеся меню. Поэтому позиционирование может оказаться полезным в ситуации, когда следующее вызываемое меню перекрывает предыдущее, которое пользователю необходимо видеть.

Третьей необязательной статьей в заголовке меню является идентификатор цветовой палитры, определяющий цвет фона и цвет пера. NetWare поддерживает пять цифровых палитр с номерами с 0 по 4 (палитра по умолчанию имеет номер 0). При выборе цветовой палитры необходимо иметь в виду, что NetWare использует каждую из пяти палитр в конкретных целях. Например, палитра 0 обычно используется для списков, меню и обычного текста, палитра 1 - для главных заголовков и фона экрана, палитра 2 - для экрана подсказки, 3 - для сообщений об ошибках и, наконец, 4 - для сообщений о выходе.

Вы, конечно, можете изменить принимаемый по умолчанию номер цветовой палитры, однако большинство людей предпочтут сохранить уже существующие палитры, чтобы созданные меню выглядели как стандартные меню NetWare (бело-голубые меню утилит). Поскольку все меню NetWare, включая настраиваемые, получают информацию о цветах от утилиты COLORPAL, можно воспользоваться ею для изменения отображаемых цветов настраиваемых меню - было бы желание.

В файле сценария строки за заголовком образуют последовательность опций меню, причем имя команды или заголовок подменю расположены под опцией меню (см. Пример 1). Мы рекомендуем делать отступ, по крайней мере в две позиции табуляции для того, чтобы имя команды или заголовок подменю можно было отличить от опции меню. Командой может быть любая команда NetWare (или DOS) и имя пакетного файла. Также это может быть командная строка, вызывающая приложение или утилиту. Заголовок подменю представляет собой имя другого меню, определяемое во многом как заголовок меню (то есть заголовок подменю начинается со знака процента, за которым следует название, опции и команды).


ПРИМЕР 1 - ФОРМАТ ФАЙЛА СЦЕНАРИЯ МЕНЮ

% <Заголовок меню,><ряд,>*<столбец,>*<цвет>*
<Пункт меню>
 <Имя команды или подзаголовок меню>
<Пункт меню>
 <Имя команды или подзаголовок меню>
<Пункт меню>
 <Имя команды или подзаголовок меню>
*Необязательные параметры





Длина каждой строки в файле сценария ограничена 72 символами, если считать с первой позиции. Пробелы между буквами рассматриваются как символы; длина последовательностей символов, заключаемых в кавычки, ограничена 40. Что касается последнего, "at" (@), то это специальный символ, благодаря которому пользователь при работе с меню может вводить данные для команды. Закавыченный текст вслед за символом "at" используется для запроса о вводе пользователем необходимой информации.

ПРОСТОЙ ПРИМЕР

Как сказал бы небезызвестный Рокки, лучший способ проиллюстрировать создание настраиваемых меню - сделать это. Давайте так и поступим. Создав несколько меню, мы параллельно рассмотрим некоторые интересные возможности MENU. Но прежде, чем начать, позвольте обратить ваше внимание на простой пример одноуровневого меню в файле сценария меню MENU.MNU из комплекта NetWare. Этот файл также, как MENU.EXE и MENUPARZ.EXE, находится в каталоге PUBLIC.

Пример 2 представляет собой распечатку содержимого файла сценария MENU.MNU. На Рис. 1 изображен вид меню, порождаемого командой MENU при вызове данного файла. Каждая опция меню в файле сценария из Примера 2 за исключением последней опции является кратким описанием утилиты меню NetWare. Ниже каждой опции меню находится имя утилиты. Следовательно, выбор какой-либо опции в меню приводит к выполнению программы, указанной вслед за опцией.


ПРИМЕР 2 - ФАЙЛ СЦЕНАРИЯ MAIN.MNU

% Main Menu, 0, 0, 0
1. Session Management
  session
2. File Management
  filter
3. Volume Information
  volinfo
4. System Configuration
  syscon
5. File Server Monitoring
  fconsole
6. Print Queue Management
  pconsole
7. Print Job Configurations
  printcon
8. Printer Definitions
  printdef
9. Logout
  !logout






Picture 1 (1x1)

Рисунок 1.
Встроенное одноуровневое меню, порождаемое файлом сценария MENU.MNU.

Опция выхода Logout требует специальной команды выхода !LOGOUT. Восклицательный знак указывает LOGOUT на необходимость закрыть все открытые файлы. Использование !LOGOUT предпочтительнее, чем LOGOUT.

Обратите внимание, что во втором примере опции меню перечислены в порядке с 1 по 9. Вообще говоря, нет необходимости перечислять их по порядку: если вы присвоите опции меню префикс (не имеет значения буквенный или цифровой), то MENU автоматически отобразит их в меню в соответствии с префиксом в файле сценария.

СПЕЦИАЛЬНЫЕ СИМВОЛЫ

Некоторые символы в файле сценария имеют особое значение. Одним из них является ранее упоминавшийся символ "at". Благодаря этому символу пользователь может вводить переменную по запросу. Если MENUPARZ встречает символ @ вслед за командой, она открывает горизонтальное окно, в котором пользователь должен набрать строку символов. Эта строка символов передается в качестве параметров соответствующей команде. Если вы хотите снабдить пользователей информацией о том, какие данные необходимо ввести, то поместите за символом @ поясняющий текст в двойных кавычках. Рассмотрим, например, простой сценарий под названием TEST MENU, состоящий из заголовка, одной опции и двух команд.

%TEST MENU
Directory listing
  dir/w @ "Введите букву диска с двоеточием"
  pause

Выполнение сценария с заголовком TEST MENU приводит вначале к отображению окна меню с заголовком TEST MENU, содержащего одну выделенную опцию Directory Listing. Если вы нажмете клавиши Enter, то появится окно ввода с запросом: "Введите логический диск с двоеточием" (см. Рис. 2). Хотя символ двоеточия ":" в запросе отсутствует, он автоматически добавляется к каждому запросу и отображается в окне запроса. За командой DIR/W в сценарии меню следует команда PAUSE для остановки листинга каталога с тем, чтобы пользователи имели время спокойно просмотреть содержимое экрана. Если бы PAUSE не было, сразу же после выполнения команды DIR/W на экране вновь появилось бы меню MENU TEST, так что пользователь не имел бы времени прочитать листинг каталога.

Picture 2 (1x1)

Рисунок 2.
Использование символа "at" (@) в файле сценария меню приводит к генерации окна ввода и отображению сообщения с запросом.

Рассматриваемый нами сценарий иллюстрирует весьма важный момент, касающийся отображения информации, генерируемой посредством команд DOS и NetWare, включенных в сценарий; если пользователю рабочей станции необходимо несколько секунд, чтобы просмотреть результат выполнения команды, то за ней должна следовать команда PAUSE. Некоторые команды получают более одного параметра, поэтому меню позволяет задавать несколько параметров.

Чтобы различить вводимые параметры, когда команда требует нескольких параметров, символу "at" присваивают цифровой суффикс. Рассмотрим, например, следующий сценарий для копирования файла или группы файлов из одного каталога в другой и распечатки каталога на экране для каждого диска.

TEST MENU
Копирование файлов
  copy @1 "Откуда копировать диск/файл" @2 "Куда копировать"
  dir/w @1
  dir/w @2
  pause

В этом примере переменная @1 отображает запрос "Откуда копировать диск/файл" в горизонтальном окне ввода внизу экрана. После ввода строки с названием файла ее значение присваивается переменной @1. Переменная @2 отображает сообщение "Куда копировать". После ввода пользователем второй строки команда COPY использует значения переменных @1 и @2 для выполнения операции копирования. Присвоенное переменной значение сохраняется до выхода пользователя из меню. Таким образом, последующие команды (в вышеуказанном примере две команды dir) могут использовать уже введенные пользователем значения переменных.

Иногда как часть запроса в сценарии необходим один (или более) специальный символ. Так как символ "at" используется для генерации окна вывода, а знак % сигнализирует о начале нового меню, то их появление в запросе приведет к выполнению нежелательных в этом случае действий. Знак в виде обратной косой черты () перед этими символами будет сообщать интерпретатору от том, что символы не следует рассматривать как специальные. Если символ в виде обратной косой черты уже присутствует в запросе, а вы хотите, чтобы он рассматривался как текстовой символ, то его тоже необходимо снабдить префиксом ().

КАК СДЕЛАТЬ РАБОТУ ПРИЯТНОЙ

Создание файла сценария позволяет снабдить пользователей настроенными меню для доступа к часто используемым приложениям и командам. В самом деле вид настроенного меню можно автоматизировать с помощью команды EXIT в сценарии входа. Отдельное меню может быть создано для каждого пользователя, причем сценарии меню вызываются из пользовательского сценария входа. Используя сценарий входа в систему, можно создать сценарии меню и для группы пользователей. В этом случае необходимо учесть, что использование команды EXIT в сценарии входа в систему делает невозможным выполнение пользовательского сценария входа. В качестве примера рассмотрим следующие операторы из сценария входа в систему:

if member of "xyz" then
 exit "menu utility"
end

Если пользователь принадлежит к группе "xyz", то файл сценария UTILITY.MNU используется в качестве ввода программы MENU, а пользовательские сценарии входа игнорируются. Поэтому в данном случае все зависит от того, как пользовательские и системные сценарии входа используются в вашей организации. Другое ограничение, касающееся настроенного меню из сценария входа, касается команды EXIT. Длина закавыченной командной строки в команде EXIT не должна превышать 14 символов. Следовательно, спецификация для файла сценария входа ограничена 9 символами, так как 5 символов занимает команда MENU и пробел.

Данное ограничение можно обойти, используя соответствующую команду MAP. Приведем пример. Допустим, файл сценария меню находится в каталоге PUBLIC. Помещение следующих операторов в сценарий входа в систему позволяет вызвать меню сценария utility при входе в систему члена группы "xyz":

if member of "xyz" then
  map q:=sys:public
  exit "menu q:utility"

В этом случае имя каталога задается командой MAP, так что делать имя utility короче нет необходимости.

НА СЛУЖБЕ ПОЛЬЗОВАТЕЛЕЙ

Теперь хотелось бы привести пример меню, с помощью которого пользователь может выполнять как локальные приложения, так и приложения на сервере. Содержимое сценария меню APPLICATION&UTILITY MENU показано в Примере 3. На Рис. 3 меню представлено в том виде, в котором оно появляется на экране. Заметим, что выбор первого пункта меню Lotus приводит к изменению пути на каталог 123 на диске С. Вслед за этим без указания входного файла происходит запуск электронной таблицы.


ПРИМЕР 3 - РАЗВЕРНУТЫЙ ФАЙЛ СЦЕНАРИЯ

%APPLICATION & UTILITY MENU,0,0,0
1. Lotus
  path c123
  c:123123
2. QBASIC
  path c:qb45
  c:qb45qb @ "Enter startup program name"
3. Word Perfect
  map ins s1:=c:wp51
4. Terminal Emulator
  c:3270pc3270
5. Display Network Drive Mapping & Paths
  map @ "Enter Drive Letter or "Enter" for ALL"
  path
  pause
6. System Configuration
  syscon
7. List Network User(s)
  path f:public
  userlist @ "Enter Name or Pattern" /A
  pause
8. Send A Message
  path f:public
  send @ "Enter msg in quotes and user/group"
9. Return to DOS
  echo off
  path c:dos; c:
etmanag; c:windows; f:public
  echo "Press ESC key when APPLICATION & UTILITY MENU appears"
  echo "Then select Yes to exit"
  pause




Picture 3 (1x1)

Рисунок 3.
Вид меню, порождаемого файлом сценария меню из Пример 3. Благодаря этому меню, пользователи получают доступ к приложениям и утилитам как на локальном, так и на сетевом диске.

Выбор второго пункта QBASIC, для сравнения, приводит к отображению окна запроса внизу пользовательского экрана. Это окно содержит запрос на ввод имени файла "Enter startup program name", после указания которого программа QB45 (Microsoft QuickBASIC 4.5) открывает данный файл. Если пользователь нажмет клавишу Enter, не указывая имени файла, то переменной @ присваивается значение "0" и, следовательно, программа QuickBASIC открывает файл без имени или пустой файл.

Третий пункт иллюстрирует использование команды MAP INSERT (MAP INS) для связывания диска поиска с каталогом, в котором хранится WordPerfect. Этот метод можно применять вместо команды PATH, если исполняемому файлу требуется доступ к другим файлам в том же каталоге.

Четвертый пункт, Terminal Emulator, предоставляет доступ к программе эмуляции терминала 3270. Предполагая, что пользователь не будет загружать файлы по сети и эмуляция необходима ему для полноэкранного доступа к мэйнфрейму для работы с приложениями, которые осуществляют запрос данных; средства поиска этого каталога предоставлять не надо. Поэтому мы не включили в этот пункт ни команду PATH, ни команду MAP.

Пятая опция обеспечивает доступ из меню к команде NetWare Map, а шестая - к SYSCON. В действительности возможность доступа к SYSCON из меню зависит от того, в каком порядке выбираются пункты меню. Для иллюстрации важной концепции мы намеренно допустили ошибку в сценарии. Если сначала был выбран пункт 1 для запуска электронной таблицы Lotus, то путь станет таким: C:123. После выхода из программы 123 и возврата в меню при выборе пункта 6 каталог PUBLIC на сетевом сервере, где по умолчанию находится SYSCON, обнаружен не будет.

Таким образом, оператор PATH F:PUBLIC просто необходимо поместить сразу под пунктом System Configuration, как это сделано в пунктах 7 и 8. Что касается пункта 7, использование USERLIST иллюстрирует еще один заслуживающий внимания метод для файла сценария. В этом случае команда для вывода на экран номера соединения, времени входа, адресов сети и узла для каждого пользователя сети USERLIST выполняется с опцией /A. В нашем примере опция /А помещена в конец строки, но вы можете поместить ее и сразу после USERLIST.

Последний пункт в меню, Return to DOS, восстанавливает обычное окружение пользователя и сообщает пользователю (на случай, если он этого не знает), как выйти из меню. Таким образом, чтобы напомнить о том, как правильно выйти из меню NetWare, последний пункт содержит две команды ECHO.

Думается, из приведенных нами примеров вы сможете составить общее представление о создании настроенных меню, призванных помочь пользователям в выполнении операций как на локальном компьютере, так и в сети. Несмотря на некоторые трудности при создании, использование файлов сценариев меню посредством MENU или NMENU дает возможность существенно повысить производительность работы пользователей. Помещая часто используемые команды в простые пункты меню и настраивая меню в соответствии с требованиями пользователей, вы увеличиваете производительность и получаете профессионально выглядящие меню.


Гилберт Хелд - директор 4-Degree Consulting, специализирующейся по внедрению коммуникационных технологий. Кроме того, он автор книг, и его последний труд "Netware Login Scripts for Administrators and Users" ("Сценарии входа NetWare для администраторов и пользователей") был недавно опубликован издательством McGraw-Hill. С ним можно связаться через Internet по адресу: 235-8068@mcimail.com.