Hotfix - terminal server win

Материал из support.qbpro.ru

Почему я не стал использовать 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. Подготавливаем дистрибутив ---

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е забывайте делать резервные копии.

11. Автоматический запуск 1С

Администрирование -> Управление компьютером -> Пользователи и группы. Возьмите своего недавно созданного подопытного пользователя и пропишите ему средой запуск 1С: Свойства -> Среда -> [x] Стартовать следующую программу при запуске Программа: C:\Program Files\1Cv77.ADM\BIN\1cv7.exe Каталог: C:\Program Files\1Cv77.ADM\BIN\

Попробуйте теперь зайти этим пользователем через терминал. Что вы видите? Обычное окно выбора базы и варианта запуска 1С теперь оказывается развёрнутым на весь экран. Это фича Terminal Server'а. Как её обойти?

Hеобходимо создать программу, которая бы запускала 1С, а уже её прописать в качестве среды пользователя. Самый простой вариант - создать пакетный файл. В нём следует написать:

 @ECHO OFF
 CD "C:\Program Files\1Cv77.ADM\BIN"
 START 1cv7.exe

Обратите внимание на слово 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 заходите под Administrator'ом, устанавливаете настройки в первоначальное "неправильное" состояние. запускаем утилиту regmon устанавливаем фильтр записей: только "Log Writes" и "Log Successed" запускаем процесс слежения "исправляем" региональные настройки и настройки ScreenSaver'а останавливаем слежение внимательно разбираем собранный журнал изменений реестра.

После анализа собранных изменений реестра оказалось, что для распространения настроек необходимо: - полностью перенести ветки:

 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 файл следующего вида:

 ---------------------------------------------- ----------------
 REGEDIT4
 [HKEY_CURRENT_USER\Control Panel\International]
 "iCountry"="7"
 "iCurrDigits"="2"
 "iCurrency"="1"
 "iDate"="1"
 "iDigits"="2"
 "iLZero"="1"
 "iMeasure"="0"
 "iNegCurr"="5"
 "iTime"="1"
 "iTLZero"="0"
 "Locale"="00000419"
 "s1159"=""
 "s2359"=""
 "sCountry"="Russia"
 "sCurrency"="р."
 "sDate"="."
 "sDecimal"=","
 "sLanguage"="RUS"
 "sList"=";"
 "sLongDate"="d MMMM yyyy 'г.'"
 "sShortDate"="dd.MM.yyyy"
 "sThousand"="."
 "sTime"=":"
 "DefaultBlindDialFlag"=hex:00
 "sTimeFormat"="H:mm:ss"
 "iTimePrefix"="0"
 "sMonDecimalSep"=","
 "sMonThousandSep"="."
 "iNegNumber"="1"
 "sNativeDigits"="0123456789"
 "NumShape"="1"
 "iCalendarType"="1"
 "iFirstDayOfWeek"="0"
 "iFirstWeekOfYear"="0"
 "sGrouping"="3;0"
 "sMonGrouping"="3;0"
 "sPositiveSign"=""
 "sNegativeSign"="-"
 [HKEY_CURRENT_USER\Control Panel\International\Geo]
 "Nation"="203"
 [HKEY_CURRENT_USER\Keyboard Layout]
 [HKEY_CURRENT_USER\Keyboard Layout\IMEtoggle]
 [HKEY_CURRENT_USER\Keyboard Layout\IMEtoggle\scancode]
 [HKEY_CURRENT_USER\Keyboard Layout\Preload]
 "1"="00000409"
 "2"="00000419"
 [HKEY_CURRENT_USER\Keyboard Layout\Substitutes]
 [HKEY_CURRENT_USER\Keyboard Layout\Toggle]
 "Hotkey"="2"
 "Language Hotkey"="2"
 "Layout Hotkey"="1"
 [HKEY_CURRENT_USER\Control Panel\Desktop]
 "SCRNSAVE.EXE"=""
 "ScreenSaveActive"="0"
 "ScreenSaverIsSecure"="1"
 "ScreenSaveTimeOut"="600"
 [HKEY_CURRENT_USER\Software\Microsoft\Plus!\Themes\Apply]
 "Screen saver"="1"
 "Sound events"="1"
 "Mouse pointers"="1"
 "Desktop wallpaper"="1"
 "Icons"="1"
 "Colors"="1"
 "Font names and styles"="1"
 "Font and window sizes"="1"
 "Rotate theme monthly"="1"
 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\LastTheme]
 "ThemeFile"=hex(2):00
 "Wallpaper"=hex(2):00
 "DisplayName of Modified"="Modified Theme"
 ---------------------------------------------- ----------------

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

Для этого в сценарий запуска 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. Мне кажется, это удобно.

Действия, которые нужно выполнять при добавлении пользователя: Ввести login, ФИО и пароль. Поставить галочку [x] Password never expires Добавить пользователя в соответствующую группу доступа к 1С (в группу Users он добавляется автоматически) Установить среду пользователя (закладка Environment): [x] Start the following program... Program: C:\1C.BAT Путь запуска можно не прописывать. настроить удалённое управление (закладка Remote control). [ ] Require user's permission - снять галочку

