Глава 37. Сценарии регистрации и меню

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

Существует 3 типа сценариев регистрации, которые могут выполняться при регистрации пользователя:

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

Выполнение сценария

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

Назначение для пользователя системного сценария регистрации

Системный сценарий регистрации не выполняется для пользова теля автоматически. Вам нужно предоставить пользователю полномочия на контейнер, который содержит пользовательский объект. В NetWare Administrator это делается путем буксировки объекта пользователя на объект контейнера. При этом выводится диалоговое окно Object Trustees с подсвеченным полномочием Browse и именем пользовательского объекта в блоке списка Trustees. Чтобы установки были приняты, щелкните "мышью" на OK.

Чтобы в NETADMIN предоставить пользователю полномочия на контейнер, выделите контейнер и нажмите F10. Выберите в меню Actions for organizational Unit пункт "View or edit trustee assignments to this objects", затем Trustees. Выберите [All Properties Rights] и нажмите Enter. Наберите имя объекта пользователя или нажмите Ins для выбора из списка.

Эту процедуру можно упростить, если назначить системный сценарий регистрации нескольким пользователям, предварительно объединив их в группу и отбуксировав эту группу в контейнер.

Создание и присваивание профильного сценария регистрации

Профильный сценарии регистрации задаются с помощью создания профильного объекта (в NetWare Administrator или NETADMIN). Затем вы можете открыть для профильного объекта диалоговое окно Details и набрать тип сценария регистрации.

Чтобы присвоить пользовательскому объекту в NetWare Administrator профильный сценарий регистрации, дважды щелкните "мышью" на объекте пользователя, затем щелкните "мышью" на командной кнопке Login script выводимого диалогового окна. В поле Default Profile наберите имя профильного сценария регистрации. Для просмотра дерева каталога и выбора профильного объекта вы можете также щелкнуть "мышью" на кнопке поиска.

Чтобы то же самое сделать в NETADMIN, выделите нужный объект пользователя и нажмите F10. В выводимом диалоговом окне выберите "View or edit properties of this object", затем выберите "Groups/Security Equals/Profile". Подсветите пункт Profile и дважды нажмите Ins для выбора профильного объекта из списка.

Сценарии регистрации и контекст службы каталогов

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

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

NDS предоставляет администраторам различных подразделений уникальную возможность вносить в сценарии регистрации сообщения и команды. Это также делается с помощью команды INCLUDE. Важно отметить, что части сценария регистрации управляются супервизорами и администраторами вне обычного пользовательского контекста (то есть своих подразделений). Для выполнения сценариев, вызываемых командной INCLUDE, нужно иметь полномочия READ.

Сценарий регистрации, заданный по умолчанию

В новой сети NetWare v.4 существует простой заданный по умолчанию сценарий регистрации. Большинство администраторов переопределяют этот сценарий, создавая новые сценарии регистрации. Большинство команд в сценарии - это команды MAP. Переменные операционной среды пользователя представляются в сценарии регистрации параметрами с символом %.

Выбор при регистрации

При регистрации пользователей в сети NetWare им предоставляется определенная возможность выбора выполняемых сценариев регистрации. Чтобы обойти сценарий регистрации или задать другой сценарий регистрации, при выполнении команды LOGIN можно использовать следующие параметры:
Параметр
Описание
/NS Позволяет обойти все сценарии регистрации. Используется при отладке или установке новой операционной среды. Назначения дисков не выполняются, а используемым по умолчанию каталогом будет LOGIN. Для назначения дисков вам нужно вручную перейти в каталог PUBLIC и выполнить команды MAP.
/Sимя_файла Этот способ предоставляет лучший способ обойти свой сценарий регистрации и задать альтернативный сценарий. Создайте текстовый файл с командами сценария, а затем выполните команду LOGIN с этим параметром, указав имя данного файла.
/PR=объект С помощью этого параметра вы можете указать LOGIN, что нужно запускать сценарий регистрации, конкретного объекта. Таким образом вы можете задать профильный объект или даже другой пользовательский объект.

Относительно параметра /PR нужно заметить следующее:

Создание и изменение сценариев регистрации

Чтобы создать новые сценарии регистрации или изменить су ществующие, определите сначала, с каким типом сценария регистрации вы хотите работать - системным, профильным или персональным. Затем определите, хотите ли вы использовать NetWare Administrator или NETADMIN для редактирования сценариев регистрации.

Для вывода экране редактирования системного сценария регистрации дважды щелкните "мышью" на том контейнере, в котором вы хотите создавать или редактировать сценарий регистрации. Затем щелкните на командной кнопке Login Script.

