Собирая информацию по крупинкам и экспериментируя методом проб и ошибок, я все же разобрался в этом вопросе.
Чем и хочу поделиться с вами.
Итак, какие же способы развертывания своего софта нам предлагает 1с?
1. Установка с помощью logon-скрипта
2. Установка путем размещения в общем сетевом каталоге
3. Установка с помощью групповых политик
Первые два способа мы отвергаем, т.к. в данной статье рассмотрим именно установку с помощью групповых политик (GPO).
Информация на страницах 1С:ИТС, которую нам предлагает производитель о развертывании своего продукта при помощи групповых политик, весьма скупа:
При установке через групповые политики для указания языка установки нужно указывать соответствующий языковой файл трансформации. Имена файлов соответствуют десятичному представлению LCID Microsoft Windows (с расширением .mst). Файл трансформации для русского языка называется 1049.mst.
Кроме этого, дополнительно нужно указать файл трансформации adminstallrestart.mst. В этом случае система «1С:Предприятие» при несовпадении версий клиента и сервера будет предлагать перезагрузку компьютера для установки новой версии. Администратор должен позаботиться, чтобы новый дистрибутив уже был добавлен в групповых политиках.
С использованием групповых политик можно устанавливать несколько версий «1С:Предприятия».
Для установки новой версии необходимо создать новую установку в групповых политиках.
1049.mst – очевидна, а о adminstallrestart.mst не слишком полезна. Поэтому мы создадим свой файл трансформации.
В первую очередь хотелось бы понять, как можно указать установщику, какие компоненты продукта мы хотим установить, а какие – нет? Не смотря на то, что документация от 1c в основном достаточно обширна и подробна, об этом почему-то не говориться ни слова. Но выйти из положения нам поможет logon-скрипт, который мы отвергли в самом начале. В скрипте мы можем увидеть следующие строки:
cmdLine = cmdLine & " DESIGNERALLCLIENTS=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=1 LANGUAGES=RU"
Где:
DESIGNERALLCLIENTS – все клиенты и конфигуратор.
THINCLIENT – тонкий клиент для клиент-серверного варианта работы.
THINCLIENTFILE – тонкий клиент с возможностью работы с файловыми информационными базами.
SERVER – сервер «1С:Предприятия». Если программа установки запускается из программы запуска, то сервер будет установлен как приложение.
WEBSERVEREXT – компоненты расширения для веб-сервера.
CONFREPOSSERVER – сервер хранилища конфигураций «1С:Предприятия».
SERVERCLIENT – компоненты для администрирования кластера серверов «1С:Предприятия».
CONVERTER77 – конвертер информационных баз из версии «1С:Предприятия 7.7».
LANGUAGES – список языков интерфейса для установки. Если указано несколько языков, они перечисляются через «,».
В этой строке скрипта формируется командная строка , которая будет передана на обработку установщику msiexec.
Чтобы создать файл трансформации, нам потребуется редактор «Orca». (http://www.technipages.com/download-orca-msi-editor)
И так, после установки запускаем программу. “Файл” – “Открыть”, и выбираем “1CEnterprise 8.msi” из дистрибутива 1С. В левой части программы появился список таблиц, в правой значения таблиц. Т.к. сам 1С не рекомендует менять msi-пакет, поэтому идем в меню “Transform” – “New Transform”.
Необходимо перейти к таблице “Property”. В правой части ищем строку “DEFLANGUAGE”, со значением “Auto”. Значение необходимо поменять на “RU” (Без кавычек конечно).
Для большинства пользователей необходимо установить минимум компонентов, это Тонкий клиент, Толстый клиент, и язык (например русский)
Поэтому создадим новые поля (Ctrl+R), где нужно указать имя и значение.
DESIGNERALLCLIENTS = 1
THINCLIENT = 1
THINCLIENTFILE = 1
SERVER = 0
WEBSERVEREXT = 0
CONFREPOSSERVER = 0
SERVERCLIENT = 0
CONVERTER77 = 0
LANGUAGES = RU
Т.е. Должно получится как на картинках:
Далее идем в меню “Transform” – “Generate Transform…”. Сохраняем файл, можно в папку с дистрибутивом, например Client.mst
На этом генерация файла трансформации закончена.
Чтобы проверить установку, необходимо открыть программу “cmd”. Перейти в папку с дистрибутивом. И выполнить команду:
setup.exe /S TRANSFORMS=Client.mst TRANSFORMS =1049.mst
или
msiexec /i "<каталог с дистрибутивом >" TRANSFORMS="<каталог с дистрибутивом >" Client.mst TRANSFORMS="<каталог с дистрибутивом >" 1049.mst /passive
В первой команде параметр “/S” и во второй команде параметр “/passive” означает, что установка будет проходить в фоновом режиме.
После некоторого времени можно проверять. Должно установиться Толстый клиент, Тонкий клиент и русский интерфейс.
Далее нужно создать новую установку в групповых политиках домена.
Так же нужно создать общий каталог в вашей сети, где будут хранится установочные файлы. Проверить чтобы пользователи домена имели права чтения из этого каталога.
Открываем редактор GP. Создаем новую политику. Открываем её для редактирования. Переходим в раздел «Конфигурация компьютера» — «Установка программ».
Создаем новый пакет. Выбираем файл 1CEnterprise 8.2.msi, путь до файла необходимо указывать через сетевое окружение \SRV…..1CEnterprise 8.msi, метод развертывания выбираем — особый, для того чтобы можно было внести модификации.
После создания пакета откроется окно свойств пакета.
Необходимо перейти на закладку «Модификации» и добавить файл трансформации для русского языка называется 1049.mst и файл трансформации Client.mst.
После того как нажмете «ОК» файлы модификации добавить будет не возможно.
Пакет готов. Стоит отметить, что пакет необходимо применять на группу компьютеров, для этого в AD необходимо создать такую группу и поместить туда компьютеры, для которых предполагается установка.
Проверить чтобы пользователи домена имели права чтения из этого каталога (с).
Права на чтение должны быть не у пользователей, а у компьютеров пользователей. Так как групповая политика установка программ выполняется от имени компьютера, до загрузки окна авторизации пользователя
Моя практика работы показала, что установка через logon-скрипт быстрее и проще. Всё упирается в сложность обновления платформы на сервере, а следовательно на клиентских компьютерах.
1. logon-скрипт позволяет удалять старые версии 1С Предприятия, в отличии от групповой политики.
2. Для работы logon-скрипта в нём необходимо поменять 4 стоки, уникальный код устанавливаемой конфигурации + путь до неё, и уникальный код удаляемой версии + путь до неё, а в случае с групповой политикой вам каждый раз придется проделывать всё описанное в статье.
3. Если руки растут из плеч, то можно доработать logon-скрипт для необходимого вам логирования, в групповой политики результаты выполнения пушиться в журнал событий, что не всегда удобно.
Самый главный плюс: скрипт можно запустить в любое время (несмотря на то что он называется logon-скрипт) что позволяет обновлять платформу на клиенте без перезагрузки и дополнительных указаний пользователю что и как делать.
(2) Dragonim, а как быть, если у пользователя нет прав локального админа?
(4) Dragonim, Может тогда напишите свою подробную инструкцию, можно с картинками. Было бы очень полезно.
(3) Дистрибутивы 1С Предприятия и сам logon-скрипт кладётся в сетевую папку с правами доступа для компьютеров рабочей группы (в самом простом случае у папки должны быть права доступа на чтение и выполнение для группы «Компьютеры домена»). В групповой политики прописывается запуск скрипта при загрузки или выключения компьютера, поэтому название logon-скрипт верно только в названии «скрипт» к «logon» он ни какого отношения не имеется т.к. в групповой политике под logon подразумевается вход пользователя под своей учётной записью, а запуск компьютера это startup.
Поддерживаю. Было бы интересно увидеть логон(стартап) скрипты не требующие у пользователей админских прав.
2. Установка, путем размещения в общем сетевом каталоге
3. Установка с помощью групповых политик
Первые два способа мы отвергаем, т.к. в данную статью рассмотрим именно установку с помощью групповых политик (GPO).
хорошее объяснение, очень объективное и сразу всё понятно. дайтедве!
(5)Danila-Master
достаточно подробно описано и в желтых книжках, и на итс, и даже обработка для генерации логон-скрипта опубликована.
(2)
А откуда заблуждение что GPO этого не позволяют сделать? Достаточно лишь правильно настроить саму политику…
(7)Не скажу чем руководствовался автор, но для меня причины были следующие:
1. Не нужно давать права пользователю. И так хватает проблем с
шибко умнымипродвинутыми пользователями и их portable софтом.2. Политика отдела IT: весь софт устанавливается через соответствующие политики, а политики распространяются на весь лес.
(5) (6) zelevova, по просьбам страждущих написалhttp://infostart.ru/public/299829/
Кто-нибудь сталкивался с проблемой не установки компоненты 1С:Предприятие (конфигуратор и толстый клиент) через групповые политики? Устанавливали версии 8.2 с указанием собственного mst файла, где указаны компоненты (всё кроме серверных), устанавливалось всё корректно, но криво удалялось (оставались в списке установленных программ).
Версия 8.3.5.1068 установилась и удалилась нормально, а в версии 8.3.5.1119 у многих (не у всех) установилась без компоненты 1С:Предприятие (конфигуратор и толстый клиент). Удаление всех версий с компьютера клиента и переприменение политики установки не помогает.
ошибка в тексте
msiexec /i «<каталог с дистрибутивом >» TRANSFORMS=»<каталог с дистрибутивом >» Client.mst TRANSFORMS=»<каталог с дистрибутивом >» 1049.mst /passive
понимать как
msiexec /i «<путь+имя_MSI_файла_установки>» TRANSFORMS=»<каталог с дистрибутивом >» Client.mst TRANSFORMS=»<каталог с дистрибутивом >» 1049.mst /passive
где
<путь+имя_MSI_файла_установки>, например равен d:inst1c8.3.5.12311CEnterprise 8.msi
(2) Dragonim,
можно все описанное в статье автоматизировать. если orca может добавлять, то чем мы хуже? msi это такая БД. можно написать либо скрипт на vbs, powershell, на чем угодно и использовать COM объект «WindowsInstaller.Installer» // Можно еще посмотретьhttp://msdn.microsoft.com/en-us/library/aa372865(v=vs.85).aspx
http://community.bartdesmet.net/blogs/bart/archive/2008/06/06/linq-to-msi-part-0-introduction.aspx . Я попробовал второй вариант. Но было довольно лениво все доводить до ума и я вспомнил про Wix. Так что на C# задача сильно упрощается, все что нужно это
либо напрямую использовать msi.dll . например через pinvoke
ну а в файлах теста можно посмотреть примеры использования
Показать
черт, разметка ис-а поломала код, но не важно, на гитхабе можно посмотреть
Спасибо за описанные методы.
Однако столкнулся с проблемой.
Под администратором терминально устанавливаю на 2008 сервере 32х битную 1С 8.3
До этого работала 1С 8.2 и запускалась.
После установки у меня, и у других администраторов сервера 1с 8.3 запускается.
У остальных пользователей 1С мигает на несколько секунд, и больше никакой активности не наблюдается.
Если удалить 1С 8.3, снова начинает работать.
Если почистить папки Application Data и Local Settings Application Data
перестает работать и 1С 8.2
В чем может быть причина?
Или в этой ветке обсуждаются только способы установки?
В последних версиях платформы появился новый пункт — «Контроль целостности». Как узнать имя параметра, отвечающего за него?
Можно ли установить 1С через групповые политики в каталог, отличный от каталога по-умолчанию c:Program Files ? Например, я хочу поставить в c:Prog1С
8.3.6 почемуто несмотря на параметры ставится английская и все что можно и сервер и тд. почему?
Коллеги, подскажите пожалуйста, а если надо сделать все тоже самое, но чтобы два языка ставилось?
(12)
Но работает так:
msiexec /i «<путь>1CEnterprise 8.msi» TRANSFORMS=Client.mst TRANSFORMS=1049.mst /passive
(9)
Так это же решается с помощью политики ограниченного использования программ
(19)
RU,EN
(22) Спасибо!
Использование параметра TRANSFORMS более одного раза недопустимо! Если вы укажете этот параметр несколько раз, то применится только последнее значение.
Надо указывать список файлов трансформации через символ «;» в том порядке в котором они должны перезаписывать значения предыдущих:
Здесь 1049.mst перезапишет настройки Client.mst в случае конфликта.
TRANSFORMS property
Подробнее:
Корректно будет так:
В методе что описан в данной статье остается открытый вопрос. Как распространить список баз для пользователей? Если делать установки не через GPO, а через сетевой каталог, то в *.cfg можно указать файл с которого читать список баз *.v8i. А как реализовать это в домене при использовании метода GPO? Потребуется по сути через домен каким-то образом заставить принудительно прочитать с заменой заранее подготовленный файл в %username%appdata
oaming1cv8ibases.v8i либо считать данный файл через GPO в сетевом каталоге.
(11) Столкнулись с похожей проблемой. На чистые компьютеры все компоненты ставятся, а там где был установлен только Тонкий клиент доустановить Толстый не выходит через инструкцию в этой статье. Как будто ключи игнорируются. Удалось как-то решить?