Автоматическое формирование списка баз на терминальном сервере на основе групп пользователей (logon-скрипт)

11.07.14

База данных - Инструменты администратора БД

Logon-скрипт («батник») для терминального сервера, формирующий необходимый список баз для каждого пользователя в зависимости от принадлежности пользователя к группе.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
ListOfBases
.7z 78,95Kb
4 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Исходные данные:

- терминальный сервер (у меня на WS2008R2)

- пользователи заходят на терминал под основной рабочей учеткой домена

- пользователям необходим список баз в различных комбинациях


 Задача:

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


Прочие решения:

1. http://habrahabr.ru/post/179405/ - минус решения в сложности формирования комбинаций баз, для каждой комбинации приходится заводить отдельный каталог с настройками.

2. //infostart.ru/public/147404/ - привязка к Active Directory. В моем случае нет такой необходимости, т.к. для нужд 1С используется один терминальный сервер. Более актуально для нескольких серверов (исходный код по запросу).


Решение:

Подготавливаем на сервере необходимую структуру рабочих файлов и исходных данных:

1. Необходима утилита Ifmember.exe из состава пакета Windows Server 2003 Resource Kit Tools, которая проверяет наличие пользователя в группе. Скачиваем, устанавливаем.

2. Создаем основной рабочий каталог, в моём случае D:\ListOfBases.

3. Внутри основного рабочего каталога создаем:

   1) каталог Default, содержит дефолтные файлы. Содержимое каталога:

       - файл 1CEStart.cfg (в кодировке 1251 ANSI), содержит путь к каталогу шаблонов и признак необходимости поиска локального ключа защиты:

         ConfigurationTemplatesLocation=D:\CONFIG_1C8\tmplts82

         UseHWLicenses=1

      - пустой файл ibases.v8i (скопирован, очищен)

   2) файлы вида DB_[ИмяБазы].v8i. Каждый файл содержит описание для одной базы.

   3) командный файл makecfg.cmd (листинг ниже). Меняем путь для переменной mainpath на свой. Меняем имена групп пользователей и наименования баз на свои в разделе     «список баз».

   4) (необязательно) в моем случае также одна из баз используется не только на терминале, но и локально. Описание базы находится в расшаренном каталоге D:\ListOfBases\CommonBases. При необходимости – создаем.

4. Создаем необходимые группы пользователей (ServerManager – Configuration – LocalUsersandGroups – Groups), у меня вида User1C8_[ИмяБазы]. Добавлям пользователей в группы.

5. Устанавливаем скрипт в качестве logon-скрипта (gpedit.msc – LocalGroupPolicyEditor – LocalComputerPolicy – UserConfiguration – WindowsSettings – Scripts(Logon\Logoff) – Logon– указываем файл makecfg.cmd).

 

Листинг файла makecfg.cmd:

 

::@echo off

 

::для добавления новой базы - новую базу добавляем в ===списке баз===

 

::структура основного рабочего каталога:

::каталог Default - файл 1CEStart.cfg, содержимое файла:

::                        ConfigurationTemplatesLocation=D:\CONFIG_1C8\tmplts82

::                        UseHWLicenses=1

::                      - файл ibases.v8i (скопирован, очищен)

::файлы DB_[ИмяБазы].v8i, каждый файл содержит описание одной базы

::файл makecfg.cmd - данный командный файл

 

::===============установка переменных==========================

::основной рабочий каталог

set mainpath=D:\ListOfBases

::каталог дефолтных файлов

set configfolder=%mainpath%\Default

::каталог конфигурационных файлов пользователя

set userfolder=C:\Users\%username%\AppData\Roaming\1C\1CEStart

::путь к ifmember.exe

set ifmember="C:\Program Files (x86)\Resource Kit\IFMEMBER.EXE"

::=============================================================

 

::=================проверка и создание необходимой структуры===============

::если каталог пользователя не существует - создаем

if not exist %userfolder% mkdir %userfolder%

 

::данная строка необходима для замены файла 1CEStart.cfg на файл с кодировкой 1251,

::иначе - допишет иероглифы. Временно.

del %userfolder%\1CEStart.cfg

 

::если файла конфигурации нет - копируем дефолтный

if not exist %userfolder%\1CEStart.cfg copy /y %configfolder%\1CEStart.cfg %userfolder%

::если файла со списком баз нет - копируем дефолтный (пустой)

