Установка 1с v 8.2 в корпоративной среде при помощи групповых политик

Что-то забросил я свой уютненький. Исправляюсь. Сегодня речь пойдет об установке 1c v8.2 в корпоративной среде при помощи групповых политик. И так, какие же способы развертывания совего софта нам предлагает 1с?

  1. Установка с помощью logon-скрипта
  2. Установка, путем размещения в общем сетевом каталоге
  3. Установка с помощью групповых политик

Первые два способа мы отвергаем, т.к. для того, чтобы ими воспользоваться пользователь должен обладать правами локального администратора (это же не наши методы). Можно было бы использовать скрипт в качестве startup-скрипта, небольшим допиливанием оного. Но, честно говоря, не понимаю: зачем использовать скрипт, при наличии штатной возможности развернуть приложение из msi-пакета при помощи групповых политик. Казалось бы, очередной банальный случай развертывания ПО в домене. Сейчас зайдем на сайт производителя, прочитаем о том, как настроить msi-пакет, возможно, даже скачаем какой-нибудь инструментарий для создания файла трансформации (mst-файла), как это принято у крупных производителей софта, и дело будет сделано. Однако, не тут-то было. Информация, которую нам предлагает производитель о  развертывании своего продукта при помощи групповых политик, весьма скупа:

При установке через групповые политики для указания языка установки нужно указывать соответствующий языковой файл трансформации. Имена файлов соответствуют десятичному представлению LCID Microsoft Windows (с расширением .mst). Файл трансформации для русского языка называется 1049.mst.

Кроме этого, дополнительно нужно указать файл трансформации adminstallrestart.mst. В этом случае система «1С:Предприятие» при несовпадении версий клиента и сервера будет предлагать перезагрузку компьютера для установки новой версии. Администратор должен позаботиться, чтобы новый дистрибутив уже был добавлен в групповых политиках.

С использованием групповых политик можно устанавливать несколько версий «1С:Предприятия».

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

Очень странный набор информации нам предоставила фирма 1c: информация о файле трансформации (модификации) 1049.mst – очевидна, а о adminstallrestart.mst не слишком полезна. В первую очередь хотелось бы понять, как можно указать установщику, какие компоненты продукта мы хотим установить, а какие – нет? Не смотря на то, что документация от 1c в основном достаточно обширна и подробна, об этом почему-то не говориться ни слова. Но выйти из положения нам поможет logon-скрипт, который мы отвергли в самом начале. В скрипте мы можем увидеть следующие строки:

cmdLine = cmdLine &  “THICKCLIENT=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU”

В этой строке скрипта формируется командная строка , которая будет передана на обработку установщику msiexec. Как мы видим, в эту строку добавляются параметры вида “Property=PropertyValue”. Разумно было бы предположить, что каждое из этих свойств должно найти свое отражение в таблице Properties msi-пакета. Заглянув в msi-пакет при помощи редактора Orca (о том, как “добыть” этот редактор, уже было написано ранее в моем блоге), я не увидел ни одного из этих свойств в пакете 1c. Поэтому, на всякий случай, проконсультировался на этот счет у Бетке Сергея, и он подтвердил, что я не ошибся в своих предположениях.

1c82-mstИ так, нам нужно добавить несколько строк в таблицу Properties, содержащих соответствующие свойства и их значения. Конечно же мы не будем вносить изменения непосредственно в сам пакет установки (msi-файл), а подготовим при помощи Orca трансформатор (mst-файл). На скриншоте показаны изменения, которые необходимо внести в инсталляционный пакет для того, чтобы указать, что мы хотим установить только толстого и тонкого клиента и при этом выбрать русский язык для интерфейса (не забываем, что надо не только выбрать русский язык для интерфейса, но и добавить его в инсталляционный пакет при помощи соответствующего трансформатора – файла 1049.mst). О том, как добавлять инсталляционный пакет и файлы модификации (трансформации) в групповую политику рассказывать не буду, надеюсь, что вы это знаете, а если не знаете, то можете прочитать об этом статье о развертывании Adobe Acrobat Reader.