Для редактирования профильного сценария регистрации создайте не существующий пока профильный объект. Дважды щелкните на объекте "мышь", затем редактируйте сценарий регистрации.

Чтобы создать или изменить персональный сценарий регистрации, дважды щелкните "мышью" на объекте пользователя, а затем для открытия окна редактирования сценария регистрации - на командной кнопке Login Script.

При редактировании сценариев регистрации вы можете использовать обычные клавиши редактирования. Кроме того, в NETADMIN клавиша F5 позволяет выбелить блок текста для копирования или удаления. Удаляемый с помощью клавиши Del текст сохраняется в буфере, и его можно вставить с помощью клавиши Ins.

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

Чтобы запустить из сценария регистрации программу DOS, укажите перед ней символ #. Для запуска из сценария команды DOS используйте следующую форму:


            #COMMAND имя_файла /C

где "имя_файла" - это соответствующая команда. Текст в командной строке сценария не может превышать 150 символов. В каждой строке допускается только один тип команды, однако в одной строке можно назначить несколько дисков. Строку команды можно продолжить на другой строке.

Идентификаторы переменных сценария регистрации

Использование в сценарии регистрации переменных позволяет настроить сценарий на тип машины или задать дату и время регистрации. Каждая переменная кратко описывается в следующей таблице. Некоторые переменные, такие как дата и время, автоматически устанавливаются NetWare.
Переменная
Описание
SECOND Содержит текущие секунды (0-59).
MINUTE Содержит текущие минуты (0-59).
HOUR Содержит текущие часы (1-12).
HOUR24 Содержит текущий час в 24-часовом формате (00-23).
AM_PM Спецификатор дня или ночи (a.m./p.m.).
GREETING_TIME Morning (утро), afternoon (день) или evening (вечер), в зависимости от времени суток.
DAY Содержит текущее число месяца (01-31).
NDAY_OF_WEEK Номер дня недели 1-7 (воскресенье - 1).
MONTH Содержит номер текущего месяца (01-12).
MONTH_NAME Полное имя месяца.
YEAR Год в полном формате (например, 1994).
SHORT_YEAR Короткий форма года (94).
LOGIN_NAME Имя регистрации пользователя.
FULL_NAME Полное имя текущего пользователя.
USER_ID Номер, присвоенный текущему пользователю.
PASSWORD_EXPIRES Число дней до окончания действия пароля.
LAST_NAME Фамилия пользователя.
STATION Номер рабочей станции.
P_STATION Содержит шестнадцатиричный номер физической рабочей станции из 12 цифр.
MACHINE Длинное имя машины, данное рабочей станции в NET.CFG с помощью команды SHORT MACHINE TYPE.
SMACHINE Короткое имя машины, заданное в NET.CFG с помощью команды MACHINE TYPE.
SHELL_TYPE Номер версии командной оболочки или программного обеспечения реквестора.
NETWARE_REQUESTER Содержит номер версии реквестора OS/2.
NETWORK_ADDRESS Номер сетевого сегмента, к которому подключена рабочая станция.
FILE_SERVER Имя файлового сервера.
OS Содержит операционную систему рабочей станции (например, MSDOS).
OS_VERSION Содержит номер версии операционной системы рабочей станции (например, v6.2).
ACCESS_SERVER True при функциональном доступе к серверу.
ERROR_LEVEL Значение, указывающее на ошибку. 0 при отсутствии ошибок.
MEMBER_OF "группа" Возвращает True, если пользователь является членом группы.
NOT MEMBER_OF "группа" Возвращает True, если пользователь не является членом группы.
%n Воспринимает переменную из командной строки LOGIN. Каждое следующее за LOGIN слово нумеруется от 0 до 9 (номер параметра).

Команды сценария регистрации

Команда сценария:


              WRITE "Good %CREETING_TIME"

выводит в зависимости от текущего времени дня Good morning, Good afternoon или Good evening. В команде WRITE можно использовать большинство переменных. WRITE выводит в виде сообщения текст, заключенный в двойные кавычки. При таком использовании переменные должны быть типизованными и указываться в верхнем регистре с предшествующим символом %.

Переменные в сценарии регистрации позволяют по-разному выполнять сценарии для каждого пользователя в зависимости от операционной среды. Например, сценарий регистрации может выполнять набор команд, если пользователь принадлежит к группе. Имена групп, к которым относится пользователь, извлекаются из пользовательского объекта в процессе регистрации. Некоторая информация извлекается из операционной среды рабочей станции (такая как тип DOS и номер версии). Файл NET.CFG может включать в себя определяющие переменные параметры. Хорошим примером является параметр LONG MACHINE TYPE=, определяющий тип машины. По умолчанию все машины имеют тип IBM_PC, но вы можете задать другие имена, такие как COMPAQ или ATD.