if not exist %userfolder%\ibases.v8i copy /y %configfolder%\ibases.v8i %userfolder%

::====================================================================

 

::===================список баз=========================================

%ifmember% User1C8_Base1

if %errorlevel% EQU 1 (call :sub1 Base1) else (call :sub2 Base1)

 

%ifmember% User1C8_Base2

if %errorlevel% EQU 1 (call :sub1 Base2) else (call :sub2 Base2)

 

%ifmember% User1C8_Base3

if %errorlevel% EQU 1 (call :sub1 Base3) else (call :sub2 Base3)

 

::%ifmember% [ИмяНовойГруппы]

::if %errorlevel% EQU 1 (call :sub1 [ИмяНовойБазы]) else (call :sub2 [ИмяНовойБазы])

 

::==================отдельный каталог (расшаренный)========================

%ifmember% User1C8_Base4

::второй параметр - слеш + имя расшаренного каталога

if %errorlevel% EQU 1 (call :sub1 Base4 \CommonBases) else (call :sub2 Base4 \CommonBases)

::=====================================================================

 

exit

 

::===================================пользователь в группе===========================================

:sub1

findstr.exe /b /v /c:"CommonInfoBases=%mainpath%%~2\DB_%~1.v8i" %userfolder%\1CEStart.cfg > %userfolder%\1CEStart.tmp

fc /b %userfolder%\1CEStart.cfg %userfolder%\1CEStart.tmp

::%errorlevel%=0 - файлы одинаковы, строка не найдена, добавляем; иначе - ничего не делаем (удаляем tmp)

if %errorlevel% EQU 0 (echo CommonInfoBases=%mainpath%%~2\DB_%~1.v8i>> %userfolder%\1CEStart.cfg)

del %userfolder%\1CEStart.tmp

exit /b

::================================================================================================

 

::===================================пользователь не в группе==========================================

:sub2

findstr.exe /b /v /c:"CommonInfoBases=%mainpath%%~2\DB_%~1.v8i" %userfolder%\1CEStart.cfg > %userfolder%\1CEStart.tmp

fc /b %userfolder%\1CEStart.cfg %userfolder%\1CEStart.tmp

::%errorlevel%=1 - файлы разнятся, строка найдена, заменяем; иначе - ничего не делаем (удаляем tmp)

if %errorlevel% EQU 1 (

del %userfolder%\1CEStart.cfg

ren %userfolder%\1CEStart.tmp 1CEStart.cfg

) else del %userfolder%\1CEStart.tmp

exit /b

::================================================================================================

 

 

Комментарии:

1. Изначально файл 1CEStart.cfg в кодировке 1200 UTF-16, у меня используется 1251 ANSI (в т.ч. для батника). 

2. Работу батника необходимо проверить. В случае несовпадений кодировок при добавлении базы в файл 1CEStart.cfg запишутся иероглифы. Код в данном виде переписывает файл 1CEStart.cfg принудительно при каждом входе пользователя на терминал в строке del %userfolder%\1CEStart.cfg. Данная строка требуется для замены имеющегося файла в дефолтной кодировке на файл в кодировке ANSI. После замены файлов у всех пользователей строку нужно закомментировать. В случае различия кодировок команда fc будет неправильно отрабатывать, показывая, что файл в кодировке UTF-16 длиннее. Для создания файла в необходимой кодировке можно использовать FAR Manager.

3. Для тестирования при непосредственной установке в качестве logon-скрипта можно использовать виртуальную машину (VirtualBox + WS2008R2)


В архиве каталог ListOfBases + Ifmember.exe.

Вступайте в нашу телеграмм-группу Инфостарт

logon-скрипт BAT-файл батник список баз терминальный сервер терминал домен группы пользователей конфигурационный файл 1CEStart.cfg

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    59886    320    160    

289

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

20740 руб.

06.12.2023    21005    73    10    

106

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    23545    84    42    

99

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    48107    129    158    

87

Инструменты администратора БД Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

12200 руб.

06.02.2017    35215    149    18    

54

Инструменты администратора БД Системный администратор 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

5490 руб.

10.11.2015    65496    101    59    

83
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2339 12.07.14 17:17 Сейчас в теме
Рекомендую так же разработку Softonit Control, которая позволяет гибко настраивать видимые информационные базы пользователям, так же есть интеграция с Active Directory.
Для отправки сообщения требуется регистрация/авторизация