Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft Windows Server 2003 Другое Связка: Windows 2003 Server + Сервер терминалов + 1C Предприятие 7.7 RSS

Связка: Windows 2003 Server + Сервер терминалов + 1C Предприятие 7.7

Текущий рейтинг: 4.46 (проголосовало 216)
 Посетителей: 80805 | Просмотров: 158041 (сегодня 0)  Шрифт: - +

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С должна иметь доступ к этой папке как на чтение, так и на запись, а ваш пользователь должен входить в эту группу.

Folder PropertiesSecurity

Если зайдя под пользователем в 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 - снять галочку

New User. Page 1New user. Page 2New user. Page 3New user. Page 4

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, не забывая при этом указать его правильный пароль.
  • Готово. Если любопытно, можете заглянуть в дополнительные параметры.

Sheduled Tasks

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

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

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

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

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

Иcточник: Networkdoc.ru  •  Опубликована: 16.01.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.