Внешняя команда

Внешняя команда выполняется в сценарии регистрации с помощью символа #:


            #маршрут/команда параметры

где "маршрут" - это буква назначенного диска или полное имя маршрута файла команды, "команда" - имя выполняемого файла, а "параметры" - параметры, необходимые для выполнения программы.

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

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

Команда ATTACH

Команду ATTACH можно использовать для подключения файлового сервера с базой объектов Bindery, на котором работает NetWare 2.x или 3.x. Для серверов NetWare 4 эта команда не требуется. Она имеет следующий формат:


            ATTACH имя_сервера/имя_пользователя;пароль

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

Команду ATTACH можно использовать в сценариях регистрации для подключения всех пользователей в контексте сервера на базе Bindery. Пароль в команде лучше не указывать. В этом случае пользователю будет выводиться подсказка на ввод пароля, что соответствует требованиям защиты. Пользователям, которым нужно подключаться к другим серверам на регулярной основе, полезно включить эту команду в персональный сценарий регистрации.

Команда BREAK

Если в сценарий регистрации включена команда BREAK ON, то пользователь может останавливать сценарий нажатием клавиш Ctrl+Break или Ctrl+C. Команда BREAK OFF используется для предотвращения прерывания сценария.

Эта команда обычно используется при тестировании сценариев или для предотвращения выполнения отдельных команд в конкретном сеансе. В той точке, где вы хотите иметь возможность прервать сценарий, можно поместить команды PAUSE или WAIT. Нажатие Ctrl+Break или Ctrl+C в ответ на эти команды прерывает сценарий, а нажатие любой другой клавиши - продолжает его выполнение. При указании команды BREAK ON ввод с клавиатуры не сохраняется в буфере предввода клавиатуры.

Команда CLS

Эта команда очищает экран. Ее полезно использовать для освобождения поля экрана для вывода сообщений. Курсор переходит в левый верхний угол экрана. Параметров команда не имеет.

Команда COMSPEC

Используется для спецификации каталога DOS, в котором находится файл COMMAND.COM. Не указывайте эту команду на рабочих станциях OS/2. При запуске приложения некоторый программный код DOS выгружается из памяти, чтобы освободить место для приложения. При выходе из приложения этот программный код снова должен быть заменен выполняющимся COMMAND.COM. COMSPEC определяет, где находится COMMAND.COM, и имеет следующую форму:


             COMSPEC=диск:COMMAND.COM

где "диск" - это локальный диск или буква назначенного диска, где находится COMMAND.COM. Вы можете также использовать следующую форму команды:


            COMSPEC=Sn:COMMAND.COM

где Sn - это заданный ранее диск поиска. Можно воспользоваться и еще одной формой команды:


            COMSPEC=*n:COMMAND.COM

где n задает каталог, в который отображает n-ый сетевой диск. Приведем пример:


            MAP *3:=SYS:PUBLIC\%MACHINE

            COMSPEC=*3:COMMAND.COM

Команда CONTEXT

Эта команда выводит текущий контекст и может использоваться для изменения контекста пользователя в дереве NDS. Вы можете использовать эту команду для изменения контекста для конкретного пользователя. Команда имеет следующую форму:


            CONTEXT контекст

где "контекст" задает то место дерева каталога, куда нужно поместить пользователя. После того как для пользователя задан конкретный контекст, он будет видеть в командах NLIST, NETUSER, NETADMIN и NetWare Administrator объекты и контейнеры данного уровня дерева.

Для спецификации контекста на основе групп, к которым принадлежит пользователь, можно использовать операторы IF THEN или получаемую из командной строки переменную.

CONTEXT в сценарии регистрации отличается от спецификации NAME CONTEXT файла NET.CFG рабочей станции. Команды NET.CFG будут изменять контекст для любого регистрирующегося на рабочей станции пользователя. Команда CONTEXT в сценарии регистрации устанавливает контекст для конкретного пользователя. Чтобы пользователи могли просто указывать свои имена и не набирать дополнительную контекстную информацию, используйте в файле NET.CFG команду NAME CONTEXT.

Покажем, например, как можно переключить пользователя в подразделении AST_Moscow организации AST_Soft:


            CONTEXT OU=AST_Moscow.O=AST_Soft

Команды DISPLAY и FDISPLAY

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