Осталось рассмотреть вопрос добавления информационных баз в список, который увидит пользователь при запуске программы 1c. К счастью со времен 1c v 7.7. многое изменилось и для этого не требуется править реестр. Информация о базах теперь храниться в файле с расширением v8i. По умолчанию файл располагается на локальном компьютере в папке %APPDATA%\1C\1CEStart и имеет имя ibases.v8i. Можно вносить изменения в этот файл, например: при помощи GPP, как это предлагает Сергей Бетке, но тут есть некоторые ограничения, связанные с тем, что файлы *.v8i – это файлы в формате unicode, а GPP с файлами в unicode кодировке работать не умеет. Поэтому приходится идти на компромиссы, о которых вы можете прочить у Сергея в блоге. Но существует другой способ создания списка информационных баз для пользователя, который лишен этого недостатка. Начиная с v8.1, в 1c появилась возможность, единожды прописав информационную базу в список “руками”, выгрузить описание каждой информационной базы в отдельный v8i-файл. Затем, эти v8i-файлы можно разместить на общем сетевом ресурсе и добавлять их пользователям в список общих информационных баз. Это можно делать вручную: например, так, как описано здесь. А, зная о том, что общий список информационных баз хранится в файле 1CEStart.cfg, который располагается папке %APPDATA%\1C\1CEStart, можно для этих целей использовать GPP без проблем, с которыми столкнулся Сергей Бетке. Приведу пример содержимого простейшего файла 1CEStart.cfg (описание формата файла можете найти на сайте http://its.1c.ru, если вы счастливый обладатель подписки на ИТС):

CommonInfoBases=\\server\1c_bases\v8\CommonIB\ZPK.v8i
CommonInfoBases=\\server\1c_bases\v8\CommonIB\BUH.v8i
CommonInfoBases=\\server\1c_bases\v8\CommonIB\ZPK2.v8i
UseHWLicenses=1

28 Comments

  1. Здравствуйте, возникла проблема при установке 1С через GPO. Все ярлыки программы отображаются без иконок. Несколько раз пробовал пересоздать административную установку. Не подскажите в чём проблема и как победить?
    Спасибо!

    • Не подскажу. У меня такой проблемы не наблюдалось. Погуглите, я помню, что краем глаза где-то видел упоминание про такую ситуацию.

  2. Здравствуйте. При установке 1С способом MSI+MST столкнулся со следующей проблемой. Делал аналогичный MST-файл с перечнем свойств-компонентов, все прекрасно поставилось, но… Платформа установленная таким образом корректно не удаляется! Удаляется почему-то только русская локализация, а все остальное остается на своих местах, в том числе запись в “Установке и удалении программ”. Эксперименты показали, что именно связка MSI+MST дает такой результат. При установке из командной строки с указанием параметров “THICKCLIENT=1 THINCLIENT=1…” в дальнейшем все можно удалить без проблем. Сталкивались ли вы с подобной проблемой?

    • Честно говоря, еще не пробовал удалять назначенный пакет, но общие принципы таковы: если вы выполняли административную установку пакета, а потом уже назначли пакет из этой административной установки при помощи политик, то во время деинсталяции (и/или добавлении/удалении компонентов) у вас должен быть доступен сетевой ресурс административной установкой. Соблюдалось ли у вас это требование?

      Если вы назначаете пакет, без предварительной административной установки на сетевом ресурсе, то в этом случае (так же как и при установке “из командной строки”) на целевую машину будет скопирован сохранен инсталятор целиком, как следствие вы можете выполнять деинсталяцию автономно, без подключения к сетевому ресурсу, где изначально хранился инсталятор.

      • Провел еще несколько экспериментов. С установкой из сети и локально, с использованием административной установки и без нее. Во всех случаях результат один — при использовании MST-файла для выбора устанавливаемых компонентов, платформа впоследствии корректно не удаляется. Причем, процесс деинсталяции проходит без каких-либо ошибок. Но, за исключением языков интерфейса, все остается на своих местах. Удалить получается только по кнопке “Изменить” в “Установке и удалении программ” и далее в диалоге “Изменить/Восстановить/Удалить” выбрать пункт “Удалить”. То есть, только “ручным” способом.
        Маленькая просьба: если есть возможность, выложите, пожалуйста, ваш вариант MST-файла куда-нибудь в общий доступ. Может, я как-то не так его делал (уж не знаю, что и думать). Или, если вдруг надумаете как-нибудь удалить платформу, то отпишитесь, как все прошло. :)

          • Итак, раз уж я развел тут дискуссию по поводу удаления платформы, то подведу некий итог. Я обращался в техподдержку 1С, там подтвердили проблему (ошибка зарегистрирована под номером 20004994). Таким образом, платформа, установленная с применением такого (или аналогичного) файла трансформаций, не удалится корректно в автоматическом режиме! Теперь это признанный факт и его следует иметь ввиду. Конечно, это не трагедия, но если вдруг понадобится удалить платформу на множестве ПК в сети, то для этого, скорее всего, придется использовать нестандартные средства. Такие дела.

              • Я тут провёл ещё кое-какие эксперименты, и выяснил, что если взять оригинальный 1049.mst и прям в него дописать нужные строчки про компоненты, а потом применить только одну эту трансформацию, то такой пакет удаляется потом корректно.

                • Добрый день!
                  Не подскажете в каком редакторе правили mst файл?
                  И ещё: исправленный файл вы указывали именно как трансформатор в GPO или просто заменяли им оригинальный 1049.mst в каталоге с дистрибутивом?

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

                • какие строчки нужно дописать хотя бы скажите,чтобы потом удаление происходило корректно..

  3. >Первые два способа мы отвергаем, т.к. для того, чтобы ими воспользоваться пользователь должен обладать правами локального администратора

    а вот и нет, для этого достаточно в ГП разрешить устанавливать msi пакеты пользователям (это из рекомендаций по инсталляции с сайта 1С)

    • >для этого достаточно в ГП разрешить устанавливать msi пакеты пользователям (это из рекомендаций по инсталляции с сайта 1С)

      разрешив устанавливать msi-пакеты пользователеям, вы собственноручно организуете дырку в защите ОС, позволяя злономеренному пользователя или ПО получить административные привилегии на данном компьютере: “AlwaysInstallElevated” is Equivalent to Granting Administrative Rights

  4. Доброго времени суток. Установку msi пакета через GPO мы немного развернули, допилив конечно его mst пакетами. При установке в разделе: “Пользовательский интерфейс при установке” приходиться указывать “Полный”, тогда ярлычки нормальные и установка идет как нужно. Вопрос в другом: возможно ли “пропустить” диалоговые окна, что бы юзер не тыкал кнопку далее даже? Казалось бы – указать “Простой” и дело в шляпе, но тогда софтина пропишется не в нужные дирректории.

    • Я назначаю установку в политиках на компьютер, а не на пользователя. Установка проиходит до входа пользователя в систему. Во время этой установки он видит только информационное сообщение “Идет установка назнаначенного программного обеспечения…”.
      Я вообщее не сторонник метода установки ПО в контексте пользователя, т.к. для этого ему придется выдать разрешения на запуск msi-файлов, а, значит, пользователь может поставить себе любую программу, распространняемую в виде msi-файла.

  5. Доброго времени суток!
    Мне не понятно как вы правили .mst файл. Скрин сделан по файлу .msi? Там таких значений как у вас (в зеленых рамках) у меня нету. Версия 1с 8.2.18.102. Добавлять вручную?..
    Я скачал Orca.exe, файлы 1049.mst и adminstallrelogon.mst в Orca не открываются… Вижу много комментаторов кто сделал по вашему примеру… Не понимаю, то ли что-то изменилось в версии то ли я настолько не внимателен… Вне зависимости первое или второе, прошу объяснить, как автоматизировать установку в домене 1с, и указать в установке нужные мне параметры, за что буду очень признателен.
    Сейчас 1с начала использовать электронные ключи лицензии, вместо аппаратных и в установке появилась соответствующая галочка, какие ключи использовать, у нас есть и такие и такие, поэтому вопрос с галочкой тоже адресовывю вам =) Надеюсь подскажите,
    большое спасибо!

  6. >Скрин сделан по файлу .msi?

    Скрин сделан по файлу msi с применненным к нему файлом mst. Зеленым показаны поля, которые изменены при помощи файла mst.

    >Там таких значений как у вас (в зеленых рамках) у меня нету

    IIRC, при помощи mst можно не только изменять существующие значения, но и добавлять новые.

    >Вне зависимости первое или второе, прошу объяснить, как автоматизировать установку в домене 1с, и указать в установке нужные мне параметры, за что буду очень признателен.

    Собственно этому и посвящена статья

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

    у меня таких версий 1 с еще нет, но узнать о параметрах, которые вы можете попытаться изменить в файле msi, вам возможно поможет пристальное изучение содержимого файла setup.ini в инсталляторе 1с.

  7. В большинстве случаев допиливать что-либо, msi или mst файлы и т.д., нет никакой необходимости. При установке из msi используется тот язык, который является для клиента системным. Т.е. если на ПК установлена русская версия Windows, то и 1С установится в русском варианте. А если если винда на языке Зулусов, его и получите :) (при наличии в дистрибе соответствующего mst-файла, правда их там всего десять).
    Короче попробуйте так (у меня все работет много лет):
    1. Выложил файлы новой платформы в шареную папку (напр.: \\Srv\Shared\1C\8.2.18.109\)
    2. Установил на нее Read&Execute для пользователей Прошедших проверку (Authenticated Users)
    3. Создал в домене группу (напр. Setup_1C-8.2)
    4. Добавил в нее те ПК (не пользователей – это важно), на которые планируется ставить 1С.
    5. Создал политику установки (не пользовательскую, обязательно в /Computer Configuration/ Software Setting/ Software Installation). Добавил птичку [Удалять, если выходит за рамки политики… (сокр.)], но это по желанию)
    6. В фильтре политики удалил применение ее группой Прошедших проверку (Authenticated Users) и добавил вместо нее созданную группу Setup_1C-8.2

    Вот почти и все. Выполняем на ПК gpupdate /force, затем ребутимся и говорим Ах! И так на каждом.
    На ПК добавленные в группу Setup_1C-8.2 будет устанавливаться клиент, если его там нет. И достаточно удалить из этой группы какой либо ПК, так при следующей перезагрузке клиент будет удален. Т.е. мы только редактируя группу, регулируем парк 1С клиентов.
    При смене платформы:
    выкладываем новые файлы в другую папку, я использую ее номер (напр.: \\Srv\Shared\1C\8.2.19.83\)
    Файлы старой платформы ни в коем случае не удаляйте, пока все ее клиенты не будут деинсталлированы.
    Затем удаляем политику и тут же создаем заново, но уже с новым путем.
    Не забываем выполнить 6-й пункт (см. выше).

    Теперь на всех этих ПК, при перезагрузке, будет удалена старая платформа и установлена новая.
    Тем кому нужна и старая платформа тоже, не нужно добавлять в политике птичку на удаление (см. выше).

    Все это справедливо и для 1С 8.1

    З.Ы. Не забывайте делать gpupdate /force

    • В большинстве случаев допиливать что-либо, msi или mst файлы и т.д., нет никакой необходимости. При установке из msi используется тот язык, который является для клиента системным. Т.е. если на ПК установлена русская версия Windows, то и 1С установится в русском варианте

      Не согласен. Я подробно описал для чего какие изменения я произвожу при помомощи mst-файла. Что же касается языка программы, то, если не применять соответствующий mst-файл, то интерфейс программы будет англоязычным (по крайней мере в моем случае было именно так, да и документация от производителя сообщает нам о необходимости применения соответствующего mst-фапйла для добавления соответствующего языка интерфейса).

  8. Забыл добавить.
    Если вдруг кого то припрет удалить клиента вручную, то это лучше всего делать не через панель управления, а так: msiexec.exe /x “\\Srv\Shared\1C\8.2.18.109\1CEnterprise 8.2.msi”.
    Т.е. нужно использовать путь к той платформе, которая установлена.

    Да, еще. Иногда при установке из политики наблюдаются проблемы. Чаще всего они обусловлены некорректным удалением предыдущей версии, установленной вручную (setup.exe или 1CEnterprise 8.2.msi).
    Иногда приходилось ползать по реестру и вычищать огрызки старого инстала 1С, пока не начнет ставиться политикой.

  9. Вопрос добавления информационных баз в список, который увидит пользователь при запуске программы 1С решен очень элегантно при помощи “расширения групповой политики конфигурации программ” GP1CV8IB, http://www.dev.citykirov.ru/ [автор DmitrO].
    Ставите ее (у меня ставится политикой) на все ПК домена. Там всего одна DLL-ка.
    А работает это так.
    Пример.
    Создаем 3 группы:
    1C_UPP-8.2 -> Пользователи с доступом к УПП
    1C_ZiK-8.2 -> Пользователи с доступом к Зарплате
    1C_Store-8.2 -> Пользователи с доступом к Складу
    ну т.д. – кому к скольким базам нужно.
    Теперь создаем три политики:
    1C_UPP-8.2, 1C_ZiK-8.2, 1C_Store-8.2 (называйте как хотите, только не запутайтесь если их станет много).
    Политики пользователя (/User Configuration/Software Setting).
    Там все просто и прозрачно – имя и путь к базе и т.д. (поддерживаются и файловые и SQL базы).
    Осталось в фильтре политики удалить применение ее группой Прошедших проверку (Authenticated Users) и добавить вместо нее соответствующую группу каждой политике.

    Ну и либо перелогиниться, либо gpupdate /force (для User)
    Вот собственно и все.

    Добавил Рабиновича в соответствующую группу и у него в списке появилась эта база. Удалил Иванова из группы и база у него из списка пропала.
    Все руление сводится к добавил/удалил в группе.

    З.Ы. Поддерживается 1С 8.1 и 1С 8.2 (для x64 ОС тоже есть).

  10. Не нужно никаких расширений групповой политики.
    Я допилил авторский способ(кстати автору огромное спасибо за статью и комментаторам тоже). У меня 1 политика в которой делается всё, относительно 1С:
    1. Сам пакет, с файлом трансформации (модифицированный 1049.mst). Пакет добавляется к имеющимся и в настройках указывается какой пакет обновлять, т.е. старый пакет удаляется, новый ставится(версия 1С всегда одна, по-этому про несколько версий не парюсь, можно несколько политик сделать). Кому ставить регулирую только наследованием ГП, применяется ко всей ОУ организации (кроме серверов), так как 1С пользуются все. Можно как писал выше Юрий, просто добавлять компы, на которые надо ставить в группу безопасности.
    2. Выгружены отдельные файлы для настроек каждой базы(расширение .v8i), лежат на шаре. Для каждого файла есть группа безопасности с названием базы, разрешение на чтение для только для этой группы(ну админы само собой).
    3. В конфигурации компьютера из профиля All users удаляется с рабочего стола ярлык 1С. Заменяется файл 1CEStart.cfg, заранее подготовленным файлом со списком общих баз(пункт 2) %CommonAppdataDir%\1C\1CEstart\1CEStart.cfg(настройка баз для всех пользователей компьютера). Лежит так же на шаре (2 одинаковых файла с разницей в пути к установленной 1С для х86 и х64, какой файл копировать фильтруется нацеливанием), для добавления новой базы создаём новый файл .v8i, группу безопасности, добавляем путь в файлы 1CEStart.cfg.
    4. В конфе пользователя удаляем файлы 1CEStart.cfg и .v8i что бы очистить список баз. Если кому то нужна своя особенная база, то человек на рабочий стол себе сохраняет файл .v8i и запускает через него
    5. Создаем ярлыки на рабочий стол для запуска конкретной базы, типа “тык и база открылась”. у меня не больше 2-х баз на человека, а чаще одна, по-этому актуально и удобно.
    В результате у человека актуальная версия 1С с необходимыми компонентами, отсутствует ярлык 1С(на стартер) на рабочем столе, присутствует ярлык запуска конкретной базы(или несколько), и внимание, в списке баз стартера он видит только те, в группу безопасности которых он входит.
    Если кому то нужно, то могу выгрузить всю политику со всеми тонкостями в файл. Спасибо за внимание))

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.