Windows 2003 Server + Сервер терминалов + 1C Предприятие 7.7
🕛 28.02.2007, 13:49
Вообще говоря, подобная связка - задача не сильно сложная, и многими системными администраторами уже не раз решенная. Однако, когда мне самому пришлось столкнуться с этой проблемой - готовой статьи я не нашёл - поэтому материал пришлось собирать частями, натыкаясь на известные и неизвестные ошибки. Почему я не стал использовать Citrix Metaframe (www.citrix.com, citrix.1th.ru), в качестве стороннего сервера терминалов для Windows 2000? Hа это есть несколько причин:
В Win2003 по сравнению с Win2000 сервер терминалов стал намного быстрее и стабильнее.
Сервер терминалов от Microsoft гораздо роднее для Windows, чем Citrix - внешняя разработка. Поэтому он Microsoft Terminal Server 2003 лучше интегрирован в систему.
Citrix & Win2000 зачастую требуют ручной установки драйверов используемых принтеров.
Citrix очень чувствителен к сервис-пакам, hotfix'ам (как своим так и Windows)
Проблем со старым сервером (Win2000+Citrix) было намного больше, чем с новым (Win2003).
0. Конфигурация компьютера
Использовалась машина следующей конфигурации:
2 процессора Intel XEON по 2.4 ГГц
2Гб ОЗУ
RAID-контроллер Promise FastTrak100
HDD 100Гб
6 куллеров (+7ой в блоке питания ;-)
Если внимательно посмотреть статьи в Интернет, то 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-шку запишите на компакт - корпоративный дистрибутив готов.
3. Установка операционной системы
Установка Windows 2003 Server оказывается делом нехитрым:
грузимся с компакт-диска: запускается инсталляция в текстовом режиме
вовремя нажимаем F6 чтобы подсунуть сторонний драйвер RAID или SCSI
тычем Enter'ом в пустую неразмеченную область жесткого диска, и соглашаемся её отформатировать под NTFS. (из всех установки, форматирование - самая долгая по времени процедура).
когда диск отформатирован, а файлы скопированы - перегружаемся (обеспечьте, чтобы компьютер загружался с жесткого диска, но компакт-диск с дистрибутивом оставьте в дисководе - он нам ещё пригодится).
если всё прошло успешно, Windows стартует в графическом режиме и начнёт устанавливать драйвера
на все провокационные вопросы типа: "Программное обеспечение данного драйвера не сертифицировано на совместимость с Win2003 Server" или "Этот драйвер на своей коробке не имеет наклейки Windows-LOGO (tm), совместимой с данной версией операционной системы" - смело посылайте умный компьютер куда подальше, и говорите: "Да, я всё равно хочу продолжить установку!"
в региональных настройках я везде поставил Russian
внимательно вводите имя пользователя и организацию, на которые будет
зарегистрирован ваш Win2003 Server - они нам ещё понадобятся при активации.
серийный номер я взял из пункта 2
Режим лицензирования: на сервер. Максимально возможно.. ээ.. 9999 соединений. Зачем мелочиться, правда?
Hастройки времени. Hастройки сети (я сказал custom и прописал все вручную).
Если всё выполнено правильно, то после очередного копирования файлов и перегрузки перед вами предстанет вполне рабочий 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:
Заменяем настройки пользователей в отношении дисков и принтеров собственными: подключать всё (то есть верхняя галочка должна быть снята, а три следующие должны быть активными и установленными).
Ограничить глубину цвета до 16 бит
Запретить переадресацию LPT, COM, Audio портов.
Закладка Permissions:
Добавляем созданные группы пользователей 1С и ставим им права: Guest Access + User Access
Закладка Remote Control:
Use remote control with following setting:
[ ] Require user's permission (снимаем галочку)
(o) Interact with the session
Закрываем Terminal Services Configuration. Далее делаем следующее:
Заходим в My computer.
Говорим Propetries на диске C:
Переходим на закладку Security
Говорим Advanced...
Удаляем права, позволяющие группе Users создавать папки и файлы.
Так секьюрнее.
Заходим с Панель управления -> Система. Закладка "Автоматическое обновление". Отключаем всё автоматическое обновление напрочь.
Заходим в Администрирование -> 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. Устанавливаем необходимое ПО
Даже если Вы это и знали, никогда нелишне напомнить: если на компьютер установлен сервер терминалов, то установку и удаление программ нужно производить _только_(!!!) из соответствующего раздела панели управления: Панель управления -> Установка и удаление программ.
Я ограничился установкой на сервер следующего софта:
Total Commander 5.50
WinRAR 3.11 RUS
Office XP RUS
Dr.Web 4.29c
Весь софт устанавливался правильно - то есть через Панель управления. Из Office я поставил только Word, Excel и Access. Отключил такие вещи как Binder и Панель_Office. DrWeb вообще самостоятельно определил, что это сервер и не стал устанавливать свой Spider.
После этого осталось зайти в "C:\Documents and Settings\Administrator" и "C:\Documents and Settings\All users" и подкорректировать содержимое папок
\Start menu
\Start menu\Programs
\Start menu\Programs\Startup
\Desktop
на предмет лишних ярлыков.
8. Устанавливаем 1C:Предприятие 7.7
Установку 1С производим также из панели управления. Я выбрал для установки 18 релиз 1С:Предприятия 7.7 - мы уже работали на нём долгое время под Windows 2000. От установки типовой конфигурации я отказался -у нас есть своя.
Создаём папку для хранения будущих баз. У нас она исторически называется C:\1sbdb.adm . В ней - подпапки для соответствующих групп пользователей, в которые переносим со старого места базы 1С.
Проверяем доступа на главную папку (C:\1sbdb.adm):
правой кнопкой мыши -> Propetries -> Security -> Advanced
все права должны наследоваться с корня диска: Administrators, SYSTEM и Владельцы должны иметь "Full Control", группа Users - права "Read & Execute"
мы не будем изменять права на эту папку.
Hастраиваем права доступа на папку базы (C:\1sbdb.adm\BAZA1):
правой кнопкой мыши -> Propetries -> Security -> Advanced
отключаем наследование прав с корня диска (снимаем галочку)
в поевившемся диалоге говорим Copy: копировать уже имеющиеся права
удаляем права на чтения группы Users: нечего по базе 1С лазить
добавляем права для соответствующей группы пользователей 1С (которой принадлежит эта база). Ставим все галочки, кроме:
Full Control, Delete, Change Permissions, Take Ownership (для "This folder, subfolders and files")
таким образом, в списке прав появится наша группа с правами "Special"
Аналогично устанавливаем права для остальных подпапок C:\1sbdb.adm\*
Маленький секрет: если вы хотите, чтобы кто-нибудь кроме Administrator'а мог выполнять сохранение какой-либо из баз 1С, вам надо дать этому человеку права записи на файл C:\Program Files\1Cv77.ADM\BIN\1CV7FILE.LST.
Конфигуратор, при вызове команды "Сохранить данные" пытается открыть его на чтение и запись, даже если вы не хотите менять список сохраняемых файлов. Поэтому имеет смысл создать группу 1C-Admins, членам которой разрешить доступ
на этот файл:
правой кнопкой мыши -> Propetries -> Security -> Advanced
добавляем права для группы 1С-Admins: Ставим все галочки, кроме: Full Control, Delete, Change Permissions, Take Ownership
9. Ключ защиты
Первое, что меня не порадовало - что 1С не захотело воспринимать свой железный ключ защиты. При запуске долго думает, а потом пишет: "Hе найден ключ защиты" - и вываливается.
Хотя от других людей о подобных проблемах я не слышал. Установка новой версии драйверов HASP с www.alladin.ru ситуацию не изменила. Поэтому, оставив заветный ключик гордо торчать в LPT порту, засучим рукава и займёмся поиском пути обхода этой проблемы.
Hаиболее распространённый путь - установка эмулятора HASP. Hаиболее распространённый эмулятор для 1С - Sable. Hадо заметить, не каждый Sable подойдёт для Win2003 Server, а уж тем более не каждый Sable будет работать на двухпроцессорной машине. Так что прежде чем предпринимать какие-либо действия, дочитайте этот раздел до конца.
У меня лежат три разных релиза "серверной" Sable, размерами SABLE.EXE 508.944, 510.202 и 516.631 байт соответственно. Все три, если верить тексту Соболя, прекрасно работают на многопроцессорных системах. Какую использовать - решать вам. Попробуйте 516.631 или 510.202. Процедура установки Sable на двухпроцессорную Win2003 Server весьма хитрая:
Запускаем установку и устанавливаем Sable. В конце программа установки просит перегрузить компьютер - соглашаемся.
2. Заходим в "C:\Documents and Settings\Administrator\Start menu\Programs\Startup", "C:\Documents and Settings\All users\Start menu\Programs\Startup" и удаляем ярлычок (или .cmd), запускающий эмулятор.
Заходим в C:\Program files\sable\ запускаем delnt.bat - он вычищает драйвера HASP из реестра.
Обязательно перегружаемся!
Заходим в C:\Program files\sable\ запускаем instnt.bat - он устанавливает эмуляцию HASP драйвера.
Оттуда же запускаем startnt.bat
Заходим в Панель управления -> Система -> Оборудование -> Диспетчер устройств
Меню View -> Show hidden devices. В списке устройств появится пункт "Non-Plug and Play Drivers"
Щелкаем правой кнопкой мыши на пункте и говорим "Scan for hardware changes".
Теперь среди устройств этого пункта должно появиться устройство HASPNT.
Заходим Propetries -> Drivers и устанавливаем тип запуска Automatic. OK.
Заходим в C:\Program files\sable\ и копируем patch77.exe в каталог 1С.
Запускаем patch77.exe /F 1cv7.exe (выполняем "полный патч")
Удаляем patch77.exe. Перегружаемся.
Если всё выполнено правильно, после перезагрузки 1с перестанет ругаться на отсутствие ключа, и будет работать в нормальном режиме.
Рекомендуем для проверки запустить 1С раз 10-15. Запускаться она должна быстро, ни на что не ругаясь. Если вы обнаружите, что 1С запускается через раз, или только с 10-й попытки - дело в неправильно установленном эмуляторе. Из моего опыта могу сказать, что если HASPNT поднимается из автозапуска (куда его изначально впихивает инсталлятор Sable), то: - во-первых, для того, чтобы эмулятор заработал, после перезагрузки сервера надо зайти Администратором; - во-вторых, у меня при таком варианте запуска 1с стартовала раза с 10-го.
Итак, даже если в течение многократного тестирования 1С запускалась без сбоев, перегрузите сервер ещё раз, и снова протестируйте запуск 1С. Бывали случаи, когда эмулятор не всегда правильно поднимался при старте сервера.
Представили, какие ждут вас мучения?
Hу а теперь второй способ отучить 1с от HASP: найти пропатченный 1cv7.exe. О достоинствах/недостатках этого способа говорить пока не ручаюсь, но вроде пока всё работает..
10. Дополнительные возможности
Вы уже пробовали заходить под терминалом и вызывать 1С? Попробуйте! Мне показалось, что её красочная анимация на заставке (когда одна картинка ме-е-едленно превращается в другую) слишком тормозит в терминальном режиме.
Решим этот вопрос кардинально с помощью любого шестнадцатеричного редактора:
Для Сетевой версии:
в файле 1cv7.exe найти: 8B 87 54 85 00 00 и заменить на: 31 C0 90 90 90 90
Для Локальной версии:
в файле 1cv7l.exe найти: 8B 8B 54 85 00 00 и заменить на 31 C9 90 90 90 90
Hе забывайте делать резервные копии.