Команда DISPLAY выводит все содержимое файлы, включая коды форматирования, поэтому ее нужно использовать для "чистых" файлов ASCII. FDISPLAY отфильтровывает коды форматирования, присутствующие в создаваемых некоторыми редакторами файлах. Для получения лучших результатов сохраняйте предназначенные для вывода с помощью данных команд сообщения в текстовых неформатированных файлах. Команды DISPLAY и FDISPLAY позволяют выводить большие блоки текста. Команда WRITE больше подходит для вывода одной или двух строк. Эти команды имеют следующую форму:


            DISPLAY маршрут/имя_файла

             FDISPLAY маршрут/имя_файла

где "маршрут" определяет полный маршрут доступа к файлу (или назначенный диск).

Команда DOS BREAK

Эта команда определяет, что вы можете прерывать команды DOS с помощью клавиш Ctrl+Break или Ctrl+C (не путайте ее с командой прерывания сценария регистрации BREAK ON). Команда имеет форму:


            DOS BREAK ON

             DOS BREAK OFF

По умолчанию устанавливается BREAK OFF.

Команда DRIVE

Эта команда используется в сценарии регистрации для переключения пользователя на логический диск. Обычно первый присвоенный диск становится после выполнения сценария регистрации используемым по умолчанию. Обычно это диск F, отображенный в собственный каталог пользователя. Чтобы переключиться на другой логический диск, используйте команду DRIVE. Иногда это необходимо сделать, если вы выполняете команды, которые работают только в определенных каталогах. Команда имеет форму:


            DRIVE n:

где n - буква диска, или


            DRIVE *n:

где n - номер диска.

Команда EXIT

Данная команда прекращает выполнение остальных команд сценария регистрации. Обычно она используется в операторе IF...THEN...ELSE после проверки на выполнения заданного условия. Все следующие за EXIT команды выполняться не будут. Не используйте эту команду на рабочих станциях OS/2.

Если вы изменили длинное имя команды на имя, заданное по умолчанию (IBM_PC), включите перед командой EXIT команду PCCOMPATIBLE. Команда имеет следующую форму:


            EXIT

или             EXIT "имя_файла"

где "имя_файла" - это имя выполняемого файла с расширением COM, EXE или BAT. Например, после выхода из сценария вы можете выполнить команду меню. Команда, заданная в EXIT, должна находиться в текущем каталоге или на диске поиска. В EXIT можно задавать маршрут команды, не превышающий 14 символов. Если в маршруте используется косая черта, она должна указываться дважды.

Команда FIRE PHASERS

Эта команда используется для генерации звуковых сигналов, уведомляющих пользователей о выводе сообщений на экран. Команда имеет форму:


            FIRE PHASERS n TIMES

где n определяет, сколько раз нужно подать сигнал.

Команда GOTO

Эта команда позволяет переходить в другую часть сценария регистрации, обычно после удовлетворения условия в команде IF...THEN, например:


            IF MEMBER OF "SALES" THEN GOTO SALES

            ...

            SALES:

Таким образом, общая форма команды имеет вид:


            GOTO метка

Команда IF...THEN

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


            IF условия [AND;OR;NOR] THEN команда

Оператор ELSE

После команды IF...THEN можно указать на отдельной строке оператор ELSE, за которым следует команда END:


            IF условия [AND;OR;NOR] THEN

              (выполняемые команды)

            ELSE

              (выполняемые команды)

            END

Если вычисление аргумента "условия" дает True, то выполняются команды, следующие за оператором THEN. В случае значения False выполняются команды, следующие за необязательным оператором ELSE. После ELSE вы можете указать другой оператор IF...THEN...ELSE.

Оператор BEGIN

Конструкция BEGIN...END позволяет задать блок операторов, выполняемых в случае удовлетворения или неудовлетворения заданного условия.


            IF условия THEN

                BEGIN

                  (выполняемые в случае True команды)

                 END

Команда IF...THEN обычно вычисляет условия, используя идентификаторы переменных. Значения в условиях должны заключаться в кавычки, например:


            IF DAY_OF_WEEK="Friday" THEN...

Команда WRITE должна находиться на отдельной строке. Операторы IF...THEN могут быть вложенными. Если IF...THEN содержат BEGIN или занимают несколько строк, то конструкция должна завершаться ключевым словом END. Команду IF...THEN можно поместить в любое место сценария регистрации и использовать ее несколько раз.

В команде IF...THEN можно вычислять 6 соотношений, которые перечислены в следующей таблице. Кроме того, для формирования сложных условий можно использовать команды AND, OR и NOR.
Операция
Значение
= Равно
<> Не равно
> Больше чем
< Меньше чем
>= Больше или равно
<= Меньше или равно