14. Архивирование базы

Последним этапом является настройка резервного копирования баз. Для этого в корне диска создаём папку Backup. Заходим в её свойства, затем в "Security", затем в "Advanced". Снимаем галочку, отвечающую за наследование прав с корня диска, при этом копируем права. Удаляем права группы Users - нечего никому там лазить. В папку кладём два файла. Первый файл - arc.bat следующего содержимого:

 ---------------------------------------------- ----------------
   @ECHO OFF
 SET PREFIX=%1
 SET BAZA=%2
 SET FOLDER=%DATE%
 cd C:\BACKUP
 mkdir "%FOLDER%"
 cd "%FOLDER%"
 del /F /Q %PREFIX%.RAR
 del /F /Q %PREFIX%.LOG
 ECHO Begin: %DATE% %TIME% > %PREFIX%.LOG
 "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul
 %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\*.DBF
 "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul
 %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7.DD
 "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul
 %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7.MD
 "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul
 %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7.ORD
 "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul
 %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7.SPL
 "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul
 %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\1CV7FLT.LST
 "C:\Program Files\WinRar\WINRAR.EXE" a -m5 -ep -dh -ilog%PREFIX%.LOG -inul
 -apUSRDEF %PREFIX%.RAR C:\1sbdb.adm\%BAZA%\USRDEF\USERS.USR
 ECHO. >> %PREFIX%.LOG
 ECHO. >> %PREFIX%.LOG
 ECHO End: %DATE% %TIME% >> %PREFIX%.LOG
 cd C:\BACKUP
 ---------------------------------------------- ----------------

Как видно, этот файл должен запускаться с двумя параметрами. Первый: префикс - краткое имя базы, которое войдёт в основу имени архива. Второй параметр - путь к базе относительно папки C:\1SBDB.ADM

Arc.bat выполняет следующие операции: В каталоге C:\BACKUP создаёт папку соответствующую текущей дате. В папке создаёт архив %ПРЕФИКС%.RAR, в который запаковывает из базы 1С следующие файлы: *.DBF 1CV7.DD 1CV7.MD 1CV7.ORD 1CV7.SPL 1CV7FLT.LST USRDEF\USERS.USR Ошибки, возникнувшие в процессе архивации, записываются в %ПРЕФИКС%.LOG

Второй файл - all.bat


----------------

cd C:\BACKUP call arc.bat BZ1 Baza1 call arc.bat BZ2 Baza2 call arc.bat BZ3 Test\Baza3


----------------

Этот файл по-очереди запускает архивацию всех баз. Как видно из примера, путь базы относительно папки C:\1SBDB.ADM может состоять из более чем одного файла.

Последняя оставшаяся операция - это добавления нового задания в планировщик. Пуск -> Программы -> Accessories -> System Tools -> Sheduled Tasks Добавить новое задание. В появившемся окне нажимаем кнопку "Next", затем - "Browse..." и выбираем файл C:\BACKUP\ALL.BAT Выбираем ежедневный режим запуска, скажем в 03:00 ночи В следующем окне указываем, что запускать надо из-под пользователя Administrator, не забывая при этом указать его правильный пароль. Готово. Если любопытно, можете заглянуть в дополнительные параметры.

15. Заключение

Hу вот мы совместными усилиями и настроили сервер. Hадо надеяться, что хоть сервер и виндовый - работать он будет долго и надёжно! Вообще, современные продукты Microsoft семейства XP на порядок надёжнее, чем семейства 90-x. Реальный пример: Win2003 Server живёт с uptime уже 4 месяца. Это радует. Зато огорчает то, что теперь они всё чаще лезут в Интерент за активацией..

Linux как альтернатива продуктам Microsoft ещё весьма слаб. Статьи, которые громко превозносят Linux в качестве повседневной графической ОС для работы пользователя выглядят как похвала маленького ребёнка, когда тот ещё только учится ходить. Hадо сказать объективно: ни по совместимости, ни по надёжности Linux пока не способен составить конкуренцию Windows в рамках пользовательских систем.

Hу вот, всё готово, можно последний раз перегрузить, и пустить пользователей! Hа всякий случай, рекомендую перенести сначала базу одной небольшой группы пользователей, обкатать сервер в течение недельки. После удачной обкатки - перенести остальные базы.

Желать вашему новому серверу счастливого полёта, и большого uptime!

Благодарности Конечно, моей жене Hаталье - за то, что всегда ждала меня, когда я задерживался на работе. Отделу Развития Сетевых и Информационных Технологий - за советы, огромную помощь и поддержку. Особенно - Сергею Лутохину и Алексею Тарасову - сопереживавшим установку нового сервера. Alex Migita (2:5036/30) - за дистрибутив Win2003 Server и помощь по терминалам. Oleg Kunov (oleg@lipgas.lipetsk.ru) - за помощь в вопросах администрирования 1С. Всем участникам конференции n5036.profi - за интересное обсуждение достоинств/недостатков Citrix и Win2003 Server Форум "Tерритория 1C" (http://www.kuban.ru/cgi-bin/forum/forum9.cgi) за ответы на мои многочисленные вопросы.

ИСТОЧНИКИ