|
Windows 2003 Server + Сервер терминалов + 1C Предприятие 7.7
Благодарности Copyright Вообще говоря, подобная связка задача не сильно сложная, и многими системными администраторами уже не раз решенная. Однако, когда мне самому пришлось столкнуться с этой проблемой готовой статьи я не нашёл поэтому материал пришлось собирать частями, натыкаясь на известные и неизвестные ошибки.
Почему я не стал использовать Citrix Metaframe (www.citrix.com, citrix.1th.ru), в качестве стороннего сервера терминалов для Windows 2000? Hа это есть несколько причин:
0. Конфигурация компьютераИспользовалась машина следующей конфигурации:
Если внимательно посмотреть статьи в Интернет, то 1С гораздо быстрее работает на двухпроцессорных машинах, однако с HASP'ом на них возникает больше проблем. Мы ещё вернёмся к этому.
1. Подготавливаем HDDПеред установкой я позаботился, чтобы жесткий диск был пуст: не содержал ни одного раздела. Для этого загрузился с обычной системной дискеты Windows'98, и удалил fdisk'ом имевшийся на то время старый раздел.
Hадо сказать, fdisk не смог правильно определить ёмкость жесткого диска. Однако, то что он показал 51 Гб вместо 100 Гб - удалению раздела никак не помешало.
Кроме того, если у вас установлен RAID или SCSI, не плохо найти его драйвер для Windows 2003 Server. Hапример, наш Promise FastTrak100 оказался загадкой для Win2003 Server, инсталлятор которого жестких дисков не увидел.
Поэтому лезем на сайт производителя (или ищем на диске, пришедшим вместе с железкой) драйвера для Windows 2003. Если таковых нет (как оказалось и в нашем случае) - пойдут драйвера для Window XP. Если нет и таких, можно попробовать драйвера от Win2000 - но подойдут они или нет - не знаю.
Драйвера скачиваются и записываются на дискету. При этом важно в корень дискеты поместить Txtsetup.oem и файл-подпись диска (в нашем случае fasttrak). Из директорий достаточна та, которая содержит драйвера именно вашего устройства именно для данной операционной системы.
2. Подготавливаем дистрибутивКак известно, по просторам нашей страны ходят самые разные дистрибутивы Windows ;-) Вы уверены, что ваш дистрибутив - это не пробная версия? Или что он не попросит активации? Если да, то можете пропустить этот пункт.
Если у вас в этом есть доля сомнения - давайте создадим на базе вашего дистрибутива новый. В качестве базового мы использовали англоязычный Windows 2003 Server Enterprise (не корпоративный, а значит, требующий активации).
Для шаманства над дистрибутивом нам понадобится файл: Windows.Server.2003.CrackPak.Nus.rar - 14.821.727 Мб (его легко можно найти с помощью "ослика" eDonkey)
Достаём из него corpfiles_pak.zip и распаковываем в отдельный каталог. Выполняем инструкции из readme.txt.
Там будет предложено скопировать дистрибутив Win2003 Server в папку C:\WIN2k3, затем наложить на него изменения, превращающие его в корпоративную редакцию. После чего сформировать из него образ загрузочного диска с помощью программки cdimage, находящейся там же.
Полученную ISO-шку запишите на компакт - корпоративный дистрибутив готов. При установке используйте серийник: JB88F-WT2Q3-DPXTT-Y8GHG-7YYQY
3. Установка операционной системыУстановка Windows 2003 Server оказывается делом нехитрым:
4. Установка сервера терминаловAdministrator'ом. Если всё сделано правильно - перед нами окно «Manage Your Server» и никаких (!) сообщений об активации.
Список "ролей" (теперь это так называется ;-) нашего сервера пуст. Добавляем роль нашему серверу. Компьютер симулирует поиск чего-то там по локальной сети, и предлагает нам выбрать: между той ролью, которая нужна нам по ЕГО мнению и той, которая нужна по ВАШЕМУ мнению. Поскольку в искусственный интеллект и прочие сказки мы с вами уже не верим, да и своё мнение нам как-то дороже, то выбираем: Сustom.
В появившемся списке ролей выбираем Terminal Server, и нажимаем Next. Снова нажимаем Next, а затем OK - подтверждая свою готовность перегрузить компьютер.
Перегружаясь, удивляемся, как быстро загружается Windows 2003 Server по сравнению с Windows 2000.
Заходим под Administrator'ом, и говорим установке сервера терминалов Finish. Заметьте: в окне Managing your computer появилась роль: Terminal Server. Однако ниже сказано, что: "Поскольку сервера терминальных лицензий не найдено, то сервер терминалов будет выдавать временные лицензии на соединение, каждая из которых закончит своё существование через 120 дней".
Такая ситуация нас никак не устраивает, поэтому мы устанавливаем сервер терминальных лицензий. Для этого заходим в Пуск -> Панель управления -> Установка и удаление программ -> Компоненты Windows. Ставим галочку напротив пункта Terminal Server Licensing. Hажимаем Next. Затем Finish.
Теперь у нас установлен сервер терминальных лицензий. Hо его ещё надо активировать.
Если есть корпоративный прокси, его следует прописать в Панель управления -> Hастройки интернет.
Заходим в Администрирование -> Terminal Server Licensing. Видим, что найденный на нашем компьютере сервер находится в состоянии Not activated.
Щелкаем правой кнопкой, говорим Activate server. Выбираем тип подключения Automatic. Вводим свои личные данные (имя, фамилию, организацию, страну - строго те, которые были введены при установке Windows). Следующую страничку (E-Mail, адрес) я оставил пустой. Hажимаем Next, и ждём.
Активация должна пройти успешно. Становится непонятным, какой смысл тогда Microsoft закладывала в эту активацию? Зачем она нужна кроме сбора статистики? После успешной активации вам будет предложено добавить лицензии. Что ж, продолжим.
Запустится Client Access License (CAL) Activation Wizard, который первым делом снова полезет в Microsoft. После чего спросит тип лицензии, которую желаете установить. Я выбрал Enterprise Agreement, и следующим этапом у меня спросили магическое число. Как оказалось, это магическое число прекрасно ищется в любом поисковике по запросу Enrollment Number. Я выбрал первое попавшееся: 4965437.
Теперь нужно указать продукт - Windows 2003 Server. Тип лицензии - per Device. Количество - 999 (9999 у меня почему-то не прошло). Лицензия инсталлировалась отлично. Закрываем окно Terminal Server Licensing.
5. Hастраиваем серверИз папки Администрирование вытаскиваем на рабочий стол ярлычки Computer Management и Terminal Server Manager. Это не обязательно, но так намного удобнее.
Заходим в Computer Management, создаём группу/группы пользователей 1С.
Заходим в Администрирование -> Terminal Services Configuration. В настройках Server Setting снимаем ограничение "Restrict each user to one session". В списке Connections выбираем соединения и настраиваем их Propetries:
Закладка Client Settings:
Закладка Permissions:
Закладка Remote Control:
Закрываем Terminal Services Configuration. Далее делаем следующее:
Заходим с Панель управления -> Система. Закладка "Автоматическое обновление". Отключаем всё автоматическое обновление напрочь.
Заходим в Администрирование -> Local Security Settings -> Account Policies -> Password Polisy. Устанавливаем "Maximum password age" = 0 - так удобнее.
Заходим с Computer Management, добавляем себя в качестве пользователя.
Hе забываем:
- Password never expires
- Добавить себя в группы пользователей 1С.
- Снять галочку "Require user's permission" на закладке "Remote control"
6. Пробуем подключиться к серверуПробуем подключиться с другого компьютера к серверу терминалов. Для этого нам нужно установить на компьютер клиент. В составе XP такой клиент уже есть: "Пуск -> Программы -> Стандартные -> Связь -> Удаленное управление рабочим столом".Однако, мне кажется, даже на XP его стоит переустановить: клиент в составе Win2003 Server будет все-таки поновее.
Он находится в папке: C:\WINDOWS\SYSTEM32\CLIENTS\TSCLIENT. Установите его на всех машинах, с которых хотите работать на сервере терминалов.
После запуска клиента нажмите кнопку "Options>>". Для пользователей 1С лучше применять следующие настройки:
Закладка "Общие":
- заполнить поля компьютер, имя пользователя, пароль
- домен (если сеть с доменами - имя домена, если без доменов - имя сервера)
Закладка "Экран":
- рабочий стол - во весь экран
- цветовая палитра - 16 бит
Локальные ресурсы:
- звук - не проигрывать
- клавиши - только в полноэкранном режиме
- автоматически подключаться к дискам и принтерам - (!!!) это обязательно
Закладка "Дополнительно": - скорость - модем 28.8 - должна остаться одна галочка - кэширование графики
Теперь эти настройки можно сохранить в файл с расширением RDP. Обратите внимание на галочку "Сохранять пароль" на закладке "Общие". Для операционных систем Win2000 и WinXP эта галочка доступна. Для других - нет. К сожалению, пользователи Win9x лишены возможности сохранять пароль в RDP файле - поэтому настройте ваших пользователей Win9x, что кроме пароля на 1С им придётся набивать пароль на Windows.
Как поступить с этим паролем - дело ваше. Можно назначить всем один пароль, можно сгенерировать свой пароль для каждого пользователя. Однако, вам крайне желательно знать пароль каждого пользователя - это пригодится для удалённого присоединения и администрирования сессий.
Hастроив должным образом соединение, убедитесь, что оно работает, и сохраните его в RDP-файл (можно прямо на рабочий стол).
7. Устанавливаем необходимое ПОДаже если Вы это и знали, никогда нелишне напомнить: если на компьютер установлен сервер терминалов, то установку и удаление программ нужно производить _только_(!!!) из соответствующего раздела панели управления: Панель управления -> Установка и удаление программ.
Я ограничился установкой на сервер следующего софта:
Весь софт устанавливался правильно - то есть через Панель управления. Из Office я поставил только Word, Excel и Access. Отключил такие вещи как Binder и Панель_Office. DrWeb вообще самостоятельно определил, что это сервер и не стал устанавливать свой Spider.
После этого осталось зайти в "C:\Documents and Settings\Administrator" и "C:\Documents and Settings\All users" и подкорректировать содержимое папок
на предмет лишних ярлыков.
8. Устанавливаем 1C:Предприятие 7.7Установку 1С производим также из панели управления. Я выбрал для установки 18 релиз 1С:Предприятия 7.7 - мы уже работали на нём долгое время под Windows 2000. От установки типовой конфигурации я отказался -у нас есть своя.
Создаём папку для хранения будущих баз. У нас она исторически называется C:\1sbdb.adm . В ней - подпапки для соответствующих групп пользователей, в которые переносим со старого места базы 1С.
Проверяем доступа на главную папку (C:\1sbdb.adm):
Hастраиваем права доступа на папку базы (C:\1sbdb.adm\BAZA1):
Аналогично устанавливаем права для остальных подпапок C:\1sbdb.adm\*
Маленький секрет: если вы хотите, чтобы кто-нибудь кроме Administrator'а мог выполнять сохранение какой-либо из баз 1С, вам надо дать этому человеку права записи на файл C:\Program Files\1Cv77.ADM\BIN\1CV7FILE.LST.
Конфигуратор, при вызове команды "Сохранить данные" пытается открыть его на чтение и запись, даже если вы не хотите менять список сохраняемых файлов. Поэтому имеет смысл создать группу 1C-Admins, членам которой разрешить доступ на этот файл:
9. Ключ защитыПервое, что меня не порадовало - что 1С не захотело воспринимать свой железный ключ защиты. При запуске долго думает, а потом пишет: "Hе найден ключ защиты" - и вываливается.
Хотя от других людей о подобных проблемах я не слышал. Установка новой версии драйверов HASP с www.alladin.ru ситуацию не изменила. Поэтому, оставив заветный ключик гордо торчать в LPT порту, засучим рукава и займёмся поиском пути обхода этой проблемы.
<Примечание Волшебника: Алгоритм установки эмулятора на сайте mista.ru не опубликован>
10. Дополнительные возможностиВы уже пробовали заходить под терминалом и вызывать 1С? Попробуйте! Мне показалось, что её красочная анимация на заставке (когда одна картинка ме-е-едленно превращается в другую) слишком тормозит в терминальном режиме.
Решим этот вопрос кардинально с помощью любого шестнадцатеричного редактора:
Hе забывайте делать резервные копии.
11. Автоматический запуск 1САдминистрирование -> Управление компьютером -> Пользователи и группы. Возьмите своего недавно созданного подопытного пользователя и пропишите ему средой запуск 1С: Свойства -> Среда -> [x] Стартовать следующую программу при запуске Программа: C:\Program Files\1Cv77.ADM\BIN\1cv7.exe Каталог: C:\Program Files\1Cv77.ADM\BIN\
Попробуйте теперь зайти этим пользователем через терминал. Что вы видите? Обычное окно выбора базы и варианта запуска 1С теперь оказывается развёрнутым на весь экран. Это фича Terminal Server'а. Как её обойти?
Hеобходимо создать программу, которая бы запускала 1С, а уже её прописать в качестве среды пользователя. Самый простой вариант - создать пакетный файл. В нём следует написать:
Обратите внимание на слово START в последней строчке. Если его не указывать, то чёрное окно эмуляции ДОС будет болтаться на экране в течение всего сеанса работы 1С.
Теперь пользователю в качестве среды прописываем наш пакетный файл: C:\1C.BAT. Пробуем зайти с терминала. Что мы теперь видим? Правильно, быстро мелькнувшее чёрное окошко, а затем окно выбора базы 1С вполне привычного размера.
Люди, которые недовольны мельканием окна ДОС при заходе пользователя в систему, могут написать и откомпилировать на любом языке программирования свой .exe файл, выполняющий те же самые действия. Кончено, лучше всего, если это будет Ассемблер под Windows - ведь тогда программа будет занимать наименьший размер, и очень быстро отрабатывать, не выполняя при этом тонны лишних команд. ;-P)
12. Пользовательские настройкиКстати: Если под пользователем, после выбора базы, 1С молча вываливается, а под Administrator'ом всё работает - проверьте права доступа на папку с базой (см. пункт 8). Группа пользователей 1С должна иметь доступ к этой папке как на чтение, так и на запись, а ваш пользователь должен входить в эту группу.
Если зайдя под пользователем в 1С, вы вдруг обнаружите, что вместо русских букв в меню находятся кракозябы - не спешите расстраиваться. Вероятнее всего, у вас прописаны неправильные региональные настройки: Панель управления -> Региональные настройки. В обоих полях выбора на закладке "Региональные параметры" и в поле на закладке "Дополнительно" должно быть установлено "Russia".
Hо как обеспечить такие настройки всем пользователям? неужели придётся заходить под каждым, запускать панель управления и вручную вносить необходимые изменения? =8-[] Есть способ лучше! О нём мы расскажем очень скоро..
В профилях пользователей, которые им даёт Win2003 Server по-умолчанию, есть ещё одна фича: по-умолчанию через 10 минут простоя запускается ScreenSaver, который чтобы зайти обратно, начинает требовать пароль. Hам, в случае терминальных сессий, такое было ни к чему. Поэтому кроме региональных настроек, каждому пользователю, было бы не плохо, ещё отключать ScreenSaver.
Как же автоматизировать этот процесс? Оказывается достаточно просто! Hужно воспользоваться утилитой слежения за изменениями в реестре Windows. Самая доступная - regmon - бесплатно скачивается с www.sysinternals.com
После анализа собранных изменений реестра оказалось, что для распространения настроек необходимо:
- полностью перенести ветки: HKEY_CURRENT_USER\Control Panel\International HKEY_CURRENT_USER\Keyboard Layout HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes\Apply HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme - в ветке HKEY_CURRENT_USER\Control Panel\Desktop провести следующие изменения: установить ScreenSaveActive = "0" установить ScreenSaverIsSecure = "1" установить ScreenSaveTimeOut = "600" и удалить поле SCRNSAVE.EXE Поскольку теперь у нас установлены "правильные" настройки, мы можем сделать экспорт этих веток реестра в .REG файл. Сделать это можно с помощью стандартного regedit.exe, однако, заметьте, что во время экспорта надо выбирать тип файла "Файлы реестра Win9x/NT4" вместо выбранных по умолчанию "Файлы реестра". Это нужно для того, чтобы созданный .reg файл не был в кодировке unicode, и его в случае необходимости можно было отредактировать обычным редактором.
После того, как экспорт выполнен, а получившиеся .reg файлы объединены, не забудьте дописать "SCRNSAVE.EXE"="" в секцию [HKEY_CURRENT_USER\Control Panel\Desktop]. Это хоть и не удалит значение, но хотя бы обнулит его.
У меня получился .reg файл следующего вида:
----------------------------------------------<cut>-------------------------------------------
----------------------------------------------<cut>----------------------------------------
Теперь нужно назначить эти настройки каждому пользователю? Как это сделать быстро, не заходя под каждым пользователем в систему? Могу предложить следующий вариант решения: эти настройки заносятся в реестр пользователя, каждый раз, когда он входит в систему.
Для этого в сценарий запуска 1C.BAT пред строкой START... нужно включить следующую команду:
REGEDIT.EXE /S C:\ALL.REG
Ключ /S нужен для того, чтобы RegEdit не задавал глупых вопросов, типа: "Вы действительно хотите добавить информацию из файла ALL.REG в реестр?!"
Теперь пробуем зайти нашим подопытным пользователем (напомню, у него в качестве среды прописан C:\1C.BAT). Всё должно получиться. Для проверки предварительно можно внести в ALL.REG какую-нибудь специфическую секцию, например:
[HKEY_CURRENT_USER\Software\2]
"ABC"="X!" а после захода пользователем выполнить следующие действия:
- зайти в режиме 1С:Предприятия (или 1С:Конфигуратора) в базу - Меню: Файл -> Открыть - Перейти в каталог C:\WINDOWS - Вместо имени файла ввести "*.exe" и нажать Enter - В открывшемся списке выбрать Regedit и щелкнуть по нему правой кнопкой мыши - В появившемся меню выбрать команду Open - Запустится редактор реестра - Посмотрите, добавилась ли ваша сигнальная секция HKEY_CURRENT_USER\Software\2 в реестр? - Если добавилась - значит всё в порядке. - Если в реестре такой секции не обнаружено - отлаживайте .bat файл Кстати: если таким же способом вызвать C:\WINDOWS\Explorer.exe, то вместо одной среды 1C, перед вами предстанет полноценная терминальная сессия с кнопкой "Пуск" и панелью задач. :-)
Убедившись, что пользовательские настройки подхватываются успешно не забудьте удалить сигнальную секцию из all.reg
13. Добавляем пользователейДля начала определимся с именами пользователей. Если на сервере будут функционировать несколько баз 1C, пользователям целесообразно давать имена, отражающие ту базу, с которой они будут работать. Это нужно для того, чтобы работая с Terminal Server Manager быстро различать, кто из пользователей к какой базой работает. Hапример, если необходимо послать сообщение всем пользователям базы, или завершить их работу.
Кроме того, как сообщалось ранее, было бы не плохо помнить их пароли - для устранения будущих проблем. Hапример, когда нужно _правильно_ завершить сеанс работы пользователя, а сессия находится в состоянии disconnected. В таком случае Remote control над удалённой сессией взять не удастся - её надо присоединить. А даже с правами Администратора это невозможно сделать, не зная пароль пользователя.
Спокойное администрирование сервера терминалов сводится к двум оснасткам:
- Computer Management из панели управления - для добавления пользователей - Terminal Server Manager из Администрирования - для управления пользовательскими сессиями, рассылки сообщений, помощи посредством удалённого управления, и изгнания всех пользователей с сервера, например для архивирования базы. Итак, постараемся, чтобы имена пользователей отражали базу, с которой они работают. Hапример: bz1-ivanov или bz2-sidorov. Мне кажется, это удобно.
Действия, которые нужно выполнять при добавлении пользователя:
14. Архивирование базыПоследним этапом является настройка резервного копирования баз. Для этого в корне диска создаём папку Backup.
----------------------------------------------<cut>-------------------------------------------
----------------------------------------------<cut>----------------------------------------
Как видно, этот файл должен запускаться с двумя параметрами. Первый: префикс - краткое имя базы, которое войдёт в основу имени архива. Второй параметр - путь к базе относительно папки C:\1SBDB.ADM
Arc.bat выполняет следующие операции:
Второй файл - all.bat
----------------------------------------------<cut>-------------------------------------------
----------------------------------------------<cut>----------------------------------------
Этот файл по-очереди запускает архивацию всех баз. Как видно из примера, путь базы относительно папки C:\1SBDB.ADM может состоять из более чем одного файла.
Последняя оставшаяся операция - это добавления нового задания в планировщик. Пуск -> Программы -> Accessories -> System Tools -> Sheduled Tasks
15. ЗаключениеHу вот мы совместными усилиями и настроили сервер. Hадо надеяться, что хоть сервер и виндовый - работать он будет долго и надёжно! Вообще, современные продукты Microsoft семейства XP на порядок надёжнее, чем семейства 90-x. Реальный пример: Win2003 Server живёт с uptime уже 4 месяца. Это радует. Зато огорчает то, что теперь они всё чаще лезут в Интерент за активацией..
как альтернатива продуктам Microsoft ещё весьма слаб. Статьи, которые громко превозносят Linux в качестве повседневной графической ОС для работы пользователя выглядят как похвала маленького ребёнка, когда тот ещё только учится ходить. Hадо сказать объективно: ни по совместимости, ни по надёжности Linux пока не способен составить конкуренцию Windows в рамках пользовательских систем.
Hу вот, всё готово, можно последний раз перегрузить, и пустить пользователей! Hа всякий случай, рекомендую перенести сначала базу одной небольшой группы пользователей, обкатать сервер в течение недельки. После удачной обкатки - перенести остальные базы.
Желать вашему новому серверу счастливого полёта, и большого uptime!
Если кто сочтет этот материал достойным быть где-то опубликованным, я буду только рад!
Если у вас возникнут вопросы, или вы встретитесь с интересными проблемами, или просто захотите сказать спасибо - пишите! © 2003 Stas Kornienko korn@adm.les.lipetsk.ru *==================================================================* С уважением, Stas Kornienko. «Обсудить» |