Параметры командной строки, такие как имя сервера и регистрационное имя пользователя, представляют собой переменные, которые вы можете перехватывать и использовать в сценариях регистрации. Сама команда LOGIN - это параметр %0. Второй параметр - это параметр %1 и т.д. Приведем пример:


            LOGIN FINDATA/AMIKE ORDS

            IF %3="ORDS" THEN ATTACH ORDS

Здесь параметр %1 будет равен FINDATA, %2 - AMIKE, a %3 ORDS. Если при регистрации указывается параметр ORDS, команда ATTACH подключает сервер ORDS.

С помощью MEMBER OF и NOT MEMBER OF в командах IF...THEN вы

можете также выяснить принадлежность пользователя к группе. Команды в этом случае имеют форму:


            IF MEMBER OF "имя_группы" THEN команда

или             IF NOT MEMBER OF "имя_группы" THEN команда

Заданная "команда" выполняется в случае принадлежности (первая форма) или не принадлежности (вторая форма) пользователя к группе. Команды можно заключать в блоки BEGIN...END.

Команда INCLUDE

Эта команда приводит к выполнению в сценарии регистрации команд из внешнего файла сценария регистрации. Такой файл вы можете создать с помощью любого текстового редактора. Команда имеет форму:


            INCLUDE маршрут\имя_файла

где "маршрут" - это маршрут к каталогу, где находится текстовый файл. Если файл записан на томе вне текущего контекста пользователя, этот маршрут должен включать в себя имя маршрута дерева NDS. Используя форму команды:


            INCLUDE имя_объекта

где "имя_объекта" - имя объекта пользователя или контейнера, который содержит сценарий регистрации, вы можете также выполнить сценарий регистрации на другом объекте. Если этот объект находится вне текущего контекста, укажите маршрут. Убедитесь также, что пользователи имеют на сценарий регистрации полномочия Read и Open. Приведем некоторые рекомендации по использованию INCLUDE:


                 IF MEMBER OF "SALES" THEN INCLUDE SALES.LOG

Команда LASTLOGINTIME

Для вывода времени последней регистрации пользователя в системе включите в сценарий регистрации команду LASTLOGINTIME.

Команда MACHINE

Используйте эту команду для задания имени машины, где регистрируется пользователь. Имя может содержать до 15 символов. Команда имеет вид:


              MACHINE=имя

где "имя" - это присваиваемое машине имя. Команда MACHINE часто необходима для программ, написанных под PC DOS и не применимых для OS/2. Как уже говорилось, имя может включать в себя идентификаторы переменных.

Команда MAP

Как уже говорилось в одной из предыдущих глав, команда MAP широко используется в сценариях регистрации для назначений дисков пользователям. В сценарии регистрации можно использовать и две дополнительные формы команды MAP.


            MAP DISPLAY ON/OFF

Это команда позволяет выводить на экран назначения дисков в сценарии регистрации. Используйте ее для включения (ON) и выключения вывода (чтобы не переполнять экран).


            MAP ERRORS ON/OFF

Эта команда позволяет выводить (ON) или не выводить (OFF) на экран сообщения об ошибках, возникающие в сценарии регистрации. Не рекомендуется отключать вывод сообщений об ошибках, пока вы полностью не отладите сценарий. Эти команды можно включать в любое место сценария, однако команда OFF должна использоваться перед командой ON.

Не всегда полезно назначать каталогу конкретную букву алфавита. Например, назначение диска F для персонального каталога пользователя может работать на машине, где последний диск имеет букву D или F. Но если рабочая станция имеет локальный диск F, это приведет к конфликту. Решить данную проблему позволяет следующая команда:


            MAP *n:=маршрут

где n - это номер, который определяет сетевые диски (1, 2 и т.д.). Другими словами, команда MAP *1:=SYS:DOCS говорит, что нужно назначить первый сетевой диск каталогу SYS:DOCS. На некоторых системах это может быть буква F, на других - G или H.

Вспомним, что одним из объектов NDS является объект отображений каталогов. Этот объект содержит назначения дисков, которые вы можете в любое время изменить. Если вы включите такие объекты в сценарий регистрации, то легко изменить назначения дисков для всех локальных сценариев. В следующем примере объект отображения каталогов ACCNT в организационном объекте Sales отображается на диск поиска S4:


            MAP S4:=CN=ACCNT.OU=Sales.OU=AST_Moscow.O=AST_Soft

Каталоги и тома в текущем контексте пользователя можно отобразить путем простого задания имени тома и маршрута каталога. Если вам требуется назначение каталога другого тома, который не находится в текущем контексте, то этот контекст нужно явно задать.

Команда NO_DEFAULT

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


            NO_DEFAULT

Команда NOSWAP

Команда NOSWAP предотвращает перемещение LOGIN из обычной в верхнюю память или на диск при небольшом объеме памяти рабочей станции. Это приводит к невыполнению команды #, но сценарий продолжает выполняться.

Команда PAUSE

Эту команду можно использовать для временной приостановки

выполнения сценария регистрации, обычно после вывода на экран сообщения. Продолжение будет продолжено после нажатия любой клавиши. Ctrl+Break или Ctrl+C позволяют прервать сценарий (если это не запрещено с помощью BREAK OFF).

Команда PCCOMPATIBLE

Используйте эту команду, если команда EXIT правильно не выполняется. Она определяет отличные от IBM системы как совместимые машины. Если ваш компьютер совместим с IBM PC, но, чтобы получить доступ к другой версии DOS, вы изменили имя тип машины в NET.CFG, в сценарий регистрации нужно включить команду PCCOMPATIBLE, указав ее перед командой EXIT.

Команда REMARK

Эту команду можно использовать в сценарии регистрации для включения комментариев. Она имеет одну из следующих форм:


            REMARK текст

             REM текст

             *текст

             ;текст

где "текст" - это текст комментария.

Команда SET

Команда DOS SET создает переменные, которые можно использовать в командных файлах после выполнение сценария регистрации. Эти переменные вы можете использовать в основном также, как идентификаторы переменных. Команда имеет форму:


            SET имя="значение"

или             TEMP SET имя="значение"

где "имя" - это имя переменной, а "значение" - строка, которой приравнивается переменная. Значение должно заключаться в двойные кавычки. Версия TEMP этой команды позволяет определить действие переменной только на выполнение сценария. Для рабочих станций с OS/2 переменные SET действуют только на время выполнения сценария.

Хотя в NetWare интенсивно используется собственный набор идентификаторов переменных, DOS SET часто используется для настройки конфигурации рабочих станций для различных программ. Вы мо жете присвоить идентификатор переменной NetWare переменным DOS SET и использовать их позднее в командных файлах, например:


            DOS SET USER=%LOGIN_NAME

приравнивает имя переменной DOS USER идентификатору переменной NetWare LOGIN_NAME. Переменную USER можно затем использовать в командных файлах.

Команда SET_TIME

Эта команда устанавливает при регистрации пользователя время на рабочей станции равным времени сервера. Эта команда имеет следующую форму (по умолчанию задается ON - время рабочей станции приравнивается времени сервера):


            SET_TIME ON/OFF

Команда SWAP

Включите эту команду в сценарий для перемещения LOGIN в старшую память и освобождения обычной памяти для выполнения команд (#). Если вы задаете маршрут, LOGIN перемещается на диск.

Команда WRITE

Выводит на экран сообщения и другой текст. Ее можно также использовать с идентификаторами переменных. Команда имеет следующую форму:


            WRITE "текст"; переменная

             WRITE "текст%ПЕРЕМЕННАЯ"

Первая форма выводит на экран указанный в кавычках текст. Для вывода на экран одной из системных переменных можно добавить идентификатор переменной. Текст и переменную отделяет точка с запятой, но все параметры заключаются в кавычки. Для объединения нескольких операторов WRITE, чтобы они выводили один блок текста, используйте двоеточия. Если переменная или идентификатор используются внутри кавычек, они должны задаваться в верхнем регистре. В команде WRITE можно использовать следующие строки:

\r - возврат каретки \n - перевод строки \" - встроенный символ кавычки \7 - звуковой сигнал

Идентификаторы переменных, которые можно использовать в команде WRITE, перечислены в данной главе выше (в предыдущей табли це). WRITE заменяет идентификатор переменной ее текстом или значением. Например, следующая команда выводит пользователю текущую дату:


            WRITE "Today is %MONTH_NAME %DAY, %YEAR"

Система меню в NetWare

Система меню NetWare (NMENU) позволяет вам создавать меню для запуска программ и выполнения команд. Меню такого типа можно наблюдать в утилитах текстового режима NETADMIN, PARTMSG, FILER и др. В основном меню состоит из набора пунктов, которые либо выполняют команды непосредственно, либо выводят подменю с другими пунктами и командами.

Чтобы создать меню, нужно сначала создать текстовый файл с параметрами, которые определяют следующее:

Файл должен быть текстовым файлом ASCII с расширением SRC. После создания файла он компилируется с помощью команды MENUMAKE, затем меню выполняется командой NMENU с указанием имени меню. Меню можно запустить из сценария регистрации пользователя.

Построение меню

Предположим, вам нужно построить следующее меню:


          +=============================================+

          ¦          Основные возможности               ¦

          ¦=============================================¦

          ¦  ¦A. Перечень полномочий на томе            ¦

          ¦  ¦B. Приложения                             ¦

          ¦  ¦C. Выход       +====================================+

          +==================¦           Приложения               ¦

                             ¦====================================¦

                             ¦  ¦A. Paradox                       ¦

                             ¦  ¦B. Microsoft Word                ¦

                             ¦  ¦C. MC Mail                       ¦

                             +====================================+

Выбор пункта

B меню верхнего уровня приводит в выводу меню "Приложения" с тремя пунктами. Последний пункт меню "Основные возможности" позволяет выйти в DOS (Этот пункт в меню включать не обязательно: без него пользователи не смогут выйти в DOS, что иногда и требуется в целях защиты, однако его обязательно следует включать при тестировании.)

Начните с создания каталога, в который вы будете записывать все файлы меню. Полезно создать для этой цели подкаталог MENUS каталога PUBLIC. Все пользователи, выполняющие меню из этого каталога, должны иметь на него полномочия Read, File Scan и Create.

Затем модифицируйте свой сценарий регистрации и сценарий регистрации пользователей, которые должны использовать меню, добавив туда следующие команды:


            SET S_FILEDIR="Z:\\PUBLIC\\MENUS\\"

            SET S_FILE = "%STATION"

Первая команда задает место, в котором программы меню будут хранить временные файлы. Вторая обеспечивает уникальность временных файлов каждого пользователя. Диск Z обычно является первым назначенным диском поиска и указывает на каталог Public.

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

Создание текстового файла меню

Выполняющие данное меню команды должны записываться в стандартный текстовый файл ASCII. Для создания такого файла можно использовать текстовый редактор. Файл должен иметь расширение SCR. Наберите следующие команды:


 MENU 1. Основные возможности

 ITEM Перечень полномочий на томе [Pause]

 EXEC NDIR \*.* /R /DO /S

 ITEM Приложения Show 2

 ITEM Выход

 EXEC

 EXIT

 MENU 2. Приложения

 ITEM Paradox

 EXEC PARADOX

 ITEM Microsoft Word

 EXEC WORD

 ITEM MC Mail

 EXEC Email

Первая строка задает основное меню и присваивает ему имя "Основные возможности". Следующие 6 строк - это строки пунктов меню и команды, выполняемые при их выборе. EXEC и SHOW - это фактические выполняемые командные строки файла меню. Строки MENU и ITEM являются организационными. Они задают содержимое и определяют организацию меню. EXEC, SHOW и другие команды - это управляющие команды, которые выполняют действия. "ITEM Приложения" выполняет команду SHOW 2, которая переходит к строке 8 и выполняет MENU 2. "ITEM Exit" вызывает выполнение команды EXEC EXIT, которая возвращает пользователя к командной подсказке.

Теперь вы можете скомпилировать меню. В ответ на подсказку DOS наберите следующее (предполагается, что вы находитесь в том же каталоге, что и USER.SRC):


            MENUMAKE USER

MENUMAKE преобразует файл SRC в файл DAT. Вы увидите сообщение о записи USER.DAT. Это указывает на успешное создание меню. Если выводятся сообщения об ошибках, проверьте корректность строк текста и перекомпилируйте его. В случае ошибки файл DAT не создается. Чтобы запустить новое меню, дайте команду:


            NMENU USER

Проверьте, как работают пункты меню (естественно, должны быть установлены перечисленные в меню приложения). Чтобы выполнить меню из других каталогов, можно сделать следующее:


                MAP H:=SYS:PUBLIC\MENUS

Чтобы запустить меню, наберите:


                NMENU H:USER

Выполнение меню из сценария регистрации

После создания и проверки меню добавьте в конец сценария регистрации пользователя команду:


            EXIT "NMENU USER"

которая загружает меню при регистрации пользователя.

Преобразование меню, созданных в предыдущих версиях NetWare

Если у вас есть меню, созданные с помощью утилиты меню в предыдущих версиях NetWare, выполните следующие шаги по преобразованию этих меню для работы с новой утилитой NMENU:


                 MENUCNVT имя

где "имя" - это имя файла MNU.

Особенности команд NMENU

Рассмотрим команды меню более подробно. При создании меню действуют следующие правила:

хватает одной строки, нажмите Enter и +, продолжив ее на следующей.

Доступные команды меню перечислены в следующей таблице. Нужно помнить, что MENU и ITEM - это организационные команды, а остальные команды выполняют действия.
Команда
Описание
MENU Задает новое меню.
ITEM Определяет пункты меню.
EXEC Выполняет команду DOS&
SHOW Выводит подменю в той же программе меню.
LOAD Выводит меню в другой программе меню.
GETO Запрашивает дополнительную информацию от пользователя.
GETP Запрашивает информацию и присваивает ее переменной, которую можно затем использовать.
GETR Запрашивает информацию от пользователей.

Команда MENU

Эта команда выводит новое меню или подменю и имеет форму:


            MENU номер,имя

где "номер" - номер подменю, которые вы хотите выполнять, а "имя" - его имя. Можно вызывать до 255 подменю. Первое меню всегда имеет номер 1. Для вызова модменю используется команда SHOW.

Команда ITEM

Используется для спецификации пунктов меню, созданных командой MENU, и имеет следующую форму:


            ITEM имя[параметры]

где "имя" - это имя, которое выводится в пункте меню, а "параметры" - один или более из следующих параметров:
Параметр
Описание
BATCH Выгружает меню из памяти, чтобы освободить память для вызываемой программы.
CHDIR Возвращает пользователя в исходный каталог.
NOECHO Предотвращает вывод сообщений операционной системой при выполнении пункта меню.
PAUSE Делает паузу при выводе: пользователь может прочитать выведенную на экран информацию.
SHOW Выводит имя выполняемой команды.

В квадратных скобках можно указать несколько параметров, разделив их пробелом.

Чтобы пользователю легче было выбирать пункт меню, каждый элемент связывается с алфавитным символом. Если вы хотите использовать другие буквы, наберите каре (^) и задайте этот символ перед именем меню, например:


            ITEM ^3Выход

Команда EXEC

Команда EXEC выполняет действие при выборе данного пункта меню. Все команды EXEC между строкой ITEM и следующей строкой ITEM рассматриваются как одно множество и выполняются при выборе пункта в меню. Команда имеет следующую форму:


            EXEC команда

где "команда" - это команда, выполняющая программу или утилиту DOS. Существует также несколько специальных форм EXEC:
Команда
Действие
EXEC EXIT Выполняет выход в DOS.
EXEC DOS Эту команду можно использовать, если вы хотите, чтобы пользователи временно выходили в DOS и пользовались командами этой операционной системы. Она запускает вторую копию COMMAND.COM, так что для возврата в меню пользователи могут набрать EXIT.
EXEC LOGOUT Обеспечивает удобный способ включения в меню команды EXIT, но предотвращает выполнение пользователями команд DOS в сетевой среде.
EXEC COMMAND Выполняет командный процессор DOS и открывает сеанс DOS для выполнения команд или командных файлов.

Команда SHOW

Выводит подменю и имеет следующую форму:


            SHOW номер

где "номер" - это номер элемента меню, который вы хотите вывести. Например, SHOW 6 выводит меню, заданное строкой меню MENU 6.

Команда LOAD

Эта команда позволяет вам вызвать другую программу меню (с другим именем файла) и имеет форму:


            LOAD имя_файла

где "имя_файла" задает каталог, маршрут и имя программы меню, которую вы хотите выполнить. После загрузки другой программы меню пользователи могут вернуться в исходное меню нажатием Esc.

Команды GETO, GETP и GETR

Команды GET используются для получения данных от пользователя. Ввод используется как параметры в командной строке DOS. Например, вы можете запросить параметры для команды NDIR, NLIST и другие команды NetWare. Вы можете также запросить информацию, используемые загружаемыми программами, например, файл, редактируемый с помощью редактора текста. Сама команда - это параметр %0, следующий аргумент - %1 и т.д.

Команда GETO запрашивает необязательную информацию, которые пользователи могут опустить. GETP присваивает вводимым пользователем данными переменную (%1, %2, ...). GETR требуется обязательного ввода данных, и пользователь не может ее обойти.

Команды имеют следующую форму:


            GETx подсказка {префикс} длина,подстановка {суффикс}

где x - это O, P или R, "подсказка" - это строка текста, запрашивающая ввод от пользователя, "префикс" - необязательное значение, добавляемое к началу ответа пользователя (например, можно указать букву диска или маршрут). Если вы не хотите задавать префикс, оставьте скобки пустыми. "Длина" указывает максимальное число символов, которые может набрать пользователь. "Подстановка" задает подставляемый по умолчанию ответ. Он будет вводиться, если пользователь просто нажмет клавишу Enter. Пользователь может также изменить эту строку. "Суффикс" - это значение, добавляемое к концу ответа пользователя. Если вы не хотите его задавать, наберите пустые скобки ({}), например:


             GETP Введите имя тома: {} 20,SYS:, {}

При выполнении команд GET выводится диалоговое окно, где пользователи могут набрать информацию.

Изменение цветов меню

Чтобы отредактировать цвета меню, выполните следующие шаги:

[Назад] [Содержание] [Вперед]