Установка и удаление платформы 1С на клиентских компьютерах удалённо через скрипт (с доменом и без)

19.02.20

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

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

Скачать файлы

Наименование Файл Версия Размер
1C8InstallAndUninstall
.zip 5,98Kb
525
.zip 1.06 5,98Kb 525 Скачать

Работа со скриптом

Для работы скрипта должен быть установлен PowerShell. Данная программа идёт в комплекте со всеми современными windows системами, а вот в WindowsXP придётся установить PowerShell отдельно.

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

Ключ "dd" (от Distribution Directory), принимает любой путь windows формата, т.е. пути вида «C:\Windows» или «\\Server\1CDistr». По указанному пути должны располагаться дистрибутивы платформы 1С, причём каждый из дистрибутивов должен быть в своей папке с номером версии или с номером версии и битность платформы 1С Предприятия, например «8.3.5.1111» или «8.3.9.1818-32» или «8.3.9.1818-64». Суфиксы битности необходимо использовать, если в одной сети существуют компьютеры с операционными системами разной битности и вы хотите поставить на 64-битную систему 64-битную платформу. Указанная папка, и все подпапки с дистрибутивами платформ, должна быть доступна для чтения пользователю, от имени которого будет работать скрипт.

Ключ "dl" (от Directory Logs), аналогично ключу "dd", принимает любой путь windows формата. В данную папку будут записываться логи выполнения скрипта. Имена файлов с логами соответствуют имени компьютера и дописываются при каждом запуске скрипта. Указанная папка должна быть доступна для записи пользователю, от имени которого будет работать скрипт. Если указанный путь недоступен или нет возможности записи, то все действия скрипта будут писаться в файл «1C8InstallAndUninstall.log», находящийся в локальной папку пользователя (примерный путь «C:\Users\Vasa\AppData\Local\»).

Ключ "ip" (от Install Parameters) отвечает за параметры установки при работе скрипта. Ключ может принимать одно из следующих значений:

  • “no” — не производить установку
  • “last” — установить последнею платформу из найденных в папке с дистрибутивами
  • “8.3.5.1111” — номер версии конкретной платформы, которую необходимо установит

Ключ "dp" (от Delet Parameters) отвечает за параметры удаления при работе скрипта. Ключ может принимать одно из следующих значений:

  • “no” — не производить удаление
  • “ael” (от all except last) — удалить все найденные на компьютере платформы, которые совпадают со всеми платформами, найденными в папке с дистрибутивами, кроме последней платформы. Важно! Данный ключ удалит только те платформы, версии которых имеются в папке с дистрибутивами платформ, если какая-то версия установлена на компьютер, но её нет в папке с дистрибутивами, то она не будет удалена.
  • “8.3.5.1111” — номер версии конкретной платформы, которую необходимо удалить
  • “all” — удалить все версии платформы 1С на компьютере. Данное значение является подавляющим и экстенсивным. Подавляющим, потому что, для работы скрипта при данном значении необходимо передать путь для записи логов, а можно не передавать даже его, все значения остальных ключей будут игнорироваться. Экстенсивными, потому что, удалены будут все продукты на компьютере хотя бы призрачно напоминающие платформу 1С.

Ключ "iod" (от Installation Options Distribution) отвечает за компоненты платформы 1С, которые будут установлены. Ключу необходимо передать значение вида «DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1», в котором можно менять 1 на 0 или обратно в зависимости какие части платформы вы хотите установить. Если данному ключу передать любое другое значение, не похожее на строку выше, то будет произведена установка всех компонент для работы системы в клиентском режиме.

  • “DESIGNERALLCLIENTS” — основной клиент и конфигуратор
  • “THINCLIENT” — тонкий клиент для клиент-серверного варианта работы
  • “THINCLIENTFILE” — тонкий клиент с возможностью работы с файловыми информационными базами

Как установить, обновить или удалить Платформу 1С, если у вас много компьютеров, бегать к каждому лень, а домена нет?

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

Хорошая новость: это надо сделать только один раз.

Для начала осуществим подготовку:

  1. Создаём 2 общедоступных папки, одну с правами на чтение для всех, а другую с правами на запись для всех. Обязательно создавайте 2 независимые папке, иначе всё может очень плохо закончиться.
  2. В папку с правами «только на чтение для всех» кладём папки с дистрибутивами, каждая из папок должна именоваться по номеру версии дистрибутива, который в ней находиться. Сюда же кладём скрипт и bat файл, который запускает скрипт.

Небольшое отступление! Зачем нам нужен bat файл для запуска PowerShell скрипта? Потому что используя bat файл мы убиваем двух зайцев:

  • По умолчанию система windows запрещает запуск любого PowerShell скрипта из соображения безопасности, поэтому bat файл будет сначала разрешать запуск скрипта, а после его работы снова запрещать.
  • В bat файле можно менять параметры запуска скрипта, не редактируя сам файл скрипта меняя установленные в него значения по умолчанию.

Теперь начнём настраивать локальные компьютеры пользователей. В отсутствии домена предполагается, что все пользователи работают под локальными учётными записями с правами «Пользователи», а для административных действия имеется учётная записи с правами «Администраторы».

  1. Входим в систему на локальном компьютере под именем пользователя с правами «Администраторы»
  2. Жмём Win+R и вводим Taskschd.msc, открывается планировщик заданий
  3. Создаём задание по ссылке справа (обратите внимание на ссылки «Подключиться к другому компьютеру» и «Импортировать задачу» для самых больших ленивцев).
  4. Даём осмысленное название заданию. Необходимо обязательно установить: «Выполнять для всех пользователей» и «Выполнять с наивысшими правами»

  5. Переходим на вкладку «Триггеры» и нажимаем «Создать». Тут настраиваются параметры, при каких условиях будет запускаться скрипт. Можно настроить, чтобы скрипт запускался каждый час в рабочее время (если скрипту нечего делать, т.е. уже всё установлено и удалено, то его работа ни как не скажется на производительности). Другой популярный вариант запуска при включении компьютера, обращаю ваше внимание что имеются в понятие «При входе в систему» и «При запуске», в первом случае скрипт может не отработать, т.к. пользователь от имени которого запускается скрипт отличен от пользователя работающего на данном компьютере, проще говоря выбирайте вариант «При запуске»

  6. Переходим на вкладку «Действия» и нажимает «Создать». Нажимаем «Обзор» и выбираем bat файл. Дальнейшие вкладки можно оставить по умолчанию.

Как установить, обновить или удалить Платформу 1С, если имеется домен?

Всё проще некуда

    1. Создаём группу, в которую включаем все интересующие нас компьютеры. Очень важно чтобы в группу входили именно компьютеры, а не пользователи которые за ними сидят, т.к. для работы скрипту необходимы повышение права, которых нет у пользователя.
    2. Создаём 2 папки, к одной даём доступ на чтение ранее созданной группе, а второй на запись. В первую кладём дистрибутивы 1С (смотри выше), а во вторую будут писаться логи работы скрипта.
    3. Открываем оснастку «Управление групповой политикой»
    4. Создаём или изменяем существующую политику, направленную на ранее созданную группу компьютеров.
    5. Идём «Конфигурация компьютера» - «Политики» - «Конфигурация Windows» - «Сценарии (запуск/завершение)» – «Автозагрузка».

    6. Добавляем новый сценарий. Обратите внимание, что путь до сценария должен быть сетевым, а не локальным. Можно добавить сценарий как bat файл, так и напрямую PowerShell. Всё зависит от вашего парка компьютеров и желания.

    7. Всё.

Примечание

  • Работоспособность скрипта проверена в следующих системах: Windows 7 (x86, x64), Windows 8.1 (x86, x64), Windows 10 (x86, x64) со всеми обязательными и не обязательными обновлениями на 2016-11-10.
  • Если вас не устраивает задержка при срабатывание скрипта в домене, то необходимо установить параметр «Configure Logon Script Delay» в «0». Параметр можно найти: Computer Configuration > Administrative Templates > System > Group Policy > Configure Logon Script Delay (Конфигурация компьютера > Политики > Административные шаблоны > Система > Групповая политика > Настроить задержку сценария входа). Большое спасибо blackhole321 за данную информацию.

upd:2015-12-07

  1. Полностью переписан способ обхода каталогов с платформой. К данной части кода было больше всего нареканий, не у всех данная часть отрабатывала, а у некоторых отрабатывала неправильно. Теперь всё работает корректно, т.к. используются только самые простые конструкции для обхода директории с дистрибутивами.
  2. Полностью переписана часть поиска последнего (старшего) дистрибутива в папки с дистрибутивами. Теперь это нормальный понятный код, а не ужас, который был ранее.
  3. Поменялись между собой части кода, теперь скрипт пытается в первую очередь поставить платформу, а потом всё остальное.
  4. Дописано много различных проверок чтобы избежать странного поведения или лишних попыток установить платформу. В лог файле теперь больше информации о работе скрипта.

upd:2016-11-21

  1. Изменена логика работы скрипта. Теперь проверяется установка платформы и в случае отсутствия устанавливаемой платформы на клиентском компьютере скрипт прекращает работу.
  2. Добавлена функциональность позволяющая в сети с компьютерами разной битности устанавливать 64-битную платформу на 64-битные системы. Для работы данного функционала папки с платформами должны быть вида "Х.Х.Х.Х-32" и "Х.Х.Х.Х-64".

upd:2019-12-12

  1. В связи с выходом платформы 8.3.16.*, в которой добавился msi файл для Windows XP, изменён поиск файла msi. Это не говорит о том что в Windows XP данный скрипт будет работать, скорее наоборот, теперь он точно не будет работать в этой операционной системе.
  2. Теперь перед установкой платформы устанавливается Microsoft Visual C++ Redistributable, если соответствующий файл имеется в папке с устанавливаемой платформой.

upd:2020-01-23

  1. Исправлены некоторые ошибки.

установка через скрипт без домена в домене

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2756    11    1    

30

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    3243    10    1    

31

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177340    1070    0    

846

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

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

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

14400 руб.

29.04.2020    27144    78    146    

59

"Менеджер потоков 2.1": УПП: "Восстановление партий"

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

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11706    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31040    31    18    

47

Система хранения присоединенных файлов в томах на диске

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

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

4200 руб.

10.11.2015    61228    87    59    

72

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10893    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. EugeneBespalov 22.10.14 09:35 Сейчас в теме
Я понимаю что можно и bat, но всё же логичнее было бы говорить и использовать cmd, всё равно ваш скрипт в DOS не будет работать.
2. LobodaYu 27.10.14 10:25 Сейчас в теме
при выполнении скрипта выдает ошибку:
Неверная числовая константа: 1.
строка:1 знак:2
+ 1 <<<< C8InstallAndUninstall.ps1
+ CategoryInfo : ParserError: (1:StecordException
+ FullyQualifiedErrorId : BadNumericConstant
3. LobodaYu 27.10.14 10:31 Сейчас в теме
Помогите разобраться
Прикрепленные файлы:
4. LobodaYu 27.10.14 11:11 Сейчас в теме
--------------------------------------------------------------------------------
POWERSHELL EXCEPTION
EXCEPTION TYPE:System.Management.Automation.ParameterBindingException
MESSAGE:Не удается найти параметр, соответствующий имени параметра "Directory".
POSITION:
строка:259 знак:64
+ $AllPlatforms = (Get-ChildItem -Path $DistribDir -Directory <<<< | Where-Object {$_.Name -match $RegExpPatternNameFolderDistrib}).Name
--------------------------------------------------------------------------------
5. Dragonim 139 27.10.14 11:44 Сейчас в теме
(4) Судя по всему у вас нет папок с дистрибутивами в директории где они должны быть.

Как я понимаю командлет Get-ChildItem согласно параметру -Directory пытается найти хоть какие-то папки по пути $DistribDir (это параметр -dd из описания скрипта), но там ничего нет или имеются только файлы. Вот на отсутствие папок в директории -dd скрипт и ругается.

Вторая ошибка должна уйти когда исправите первую.

Читайте внимательно описание параметров скрипта и что где должно находиться.
6. LobodaYu 27.10.14 12:56 Сейчас в теме
Все папки вроде на месте (прикладываю скан)
Прикрепленные файлы:
7. LobodaYu 27.10.14 12:59 Сейчас в теме
В скрипте заменил пути (\\server) на свои (\\srv2012) и сохранил с кодировкой 1251 ANSI
8. LobodaYu 27.10.14 13:04 Сейчас в теме
В скрипте заменил пути (\\server) на свои (\\srv2012) и сохранил с кодировкой 1251 ANSI
И в описаниях командлета Get-ChildItem не нашел параметра -Directory (Get-ChildItem [-Path <string[]>] [-Filter <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>]
Get-ChildItem -LiteralPath <string[]> [-Filter <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>])
9. LobodaYu 27.10.14 15:49 Сейчас в теме
в логе пишет
---------------------------------------------------------------------------------
2014.10.27 15:40:51 Начало работы скрипта
2014.10.27 15:40:53 Последняя (старшая) платформа уже установлена.
2014.10.27 15:40:53 Окончание работы скрипта
---------------------------------------------------------------------------------
2014.10.27 15:40:53 Последняя (старшая) платформа уже установлена.
2014.10.27 15:40:53 Окончание работы скрипта
---------------------------------------------------------------------------------
но 1С не установлена. Подскажите, что еще посмотреть для решения этой задачи?
посмотрел в отладчике PowerGUI 259 строчка не обрабатывается и $AllPlatforms не присваивается массива из имен папок.
но если запустить из powerShell то выдает:
Get-ChildItem -Path \\SRV2012\1CDistr


Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 27.10.2014 9:10 8.3.5.1231
-a--- 27.10.2014 14:07 531 1C8InstallAndUninstall.bat
-a--- 27.10.2014 16:18 19223 1C8InstallAndUninstall.ps1
11. Dragonim 139 28.10.14 09:25 Сейчас в теме
(9) Если скрипт отработал с непредвиденной ошибкой, то смотреть на логи не имеет смысла, вероятнее всего там тоже имеется ошибка

(10) с этой директивой -Directory вообще не понятно. Она имеется у меня в справке WPS ISE на одной системе и отсутствует в другой, хотя там и там установлен Win 8.1 Pro, по онлайн ссылке http://go.microsoft.com/fwlink/p/?linkid=290488 данная директива отсутствует.

Подытожим, я переписал данную строку.

Я уверен что это не последняя ошибка и недочёт скрипта, поэтому создал репозиторий GitHab.

https://github.com/Dragonim/1C8InstallAndUninstall.git
10. LobodaYu 27.10.14 19:30 Сейчас в теме
Командлет Get-ChildItem c параметром -Directory удалось найти в третьей версии PowerShell. (посмотреть версию - $PSVersionTable). Скорее всего на более низких версиях данный скрипт не работает и на XP он не запустится.
SYNTAX
Get-ChildItem [-Path <string[]>] [-Filter <string>] [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Force] [-Name] [-UseTransaction] [-Attributes <FlagsExpression[FileAttributes]>] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]
Get-ChildItem [-Filter <string>] -LiteralPath <string[]> [-Include <string[]>] [-Exclude <string[]>] [-Recurse] [-Force] [-Name] [-UseTransaction] [-Attributes <FlagsExpression[FileAttributes]>] [-Directory] [-File] [-Hidden] [-ReadOnly] [-System] [<CommonParameters>]

При установке PowerShell 3.0 все тут-же запустилось и установилось! Автору огромное спасибо за его разработку!
12. LobodaYu 28.10.14 10:20 Сейчас в теме
С новой версией скрипта работает и на второй версии PowerShell.
Есть пожелание расширить данные ключа "iod" для установки компонентов:
DESIGNERALLCLIENTS – все клиенты и конфигуратор.
THINCLIENT – тонкий клиент для клиент-серверного варианта работы.
THINCLIENTFILE – тонкий клиент с возможностью работы с файловыми информационными базами.
SERVER – сервер «1С:Предприятия». Если программа установки запускается из программы запуска, то сервер будет установлен как приложение.
WEBSERVEREXT – компоненты расширения для веб-сервера.
CONFREPOSSERVER – сервер хранилища конфигураций «1С:Предприятия».
SERVERCLIENT – компоненты для администрирования кластера серверов «1С:Предприятия».
CONVERTER77 – конвертер информационных баз из версии «1С:Предприятия 7.7».
LANGUAGES – список языков интерфейса для установки

Как бы также красиво раздать пользователям список баз данных в домене?
13. Dragonim 139 28.10.14 11:02 Сейчас в теме
(12) с технической стороны нет ни какой проблемы в расширении, но вот с логической это не имеет ни какого смысла. Зачем на локальных компьютерах ставить серверные компоненты? Вот язык можно менять, но это только для локальных задач, я не знаю не одного человека который бы с такими задачами сталкивался.

Список баз пользователя находиться в файле ibases.v8i в каталоге C:\Users\Vasa\AppData\Roaming\1C\1CEStart

По поводу общих баз:
1. Берём файл 1cestart.exe из каталога C:\Program Files (x86)\1cv8\common
2. Кладём его в сетевой каталог, а рядом кладём 2 файла 1cescmn.cfg и bases.v8i
3. 1cescmn.cfg содержит в строки
CommonCfgLocation=\\server\1c\1cescmn.cfg
CommonInfoBases=\\server\1С\bases.v8i

4. bases.v8i содержит название и все параметры базы
5. всем пользователям ставим вместо ярлыка 1С на рабочий стол ярлык к файлу 1cestart.exe в общей папке

в интернете много об этом описано, вот одна из статей http://habrahabr.ru/post/179405/
14. h00k 50 04.11.14 04:30 Сейчас в теме
(13) Dragonim
5. всем пользователям ставим вместо ярлыка 1С на рабочий стол ярлык к файлу 1cestart.exe в общей папке

Мда, печаль... а начали не так уж и плохо...

(12) LobodaYu
Как бы также красиво раздать пользователям список баз данных в домене?

Пример заполнения общих баз из ibcommon.v8i расположенного в DistrFolder. Код достаточно простой, прикрутить можно к любому логон скрипту.
'Добавление списка общих баз
Sub SetCommonBase

	Dim WshShell, FSO, OsVer, File1CEStart, ReadStr(),obj1CEStart,i,k,strNextLine

	Set WshShell = CreateObject("WScript.Shell")
	Set FSO = WScript.CreateObject("Scripting.FileSystemObject")

	OsVer = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion")

	'Проверка ОС
	if OsVer = "5.0" or OsVer = "5.1" or OsVer = "5.2" then

		'Windows 2000 or XP or 2003
		File1CEStart = WshShell.ExpandEnvironmentStrings("%ALLUSERSPROFILE%") & "\Application Data\1C\1CEStart\1CEStart.cfg"

	Else

		'Windows Vista or 7 or 2008
		File1CEStart = WshShell.ExpandEnvironmentStrings("%ALLUSERSPROFILE%") & "\1C\1CEStart\1CEStart.cfg"
	end if

	'File1CEStart – Файл 1CEStart.cfg содержит настройки, которые используют программы запуска 1CEStart.exe и 1Cv8s.exe, клиентские приложения 1Cv8.exe и 1Cv8c.exe

	'Проверяем наличие существует ли файл File1CEStart
	If (fso.FileExists(File1CEStart)) Then

		'Читаем из файла в массив
		Set obj1CEStart=fso.OpenTextFile(File1CEStart, 1,false,-1)
		
		i=0
		Do Until obj1CEStart.AtEndOfStream
			Redim Preserve ReadStr(i)
			strNextLine = obj1CEStart.Readline

			'Проверяем CommonInfoBases если есть то пропускаем
			If Instr(1,strNextLine,"CommonInfoBases=")=0 then
				ReadStr(i) = strNextLine
				i=i+1
			End if
		Loop

		obj1CEStart.Close
	
		Redim Preserve ReadStr(i)
		ReadStr(i)="CommonInfoBases=" & DistrFolder & "ibcommon.v8i"

		'Записываем из массива в файл
		Set obj1CEStart=fso.OpenTextFile(File1CEStart, 2,true,-1)
		
		For k=0 to i
			obj1CEStart.WriteLine ReadStr(k)
		Next
			obj1CEStart.Close
	End If

End Sub
Показать


П.С.: На 8.3 общие базы можно раздать еще красивше - веб-сервисом.
15. loekyn 19 17.11.14 16:59 Сейчас в теме
Что бы исключить ошибку с ключем -Directory переписал фрагмент вот так:

$AllPlatforms = (Get-ChildItem -Path $DistribDir | Where-Object {$_.Name -match $RegExpPatternNameFolderDistrib})
$Arr = $AllPlatforms.Clone()
For ($i = 0; $i -lt $Arr.Length; $i++) {
$Arr[$i] = ($Arr[$i]).Name + '.' + ($Arr[$i]).Name
}
Все работает.

У меня загвоздка в другом: хочу устанавливать именно сервер, а не клиента. С 32 проблем нет, а вот 64 - никак не идет. Что нам надо в iod подставлять? Смотрел через Орку, никаких ключей на эту тему там вроде нет. Совсем без ключей не устанавливает ничего, хотя что то долго делает.
16. Dragonim 139 18.11.14 08:14 Сейчас в теме
(15) Данная проблема была исправлена, смотри новый скрипт на https://github.com/Dragonim/1C8InstallAndUninstall.git

Я ни когда не задавался идеей массовой установки серверной части, поэтому данной возможности в скрипте не предусмотрено. Пожалуйста расскажите вашу причину в необходимости массовой установки серверной части, возможно я чего-то не знаю.

P.S.: (12) в данному сообщении описаны все возможные ключи установки, они задаются аналогично ключу "iod", кроме языка, он указывается согласно короткой нотации (en, ru и т.д.). Все эти команды описаны в документации по 1С Предприятию 8.3, Руководство администратора, Приложение 3. Описание и расположение служебных файлов, файл 1cestart.cfg.

Если вы хотите чтобы все эти параметры работали в скрипте, то необходимо убрать проверку ключа "iod" в функции InstallPlatform
17. loekyn 19 18.11.14 09:21 Сейчас в теме
Все что надо я в скрипте изменил. Возможность установки серверной части в скрипте есть - надо только ставить подходящие значения в iod.
Необходимость установки серверной части вызвана желанием полностью автоматизировать процесс обновления релизов 1С от конфигураций до платформы. На текущий момент не хватает сущего пустяка: как установить сервер 64. Что там в iod надо подставить? Нигде не нашел для сервера 64.
18. EugeneBespalov 13.01.15 10:55 Сейчас в теме
(17) loekyn, какая жуть :) ставить платформу скриптом, это же бесконтрольно. обновление платформы все равно делает ответственный человек.
19. EugeneBespalov 13.01.15 12:47 Сейчас в теме
скрипт взял с гитхаба, что через cmd что напрямую пишет одно и то же:
1Cinst.ps1 : Имя "1Cinst.ps1" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите
попытку.
строка:1 знак:1
+ 1Cinst.ps1 -dd '\\set-1c\platforms' -dl '\\set-1c\platforms\Logs' -dp 'ael' -ip ...
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (1Cinst.ps1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
---
ось 8.1, админ домена
20. Dragonim 139 13.01.15 13:03 Сейчас в теме
(19)
1Cinst.ps1 ??? Не вижу такого файла на ГитХабе.

Видимо вы правили скрипты под себя и выставили некорректные параметры или изменили ту часть скриптов в которую не стоит лезть без чёткого понимания происходящего.
21. EugeneBespalov 14.01.15 05:32 Сейчас в теме
(20) я изменил название файла? не люблю длинные бессмысленные названия, когда можно назвать коротко. Могу переименовать назад, результат не изменится. Содержимое правил только в контексте переменных:
param([string]$dd = "\\set-1c\platforms",
[string]$dl = "\\set-1c\platfoms\Logs",
[string]$ip = "last",
[string]$dp = "ael",
[string]$iod = "DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1")
cmd тоже изменил под свои переменные и под название скрипта:
@powershell "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-1c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'

прям сейчас запустил cmd не меняя содержимого и ничего не меняя в целом по отношению ко вчерашнему запуску, ошибка другая:
\\set-1c\platforms\1Cinst.ps1 : Невозможно загрузить файл \\set-1c\platforms\1Cinst.ps1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies п
о адресу http://go.microsoft.com/fwlink/?LinkID=135170.
строка:1 знак:1
+ \\set-1c\platforms\1Cinst.ps1 -dd '\\set-1c\platforms' -dl '\\set-1c\platforms\L ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : Ошибка безопасности: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

проверяем разрешение на запуск скриптов
PS C:\Users\xxx> get-executionpolicy
Restricted
что логично, на вин8.1 это по дефолту, но тогда получается не выполняется строка из cmd:
@start /wait powershell "Set-ExecutionPolicy RemoteSigned -Force"
давайте запустим ее руками:
PS C:\Users\xxx> start /wait powershell "Set-ExecutionPolicy RemoteSigned -Force"
Start-Process : Не удается найти позиционный параметр, принимающий аргумент "Set-ExecutionPolicy RemoteSigned -Force".
строка:1 знак:1
+ start /wait powershell "Set-ExecutionPolicy RemoteSigned -Force"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~­~~~~
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand

выполним команду PS отдельно от start:
PS C:\Users\xxx> Set-ExecutionPolicy RemoteSigned -Force
Set-ExecutionPolicy : Отказано в доступе к разделу реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds­
\Microsoft.PowerShell". Чтобы изменить политику выполнения для области (LocalMachine), используемой по умолчанию, запустите Windows PowerShell с параметром "Запуск от имени администратора". Чтобы изменить политику выполнения для текущего пользователя, выполните "Set-ExecutionPolicy -Scope CurrentUser".
строка:1 знак:1
+ Set-ExecutionPolicy RemoteSigned -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyComma
nd

давайте исправим так, чтобы он делал для текущего пользователя :
PS C:\Users\xxx> Set-ExecutionPolicy RemoteSigned -Force -Scope CurrentUser

отработала нормально. теперь запустим файл скрипта:
PS C:\Users\xxx> "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-1c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'
строка:1 знак:33
+ "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-1c\platforms ...
+ ~~~
Непредвиденная лексема "-dd" в выражении или операторе.

и еще куча подобных ошибок, запустим так:
PS C:\Users\xxx> start "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'
Start-Process : Не удается найти параметр, соответствующий имени параметра "dd".
строка:1 знак:39
+ start "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-1c\pla ...
+ ~~~
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand

давайте запустим без параметров, благо в коде есть параметры по умолчанию:
PS C:\Users\xxx> start "\\set-1c\platforms\1Cinst.ps1"

скрипт открылся в блокноте. у меня больше нет вариантов что и как пнуть.
22. Dragonim 139 14.01.15 07:53 Сейчас в теме
(21)
Вы не написали результат выполнения последней команды.
Вы изменили политику безопасности запуска скрипта для данного пользователя, это не позволит скрипту выполнить установку 1С.

попробуйте выполнить команду cd \\set-1c\platforms\ в PowerShell от текущего пользователя.

Есть подозрения, что у вас проблема с правами доступа. Для сетевых папок должно быть соблюдено 2 разрешения, первое это настройки прав доступа на уровне доступа к папке по сети, второе это настройки прав доступа на уровне файловой системы. Проверти права доступа к папке во вкладке Доступ и Безопасность соответственно. Если они выставлены правильно, то перезапишите все права доступа на уровне файловой системы для всех вложенных объектов.
23. EugeneBespalov 14.01.15 08:30 Сейчас в теме
(22) нет результата выполнения последней команды, файл ps1 просто открылся в Блокноте.
Политику я не менял, я просто в ручном режиме выполнил команды из вашего же CMD, но так как изменение политики не работало не от имени администратора, то я попробовал изменения сделать для текущего пользоватля (текущий пользователь является администратором домена, что эквивалентно правам локального администратора.

"попробуйте выполнить команду cd \\set-1c\platforms\ в PowerShell от текущего пользователя. "
попробовать могу, но проблемы с этим не будет, так как у меня как у администратора домена там полный доступ. да и на данный момент эта папка используется в групповой политике для распространения 1С через механизм, описанный в статье http://infostart.ru/public/296227/ , поэтому настройки прав там сделаны корректно. Для верности проверил всё.

Через cmd не работает, так как первой же командой не может включить возможность запуска скриптов.
Так как я сам очень далек от PowerShell, то ориентируюсь например на эту статью http://pk-help.com/server/how-to-run-a-script-powershell/
Для теста запустим PS от имени админа и попробуем запустить скрипт:
PS C:\Windows\system32> \\set-1c\platforms\1cinst.ps1
False
False
False

программа установилась, захожу в панель управления, программы и компоненты, удаляю (надо сказать что значит он просто как 1С: Предприятие, без указания номера версии), запуска еще раз:
PS C:\Windows\system32> \\set-1c\platforms\1cinst.ps1
False

отличие только в количестве False на выходе. Все поставилось снова.
В общем нужно разобраться почему не работает включение запуска скриптов и как обойтись без запуска через start.
24. Dragonim 139 14.01.15 09:08 Сейчас в теме
(23)
Вы не только далеки от PowerShell но и от понимания работы Windows.

По команде start "\\set-1c\platforms\1Cinst.ps1" открывается блокнот, потому что это стандартная программа для открытия файла с расширением ps1, чему можно убедиться двойным кликом на фале с данным расширением. Данная команда в PS соответствует двойному клику по файлу.

При запуске PS от имени админа попробуйте выполнить команду Set-ExecutionPolicy RemoteSigned -Force, а после команду Set-ExecutionPolicy Restricted -Force. Если ни каких ругательств не будет, то выполните файл 1C8InstallAndUninstall.cmd от имени администратора и у вас всё заработает.

При установке 1С из скрипта номер версии указывается в столбце Версия.

"False" это выводятся результаты работы некоторых строк в скрипте, что не говорит о результате работы скрипта. Результат работы скрипта можно увидит в логе.
25. EugeneBespalov 14.01.15 09:18 Сейчас в теме
(24)
"Вы не только далеки от PowerShell но и от понимания работы Windows."
не будем начинать со взаимных оскорблений, я прекрасно понимаю как работает Start, я ради вас, чтобы вы видели все мои действия сделал все возможные варианты использования и сказал о результатах. Если хотите могу молчать, тогда вам придется проявить телепатические способности.

"При запуске PS от имени админа попробуйте выполнить команду Set-ExecutionPolicy RemoteSigned -Force, а после команду Set-ExecutionPolicy Restricted -Force. Если ни каких ругательств не будет, то выполните файл 1C8InstallAndUninstall.cmd от имени администратора и у вас всё заработает."
PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned -Force
PS C:\Windows\system32> Set-ExecutionPolicy Restricted -Force
Set-ExecutionPolicy : Оболочка Windows PowerShell успешно обновила вашу политик
у выполнения, но данный параметр переопределяется политикой, определенной в бол
ее конкретной области. В связи с переопределением оболочка сохранит текущую пол
итику выполнения "RemoteSigned". Для просмотра параметров политики выполнения в
ведите "Get-ExecutionPolicy -List". Для получения дополнительных сведений введи
те "Get-Help Set-ExecutionPolicy".
строка:1 знак:1
+ Set-ExecutionPolicy Restricted -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], Sec
urityException
+ FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Com
mands.SetExecutionPolicyCommand

А зачем нужна установка от имени админа? Руками я могу и без PS установить.

"При установке 1С из скрипта номер версии указывается в столбце Версия."
это понятно, пишу о различиях с обычной установкой.



26. Dragonim 139 14.01.15 09:28 Сейчас в теме
(25)
Ошибка при выполнении Set-ExecutionPolicy Restricted -Force связана с тем что вы выполняли ранее команду Set-ExecutionPolicy RemoteSigned -Force -Scope CurrentUser. Выполните команду Set-ExecutionPolicy Restricted -Force -Scope CurrentUser, а после Set-ExecutionPolicy Restricted -Force. Ошибка должна пропасть.

"А зачем нужна установка от имени админа? Руками я могу и без PS установить." При установке руками без явного указания запустить установочный файл от имени Администратора или установки из среды запущенной от имени Администратора, во всех системах выше Windows XP, вам придется повышать права во время установки. В это нет отличий.

Запускать файл 1C8InstallAndUninstall.cmd от имени Администратора надо по 2 причинам, во-первых чтобы сработали команды Set-ExecutionPolicy RemoteSigned -Force и Set-ExecutionPolicy Restricted -Force, а во-вторых чтобы произвести установку 1С. Для эксперимента попробуйте выполнить Set-ExecutionPolicy RemoteSigned -Force в PS от имени Администратора, а после просто запустить PS без повышения привилегий и запустить скрипт по установке 1С. Не забудьте закрыть возможность запуска скриптов выполнив Set-ExecutionPolicy Restricted -Force в PS от имени Администратора.
27. EugeneBespalov 14.01.15 10:08 Сейчас в теме
допустим я все сделал и все работает, как это исправит ошибку:
PS C:\Users\xxx> start "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'
Start-Process : Не удается найти параметр, соответствующий имени параметра "dd".
строка:1 знак:39
+ start "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-1c\pla ...
+ ~~~
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
28. Dragonim 139 14.01.15 10:16 Сейчас в теме
(27)
Я не зря ранее писал про команду start "\\set-1c\platforms\1Cinst.ps1" которая открывала файл в блокноте. Вы допускаете ту же ошибку.

start "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'

Данной командой из PS работать не будет. Данная команда в PS превращается в:

Start-Process -FilePath "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'

Разумеется у командлета нет параметров -dd, -dl, -dp, -ip, -iod о чём сообщает полученная вами ошибка.

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

Если очень сильно охота запустить скрипт из PS то можете попробовать команду

Start-Process -FilePath powershell.exe -ArgumentList "'\\set-1c\platforms\1Cinst.ps1' -dd '\\set-1c\platforms' -dl '\\set-c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'"
29. EugeneBespalov 14.01.15 10:29 Сейчас в теме
(28) понял где туплю, я в FAR нажимаю стрелку вверх и выбираю не ту строку, конечно нужно запускать

powershell "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-1c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'

которая работает

---------------------------------------------------------------------------------
2015.01.14 13:19:42 Начало работы скрипта
2015.01.14 13:19:50 Последняя (старшая) платформа 8.3.5.1383 уже установлена.
2015.01.14 13:19:50 Окончание работы скрипта
---------------------------------------------------------------------------------

но это после включения разрешения на запуск руками.
но будет ли работать включение разрешения на запуск скрипта от имени системной учетки при запуске из групповой политики? для локального варианта понятно что нужно пользоваться админом, а через групповые? просто у меня в политиках этот скрипт стоит со вчерашнего для а в логах пусто.
30. Dragonim 139 14.01.15 10:37 Сейчас в теме
(29)

Как установить, обновить или удалить Платформу 1С, если имеется домен? Читайте статью, всё описное в ней проверено и работает.
31. EugeneBespalov 14.01.15 12:42 Сейчас в теме
(30) я хз, политика отрабатывает, ошибок нет, лог (ваш) пустой, эксперимент с cmd не давал картины о правильной выполнимости через политики, он работал только при запуске руками.
в статье нет ни слова о таких проблемах.

я думаю все же не сработало включение выполнения скриптов.
32. EugeneBespalov 14.01.15 13:21 Сейчас в теме
(30) всё работает. причина была весьма странной - лог файл обновляется значительно позже загрузки самого компьютера (мин 5-7). вообще для теста добавил пару строк в cmd:
@echo 1 >>"\\set-1c\platforms\Logs\text.log"
@start /wait powershell "Set-ExecutionPolicy RemoteSigned -Force"
@echo 2 >>"\\set-1c\platforms\Logs\text.log"
@powershell "\\set-1c\platforms\1Cinst.ps1" -dd '\\set-1c\platforms' -dl '\\set-1c\platforms\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'
@echo 3 >>"\\set-1c\platforms\Logs\text.log"
@start /wait powershell "Set-ExecutionPolicy Restricted -Force"
@echo 4 >>\\set-1c\platforms\Logs\text.log
@echo --- >>"\\set-1c\platforms\Logs\text.log"

сделал gpupdate /force и в ребут. после ребута появился файл лога от echo, захожу в лог скрипта, а там последний ребут до модификации cmd. удивился. много думал. отвлекся на другие дела. снова открываю лог скрипта, а там свежая информация об отработанном скрипте. пока это объяснить не могу, какая-то мистика. завтра будут логи по другим машинам, посмотрим. на машинах с XP не отработает, я там еще PS не ставил.
спасибо за скрипт и что потратили время на разбор.
33. EugeneBespalov 15.01.15 05:47 Сейчас в теме
сегодня смотрю результаты работы скрипта:
---------------------------------------------------------------------------------
2015.01.15 07:39:54 Начало работы скрипта
2015.01.15 07:39:56 Последняя (старшая) платформа уже установлена.
2015.01.15 07:39:56 Окончание работы скрипта
---------------------------------------------------------------------------------

и в голову пришла мысль, что было бы неплохо иметь в логе номер версии продукта. полез в исходник, вижу:
WriteLog $LogFile "Последняя (старшая) платформа $LastDistr уже установлена."
вроде как должна версия выводиться. проверяю все логи всех машин - везде так. И тут звонит телефон, чел вышел из отпуска, жалуется что 1С у него не запускается, мол версии не совпадают, смотрю логи, а у него результат работы скрипта показывает что старшая платформа уже установлена. Пошел в тот кабинет, там еще два компа выключены и без юзеров, включил, скрипт отработал, в логах написал что старшая версия уже установлена, но по факту это не так. Одна машина Windows 7, две - XP, все системы обновлены через WSUS, отдельно пробовал поставить KB с PS 2.0 - говорит что уже есть в системе. Где может быть косяк?
34. Dragonim 139 15.01.15 09:58 Сейчас в теме
(33)
Попробуйте передать скрипту параметр ip с конкретной версией 1С. Посмотрите на логи.
35. EugeneBespalov 15.01.15 10:32 Сейчас в теме
---------------------------------------------------------------------------------
2015.01.15 13:24:07 Начало работы скрипта
2015.01.15 13:24:07 Установка 1С:Предприятие, версия 8.3.5.1383
=== Начало записи журнала: 15.01.2015 13:24:08 ===
Ошибка 1945. Недостаточно прав для завершения повторного объявления этого продукта. Для повторного объявления необходимо, чтобы локальная системная учетная запись выступила инициатором вызова API MsiAdvertiseScript, например через групповую политику развертывания приложений.
=== Завершение записи журнала: 15.01.2015 13:24:09 ===
=== Начало записи журнала: 15.01.2015 13:24:09 ===
=== Завершение записи журнала: 15.01.2015 13:24:10 ===
2015.01.15 13:26:26 Окончание работы скрипта
---------------------------------------------------------------------------------
добавлю что опять ситуация с появлением лога повторяется, то есть комп загрузился, я залогинился, зашел в папку с логами, а там пусто. подождал примерно 3 минуты и только потом появился лог. значит ли что установка программы идет в фоне когда юзер уже залогинился и не вызовет ли это проблем в работе, например юзер утром пришел, залогинился, запускает 1С а у него ошибка несовпадения версий?
36. Dragonim 139 15.01.15 11:22 Сейчас в теме
(35)
Скрипт устанавливается не во время логирования пользователя, а после включения компьютера. Попробуйте включить компьютер без входа под конкретного пользователя, через некоторое время скрипт отработает.

Задержка при запуске скрипта это нормальное явление. Пользователь приходит утром, логиниться, пытается зайти в 1С, у него не получается, уходит наливать себе чай, возвращается, заходит в 1С, всё ОК.
37. EugeneBespalov 16.01.15 04:50 Сейчас в теме
(36) я знаю разницу между политикой для пользователя и для компьютера.

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

как вы себе это представляете на практике?

Задержка при запуске скрипта это нормальное явление. Пользователь приходит утром, логиниться, пытается зайти в 1С, у него не получается, уходит наливать себе чай, возвращается, заходит в 1С, всё ОК.

Вы наверное очень мало работали с пользователями. Никто не пойдет пить чай, а если и пойдет, то повторно никто ничего запускать не будет. Просидят пол дня, а потом с визгами "у меня 1с пол дня не работает" будут названивать. И зачем мне такая автоматизация? :)

В текущей реализации это нерабочая схема. Вам нужно было все нюансы работы скрипта озвучить в статье, я бы, например, тогда не тратил на это время.
38. Dragonim 139 16.01.15 22:02 Сейчас в теме
(37)
Задержка при запуске скрипта в домене при групповой политики на группу компьютеров это поведение AD, а не особенности работы скрипта. Если вы знаете как с этим бороться то просветите нас всех, мы будем благодарны. Для меня это не является проблемой, т.к. я устанавливаю новую платформу за несколько дней до её установки на сервере, а мои пользователи на предложение подождать 10 минут и попробовать снова реагируют абсолютно нормально если такая просьба поступает 1 раз в месяц или реже.

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


У хорошего админа всегда так, очень долго запрягает, а после, очень быстро едет, это называется автоматизация. В данном случае за вас сделана большая часть работы по обновлению 1С Платформы и выложена в виде скрипта. Если вы хотите сделать эту работу или подобную сами, или бегать от компьютера к компьютеру после работы устанавливая платформу 1С в ручном режиме, я не в праве вам мешать.

Хочу напомнить пользователям данной теме, что я не прошу денег за свою работу. Если у вас имеется желание отблагодарить автора, то вы можете скачать скрипт за 1 $m или перевести автору более крупную сумму $m, если у вас нет желание благородить автора или нет такой возможности то вы можете забрать скрипт с гит хаба. Если вы хотите дополнить скрипт или предложить хорошую идею то я с удовольствием вас прочту, если хотите обругать автора и/или скрипт, то поставьте теме минус и удалить скрипт со своего компьютера. Помните, что проделанная работа другими людьми выкладывается в отрытый доступ бесплатно и никто вам ни чего не обязан.
40. EugeneBespalov 17.01.15 11:12 Сейчас в теме
(38) у меня платформа обновляется через АД в автоматическом режиме, никто никуда не бегает, никакие скрипты никто не ждет и чай не пьет. Ваш скрипт изучаю в целях самообразования, так как не знаком с PS, подобная схема привлекла внимание так как на ее основе мог бы делать другие вещи. Как показала практика - не все так красиво как хотелось бы. Никто не заставляет вас работать, но если уж написали - будьте добры не отказываться. Платить за что-то я привык, если оно работает как требуется. Вы не озвучили много допущений в работе скрипта, мне это не нравится и я это озвучил.
Установка платформы по срокам - не моя забота, мне дают релиз и говорят что с понедельника она в работе, создаю пакет и обновляю политику, все. Утром все в работе. Сидеть на телефоне и слушать что у кого-то что-то не работает не входит в мой список развлечений.
42. Dragonim 139 17.01.15 13:57 Сейчас в теме
(40)
у меня платформа обновляется через АД в автоматическом режиме, никто никуда не бегает, никакие скрипты никто не ждет и чай не пьет.


Я с большим удовольствием прочту вашу статью об автоматизации процесса установки/удаления/обновления платформы 1С в АД.
45. EugeneBespalov 19.01.15 09:10 Сейчас в теме
(42) эта статья есть, она не моя, с нее я и пришел на вашу статью.
39. blackhole321 1303 17.01.15 01:10 Сейчас в теме
(37) EugeneBespalov
На какой версии ОС наблюдаются задержки?
В Windows 2012 R2 и Windows 8.1 время задержки выполнения logon скриптов по умолчанию составляет 5 минут. Вы можете изменить это поведение изменив значение параметра GPO
Computer Configuration > Administrative Templates > System > Group Policy > Configure Logon Script Delay в 0, чтобы запретить задержку.
http://blogs.technet.com/b/platformspfe/archive/2014/03/08/windows-8-1-logon-script-delay-group-policy-setting.aspx
41. EugeneBespalov 17.01.15 11:17 Сейчас в теме
(39) blackhole321, win8.1, win7, может я что-то знаю, но политики применяемые на компьютеры всегда не давали появиться окну для входа пользователя. Даже сейчас после включения скрипта в политики закрузка системы удлиннилась по времени на 1 минуту примерно, болтается надпись что-то вроде "Ожидание..." (win8.1) в win7 тоже какая-то надпись. И пока не отработает скрипт для ПК залогиниться не получается. У меня так много чего распространяется через VBS.
43. blackhole321 1303 17.01.15 15:06 Сейчас в теме
(41) EugeneBespalov
Дело в том, что существует два режима выполнения групповых политик - синхронный и асинхронный. В асинхронном режиме выполнение происходит в фоновом режиме и не препятствует входу пользователя в систему. По умолчанию выполнение осуществляется в асинхронном режиме. Вы можете изменить данное поведение, установив опцию
Computer Configuration\Policies\Administrative Templates\System\Logon\Always wait for the network at computer startup and logon

http://blogs.technet.com/b/grouppolicy/archive/2013/05/23/group-policy-and-logon-impact.aspx
44. EugeneBespalov 19.01.15 09:01 Сейчас в теме
(43) blackhole321,

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

Если вы включаете этот параметр политики, при обнаружении медленного сетевого подключения обработка групповой политики всегда выполняется асинхронно.
Клиентские компьютеры не будут ожидать полной инициализации сети при загрузке и входе пользователя. Существующие пользователи будут входить в систему, используя кэшированные учетные данные,
что сократит время входа в систему. Групповая политика будет применяться в фоновом режиме, когда сеть станет доступной.
Обратите внимание, что, поскольку это фоновое обновление, расширения, требующие синхронной обработки, такие как «Установка программного обеспечения» и «Перенаправление папок»,
а также расширение предпочтений «Сопоставления дисков» не будут применяться."

судя по описанию это не совсем так.
46. DEG156 28 29.01.15 08:29 Сейчас в теме
Установил PowerShell 3.0.

Вылетает ошибка: не удается индексировать в объект типа system.string
47. DEG156 28 29.01.15 08:54 Сейчас в теме
Unable to index into an object of type System.String.
At \\server\1C_Soft\1C8InstallAndUninstall.ps1:218 char:1
+ $Arr[$i] = $Arr[$i] + '.' + $Arr[$i]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : CannotIndex
48. Dragonim 139 29.01.15 17:50 Сейчас в теме
(47)

Не могу ответить на ваш вопрос, т.к. у меня в файлах это далеко не 218 строка.
49. DEG156 28 29.01.15 17:54 Сейчас в теме
# было найдено много дистрибутивов, найдём самый старший из них
# тут я не смог придумать красивого и эффективного алгоритма, поэтому получилось ЭТО
# алгоритм вымещения. будем брать по порядку каждую цифру до точки и искать максимальную из них.
# те элементы у которых цифра меньше найденной максимальной будут зануляться
$Arr = $AllPlatforms.Clone()
# чтобы потом узнать какой из элементов ещё не занулён, продублируем строки
For ($i = 0; $i -lt $Arr.Length; $i++) {
$Arr[$i] = $Arr[$i] + '.' + $Arr[$i]
}

Ошибка в этом месте: $Arr[$i] = $Arr[$i] + '.' + $Arr[$i]
50. DEG156 28 29.01.15 17:57 Сейчас в теме
Переменная $Arr возвращает "8.2.19.121"
51. Dragonim 139 29.01.15 21:28 Сейчас в теме
(50)

В переменной $Arr должен находиться массив скопированный из переменной $AllPlatforms. Проверьте что возвращается в переменной $Arr[0].и $AllPlatforms[0].
52. c4uran 27.02.15 16:20 Сейчас в теме
на локальном компе работает, а на удаленном нет вываливает ошибку тут:
$Arr = $AllPlatforms.Clone()

нельзя было сделать определение последней версии по дате создания файла (прим. Data1.cab) никто в здравом уме вроде не будет менять его
53. AdvUser 25.04.15 01:38 Сейчас в теме
Лично у меня скрипт через групповые политики так и не запустился, хотя при ручном запуске под правами администратора отрабатывает корректно. Кроме того выполнение скриптов через групповые политики работает с задержкой, тогда как обновить платформу нужно здесь и сейчас не ожидая когда произойдет тайное шаманство...
Выход использовать бесплатную утилиту PsExec
Команда на запуск скрипта будет иметь следующий вид:
psexec @С:\локальная_папка\comp.txt -u домен\Имя_Администратора \\сервер\расшаренная_папка\1C8InstallAndUninstall.cmd
comp.txt - файл где перечислены компы на которых нужно обновить платформу. Имя каждого компа должно начинаться с новой строчки, а не через запитую как сказано в инструкции утилиты.
При старте утилита запросит пароль Администратора, при этом пароль нигде не светится и не сохраняется.

За скрипт отдельное спасибо!
JohnyDeath; TeMochkiN; +2 Ответить
54. TeMochkiN 18.05.15 10:09 Сейчас в теме
да, через групповые политики чёт не работает. в логах всех машин пишет

2015.05.14 16:31:19 Начало работы скрипта
2015.05.14 16:31:25 Последняя (старшая) платформа уже установлена.
2015.05.14 16:31:25 Окончание работы скрипта

для исключения проблемы с правами, у папки с дистрибутивами ставил полный доступ для стандартной группы "Все" на уровне файловой системы и сетевой папки
чего-то вы нам не дорассказали
55. Dragonim 139 18.05.15 14:41 Сейчас в теме
(54) TeMochkiN,
Изменил файлы на инфостарте (взял с гитхаба) перекачайте архив. Теперь должен говорить какую из версий он считает последней (старшей), возможно это поможет выявить ошибку.

(53) AdvUser,
Задержка скрипта при работе в домене уже обсуждалась выше (ответ (39)).Это проблема доменной политики.

В домене скрипт работает странно. Иногда всё ок, иногда не отрабатывает. В общем через раз работает, а разбираться что к чему нет времени и достаточно большой выборки компьютеров. Если появиться время то допишу скрипт для удалённой установке в домене без групповой политики, на подобии PsExec, но судя по загрузу до этого вряд ли руки дойдут.
56. demaxxx 07.09.15 15:53 Сейчас в теме
Все так просто пишут про запуск скрипта через батник или cmd, почему то никто не упоминает простую деталь - CMD не поддерживает пути в общие папки, поэтому батник не работает. (Указанный путь был использован при запуске CMD.EXE в качестве текущей папки.
CMD.EXE не поддерживает пути UNC.)
57. ivtroitskiy 24.09.15 08:56 Сейчас в теме
Добрый день! А есть версия скрипта для Power Shell версии 2?
58. electro777 28.09.15 17:41 Сейчас в теме
А каким образом переносился код скрипта в cmd, или просто сохранили с расширением cmd?
59. demon_infernal 39 09.11.15 07:41 Сейчас в теме
Спасибо за скрипт.
Отметил некорректную работу скрипта в том случае, если в папке с дистрибутивами лежит только одна папка.
В таком случае строчка
$AllPlatforms = (Get-ChildItem -Path $DistribDir | Where-Object { ($_.Mode -match "^d*") -and ($_.Name -match $RegExpPatternNameFolderDistrib) }).Name

возвращает массив из 10ти элементов, такого вида:
8
.
3
.
6
.
2
3
9
0

- если в папке с дистрибутивами была только одна папка с именем "8.3.6.2390"
60. Dragonim 139 08.12.15 06:59 Сейчас в теме
Скрипт обновлён. Все подробности в нижней части поста.
61. Liks 10.01.16 23:01 Сейчас в теме
dp Может принимать несколько значений? через запятую?
62. Dragonim 139 11.01.16 11:37 Сейчас в теме
(61) Liks, Нет
Можно запустить скрипт несколько раз указав ip='no', а dp такое какое хотите
63. Burninf 21.01.16 12:09 Сейчас в теме
Не очень понятно - при установке уровня безопасности RemoteSigned WinXP требует подписи скрипта, если скрипт находится в сети. Локально же выполняется нормально. Тогда как его запускать из сетевого каталога по этому руководству, если оттуда он наотрез отказывается выполняться?
64. Dragonim 139 21.01.16 22:35 Сейчас в теме
(63) Burninf, сочувствую
Могу лишь посоветовать изменить bat файл. Сначала скопировать файл скрипта на локальный компьютер (команда copy), выполнить скрипт с локального диска, удалить файл скрипта (команда del).
65. incol 19.02.16 16:03 Сейчас в теме
при запуске скрипта вообще ничего не происходит , локально , политику безопасности снимаю вручную и запускаю скрипт , отрабатывает закрывается без ошибок....
66. Dragonim 139 19.02.16 17:48 Сейчас в теме
(65) incol, надо смотреть что пишится в логах
67. incol 20.02.16 13:29 Сейчас в теме
(66) спасибо что откликнулись! нашел ошибку оказывается регистр символов важен! , нашлась дургая проблема , все устанавливается как надо, но установлен ключ $dp = "no" , а удаление все равно происходит старых версий... сталкивался кто нибудь с этим?
68. lenafV 12.11.16 17:28 Сейчас в теме
Выдает ошибку 1945. Удаляет старые версии отлично, но вот новую не устанавливает, как исправить эту ошибку?...

Параметры запуска скрипта: -dd '\\WORK1C\Distr' -dl '\\WORK1C\Logs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=0 THINCLIENTFILE=0'
2016.11.12 23:55:09 Начало работы скрипта
2016.11.12 23:55:30 Установка 1С:Предприятие, версия 8.3.9.1850
=== Начало записи журнала: 12.11.2016 23:55:31 ===
Ошибка 1945. You do not have sufficient privileges to complete the re-advertisement of this product. Re-advertisement requires initiation by a local system account calling the MsiAdvertiseScript API, such as through Group Policy Software Deployment.
=== Завершение записи журнала: 12.11.2016 23:55:32 ===
2016.11.12 23:55:36 Окончание работы скрипта
69. Dragonim 139 17.11.16 12:20 Сейчас в теме
(68)
Вот что пишет о данной ошибке MSDN https://msdn.microsoft.com/en-us/library/windows/desktop/aa372835(v=vs.85).aspx

The process calling MsiAdvertiseScript must be running under the LocalSystem account.
Что примерно переводится как: процесс должен быть запущен от имени пользователя "СИСТЕМА"

Возможно ошибка вызвана тем что у вас установлен запуск скрипта во время залогинивание пользователей в систему, а не во время запуска системы.
70. adapter 417 22.11.16 23:56 Сейчас в теме
Смотрю тоже кто то с этим заморочился.

По умолчанию автоматическое обновление платформы 1С можно настроить средствами самой платформы. Есть у 1cestart.exe такой режим. Но он предполагает права локального админа у пользователей.

Через групповые политики неудобно потому что с большой задержкой. Сработает только когда компы перегрузятся. Т.е. на следующий день. А некоторые вообще свои компы не выключают на ночь. В итоге тяжело следить у кого вообще не отработало, а у кого еще не отработало :)

Определить группу компьютеров и установить платформу можно и без GPO или назначенных заданий. Например через psExcec. Тоже поддерживается современными Windows из коробки. Не важно домен у вас или нет, а может и вообще VPN с филиалами. И запускается сразу, без суточного ожидания перезагрузки. Проблема в том что бы потом вести актуальность этих групп, добавлять\удалять компы. А если еще есть подгруппы с разными версиями платформ по базам то вообще тяжело.

Я когда то делал это в HelpDesk Corp
http://infostart.ru/public/73535/

через Дистанционное Выполнение Команд
http://helpdesk.adaptersoft.ru/?p=554
71. Armando 1399 23.11.16 21:47 Сейчас в теме
С автоматным обновлением серверной части 64 бит кто-нибудь заморачивался?
Как устанавливаете com компоненту? Как конфиги веб-серверов исправляете под новую версию?
72. vshish 149 24.11.16 08:43 Сейчас в теме
Почитал. Очень интересный скрипт. Попробую, но у меня вопрос-идея. Если надо установить только тонкий клиент и есть дистрибутив тонкого клиента, то установку производить с каталога дистрибутива тонкого клиента. (все дело в размерах дистрибутивов)
пысы. Хотя конечно можно и не заморачиваться, а создавать два набора папок дистрибутивов. (для тонкого и толстого клиента)
73. Dragonim 139 25.11.16 14:23 Сейчас в теме
(72) Я проверил. Установка тонкого клиента проходит без проблем. В скрипт добавлена проверка на невозможность установки тонкого 64 битного клиента на 32 битную платформу.
74. Fox_sx 04.12.16 15:34 Сейчас в теме
Дорабатывал старую версию для себя.. если пригодится:

менял строку bat-файла:
@powershell "\\Server\1CDistr\1C8InstallAndUninstall.ps1" -dd '\\Server\1CDistr' -dl '\\Server\1CLogs' -ip 'last' -dp 'ael' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1
на:
@powershell "%~dp0\1C8InstallAndUninstall.ps1" -dd %~dp0 -dl '%~dp01CLogs' -ip 'last' -dp 'ael' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'

%~dp0 - текущая папка исполняемого файла

менял PS-файл:

Текущая папка:
param([string]$dd = "\\1CServer\1CDistr",
[string]$dl = "\\1CServer\1CLogs",
на:
param([string]$dd = (Get-Item -Path ".\" -Verbose).FullName,
[string]$dl = (Get-Item -Path ".\" -Verbose).FullName + "1CLogs"

Проверка разрядности:
$ComputerName = $Env:COMPUTERNAME
$PCbased = (Get-WmiObject Win32_ComputerSystem -computer $ComputerName).systemtype
If
($PCbased -eq "X86-based PC")
{$pathdll = join-path $Env:SystemDrive "Program Files"}
else {
if
($PCbased -eq "X64-based PC")
{$pathdll = join-path $Env:SystemDrive "Program Files (x86)"}
else {}
}

Регистрация comcntr.dll: (не "регилась" автоматом)
Start-Process 'regsvr32.exe' "/s ""$pathdll\1cv8\$ProductVer\bin\comcntr.dll" -Wait -NoNewWindow -PassThru

Также иногда кидал в текущую папку ПолезнуюДЛЛ.dll: (в особых случаях)
Copy-Item -Path ($DistribDir+"ПолезнаяДЛЛ.dll") -Destination ($pathdll + "\1cv8\" + $ProductVer + "\bin\ПолезнаяДЛЛ.dll") -Force

Лог получался примерно такой:
Параметры запуска скрипта: -dd '\\pc14\Установка1с\Distr\' -dl '\\pc14\Установка1с\Distr\1CLogs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'
2016.02.12 10:01:10 Начало работы скрипта
2016.02.12 10:01:15 Удаление 1С:Предприятие, версия
2016.02.12 10:01:16 Установка 1С:Предприятие, версия 8.3.7.1917
2016.02.12 10:01:31 Скопирован файл ПолезнаяДЛЛ.dll из \\pc\Установка1с\Distr\ в C:\Program Files (x86)\8.3.7.1917\bin
2016.02.12 10:01:33 Регистрация dll: C:\Program Files (x86)\1cv8\8.3.7.1917\bin\comcntr.dll
2016.02.12 10:01:33 Найден только один дистрибутив 8.3.7.1917. Удаление произведено не будет, т.к. данный дистрибутив является последним (старшим).
2016.02.12 10:01:33 Окончание работы скрипта
demon_infernal; +1 Ответить
75. NixonRu 09.01.17 18:19 Сейчас в теме
Добрый день
помогите пожалуйста
скрипт не выполняется при старте пк
если потом залогинеться и запустить в ручную то все срабатывает


запускается пк скрипт выполняется таксегодня в 17:18
Параметры запуска скрипта: -dd '\\neosrvkrd\share\1cdistr' -dl '\\neosrvkrd\share\1cdistr\1clog' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=0 THINCLIENTFILE=0'
2017.01.09 17:03:46 Начало работы скрипта
2017.01.09 17:03:52 Установка 1С:Предприятие, версия 8.3.9.2033
2017.01.09 17:03:54 После установки не была найдена платформа 8.3.9.2033 на данном компьютере. Работа скрипта прервана.
2017.01.09 17:03:54 Окончание работы скриптасегодня в 17:18
после загрузки пк запускаю в ручную в итоге все ставитсясегодня в 17:21
Параметры запуска скрипта: -dd '\\neosrvkrd\share\1cdistr' -dl '\\neosrvkrd\share\1cdistr\1clog' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=0 THINCLIENTFILE=0'
2017.01.09 17:19:36 Начало работы скрипта
2017.01.09 17:19:44 Установка 1С:Предприятие, версия 8.3.9.2033
=== Начало записи журнала: 09.01.2017 17:19:45 ===
=== Завершение записи журнала: 09.01.2017 17:20:18 ===
=== Начало записи журнала: 09.01.2017 17:20:18 ===
=== Завершение записи журнала: 09.01.2017 17:20:30 ===
2017.01.09 17:20:33 Окончание работы скрипта
76. Dragonim 139 09.01.17 18:24 Сейчас в теме
(75) Судя по ошибки у вас не хватает прав на установку в первом случае, а во втором случае вы производите запуск от имени администратора. У вас стоит установка скрипта при загрузки компьютера или при входе пользователя? Т.е. logon или startup.
77. NixonRu 09.01.17 20:11 Сейчас в теме
(76)
конфигурация компьютера
автозагрузка

100. adminnpt 20.11.18 10:03 Сейчас в теме
(77)Такая же ерунда. Подскажите решение нашли?
78. user643327_infostart 25.01.17 13:05 Сейчас в теме
Подскажите пожалуйста:

как определить версию, которая [была] установлена на компьютере,
не имея к нему непосредственного доступа, а только удалённый (т.е. только по сети)
или имея только диск с этого компьютера,
загрузиться с которого нет возможности
?

Выглядит оно примерно вот так:

C:\Program Files\1cv8\8.3.5.1486\bin\1cv8.exe	823,79 Кб	05.03.2015 01:37	-a--
C:\Program Files\1cv8\8.3.5.1486\bin\1cv8c.exe	637,29 Кб	05.03.2015 01:37	-a--
C:\Program Files\1cv8\8.3.5.1486\bin\1cv8s.exe	771,29 Кб	05.03.2015 01:37	-a--
C:\Program Files\1cv8\8.3.5.1517\bin\1cv8.exe	823,79 Кб	20.03.2015 02:43	-a--
C:\Program Files\1cv8\8.3.5.1517\bin\1cv8c.exe	637,29 Кб	20.03.2015 02:43	-a--
C:\Program Files\1cv8\8.3.5.1517\bin\1cv8s.exe	771,29 Кб	20.03.2015 02:44	-a--
C:\Program Files\1cv8\common\1cestart.exe	378,29 Кб	20.03.2015 02:43	-a--
C:\Program Files\1cv82\8.2.18.109\bin\1cv8.exe	674,29 Кб	09.07.2013 17:36	-a--
C:\Program Files\1cv82\8.2.18.109\bin\1cv8c.exe	531,79 Кб	09.07.2013 17:36	-a--
C:\Program Files\1cv82\8.2.18.109\bin\1cv8s.exe	680,79 Кб	09.07.2013 17:36	-a--
C:\Program Files\1cv82\common\1cestart.exe	335,79 Кб	09.07.2013 17:36	-a--
Показать


Всегда ли версия, указанная при сборке (т.е. свойства файла, вкладка "Подробно" в проводнике Win7) соответствует действительности?
Всегда ли её видно?
Каким [именно/ещё] образом проверяется совместимость (с файловой базой, с конфигурацией, с сервером приложений, с SQL-базой)
?
Прикрепленные файлы:
79. user643327_infostart 25.01.17 13:06 Сейчас в теме
Если не туда написал - ткните носом в правильном направлении.
Поиском пользовался, доступа к ИТС пока нет.
80. Serg0FFan 11.05.17 11:49 Сейчас в теме
1) Если использовать обычный способ установки, то вот тут http://s001.radikal.ru/i193/1705/46/9ff53835045d.png в скобочках еще и версию показывает, у вас же её нет (возможно вы так и планировали, но не удобно).
2) Там же на скрине, видно что установлен продукт "1С Предприятие - Работа с файлами", так вот если использовать параметр "all" то данный продукт удаляется, да так, что в списке установленных программ он есть, но ничего с ним сделать нельзя, ни удалить, ни восстановить, ни с нормального дистрибутива что-то сделать с ним.
P.S. Windows 10 RS1 x64 LTSB RUS
81. Dragonim 139 11.05.17 15:51 Сейчас в теме
(80)
1 Я знаю о таком поведении, но не разбирался в нём, т.к. версия написана справа в соответствующей колонки и мне этого достаточно.
2. О таком возможном поведении скрипта при ключе "all" я догадываюсь, в связи с алгоритмом удаления. Именно по этому в инструкцию, при описании работы ключа "all", изначально были добавлены слова: "Экстенсивными, потому что, удалены будут все продукты на компьютере хотя бы призрачно напоминающие платформу 1С".
82. demaxxx 16.09.17 01:46 Сейчас в теме
Dim Dragonim, может быть добавите в скрипт функцию, описанную Evgeny Gerasimov (Fox_sx), а именно
Регистрация comcntr.dll: (не "регилась" автоматом)
Start-Process 'regsvr32.exe' "/s ""$pathdll\1cv8\$ProductVer\bin\comcntr.dll" -Wait -NoNewWindow -PassThru

?jav * ascript:void(0);
83. user841580 10.10.17 14:32 Сейчас в теме
Подскажите пожалуйста, в чем может быть проблема?


D:\Users\SysAdmin.ENTERPRISE>"\\Enterprise.Local\Software\Supplementary Distribu
tion\Utilities\1C\Enterprise\Distrib\1C8InstallAndUninstall.bat"

D:\Users\SysAdmin.ENTERPRISE>я╗┐@rem ╨┤╨╗╤П ╨╖╨░╨┐╤Г╤Б╨║╨░ powershell ╤Б╨║╤А╨╕╨┐
╤В╨╛╨▓ ╨╜╨╡╨╛╨▒╤Е╨╛╨┤╨╕╨╝╨╛ ╨┐╨╡╤А╨╡╨╛╨┐╤А╨╡╨┤╨╡╨╗╨╕╤В╤М ╨┐╨╛╨╗╨╕╤В╨╕╨║╤Г ╨▒╨╡╨╖
╨╛╨┐╨░╤Б╨╜╨╛╤Б╤В╨╕ ╨╖╨░╨┐╤Г╤Б╨║╨░ powershell
'я╗┐@rem' is not recognized as an internal or external command,
operable program or batch file.

D:\Users\SysAdmin.ENTERPRISE>start /wait powershell "Set-ExecutionPolicy RemoteS
igned -Force"


D:\Users\SysAdmin.ENTERPRISE>powershell "\\Enterprise.Local\Software\Supplementa
ry Distribution\Utilities\1C\Enterprise\Distrib\1C8InstallAndUn­install.ps1" -dd
'\\Enterprise.Local\Software\Supplementary Distribution\Utilities\1C\Enterprise\
Distrib' -dl '\\Enterprise.Local\Software\Supplementary Distribution\Utilities\1
C\Enterprise\Distrib\1CLogs' -ip 'no' -dp 'all'
*то что ниже,в cmd написано красным*
\\Enterprise.Local\Software\Supplementary : The term
'\\Enterprise.Local\Software\Supplementary' is not recognized as the name of a
cmdlet, function, script file, or operable program. Check the spelling of the
name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ \\Enterprise.Local\Software\Supplementary
Distribution\Utilities\1C\Enterprise\D ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (\\Enterprise.Lo...e\Supplementa
   ry:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException[/B]
Показать


bat файл выглядит у меня так
@rem для запуска powershell скриптов необходимо переопределить политику безопасности запуска powershell
	
start /wait powershell "Set-ExecutionPolicy RemoteSigned -Force"

@rem запускаем скрипт с нужными параметрами
	
powershell "\\Enterprise.Local\Software\Supplementary Distribution\Utilities\1C\Enterprise\Distrib\1C8InstallAndUn­install.ps1" -dd '\\Enterprise.Local\Software\Supplementary Distribution\Utilities\1C\Enterprise\Distrib' -dl '\\Enterprise.Local\Software\Supplementary Distribution\Utilities\1C\Enterprise\Distrib\1CLogs' -ip 'no' -dp 'all' 
@rem возвращяем политику безопасности в значение по умолчанию
	
start /wait powershell "Set-ExecutionPolicy Restricted -Force"
Показать

в ps изменил только
# зададим параметры по умолчанию. Данные параметры можно поменять передав их скрипту перед выполнением
param([string]$dd = "\\Enterprise.Local\Software\Supplementary Distribution\Utilities\1C\Enterprise\Distrib", # путь до каталога с дистрибутивами платфоры 1С 8
      [string]$dl = "\\Enterprise.Local\Software\Supplementary Distribution\Utilities\1C\Enterprise\Distrib\1CLogs", # путь до каталога в который будут записываться логи установки и удаления
84. demon_infernal 39 10.10.17 18:17 Сейчас в теме
(83)
Supplementary Distribution
Возможно, пробел в пути "Supplementary Distribution" ? возьмите весь путь в кавычки
85. Dragonim 139 11.10.17 06:31 Сейчас в теме
(83)

Судя по всему у вас какой-то невидимый знак в начале файла, такое бывает если вы редактировали файл, например, в word.
Попробуйте взять файл bat с github и отредактировать его в Notepad++.
Так же попробуйте удалить все пустые строки и строки с комментариями оставив только строки с командами.
86. user841580 23.10.17 16:47 Сейчас в теме
Похоже проблема была в пробеле в пути "Supplementary Distribution", сделал путь без пробелов :)

Теперь пол дня ломаю голову и гугл над командой Set-ExecutionPolicy RemoteSigned -Force, точнее над тем, почему она не проходит, а еще точнее, что надо сделать, что бы она прошла?

Запустил в PS эту команду, он мне ответил следующее:
Set-ExecutionPolicy RemoteSigned -Force
Set-ExecutionPolicy : Windows PowerShell upd ated your execution policy successfully, but the setting is overridden by
a policy defined at a more specific scope.  Due to the override, your shell will retain its current effective
execution policy of Unrestricted. Type "Get-ExecutionPolicy -List" to view your execution policy settings. For more
information please see "Get-Help Set-ExecutionPolicy".
At line:1 char:1
+ Se t-ExecutionPolicy RemoteSigned -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
    + FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
Показать

не понимаю, что за "more specific scope"

на всякий случай покажу, что выдает Get-ExecutionPolicy -list
Get-ExecutionPolicy -list

                                          Scope                                             ExecutionPolicy
                                          -----                                             ---------------
                                  MachinePolicy                                                Unrestricted
                                     UserPolicy                                                Unrestricted
                                        Process                                                  Restricted
                                    CurrentUser                                                Unrestricted
                                   LocalMachine                                                RemoteSigned
Показать


Подскажите пожалуйста, что делать?
87. ivansuh 09.11.17 13:03 Сейчас в теме
Подскажите куда копать!
На пк не установлена 1с!
Ставим через гп!
Вот что в логах!
Параметры запуска скрипта: -dd '\\server01\Software\1C\1CDistr' -dl '\\server05\temp\1CLogs' -dp 'ael' -ip 'last' -iod 'DESIGNERALLCLIENTS=1 THINCLIENT=1 THINCLIENTFILE=1'
2017.11.09 12:28:03 Начало работы скрипта
2017.11.09 12:28:32 Последняя (старшая) платформа 8.3.10.2639 уже установлена.
2017.11.09 12:28:32 Окончание работы скрипта
---------------------------------------------------------------------------------
89. ivansuh 10.11.17 11:43 Сейчас в теме
(87) С этой проблемой разобрались!
88. ivansuh 10.11.17 10:55 Сейчас в теме
Подскажите как удалить определенные версии, несколько? как указать dp=?
90. Dragonim 139 12.11.17 07:08 Сейчас в теме
(88) такого функционала в скрипте не предусмотрено. Можно запустить скрипт несколько раз каждый раз указав какую конкретную версию надо удалить.

Так же вы можете доработать скрипт введя в него необходимый функционал.
91. Ameh 20.03.18 12:18 Сейчас в теме
Добрый день, пользуюсь вашим скриптом, все в порядке.Недавно возник вопрос о необходимости разной установки (удаленка только тонкие клиенты, остальным толстые). Может быть вы в курсе как проверить какие компоненты 1С установлены на машине, и в зависимости от этого формировать ключи для утсановки?
92. Dragonim 139 22.03.18 10:34 Сейчас в теме
(91) Ни когда не задавался задачей понять какие компоненты платформы установлены на текущем компьютере. Можно посмотреть какие файлы есть в каталоге с конфигурацией 1cv8.exe, 1cv8c.exe, 1cv8s.exe и таким образом понять какие компоненты установлены.

Если всё работает, то какая разница что установлено. При новом обновлении устанавливаешь так чтобы всё необходимое работало, а старое удаляешь. Мне кажется такой подход более продуктивен. Конечно если нет задачи ревизии на текущий момент.
93. Ameh 22.03.18 11:10 Сейчас в теме
(92)
Спасибо за ответ, в принципе уже так и сделал по поиску файлов. Просто задача устанавливать 3 разных набора компонентов, поэтому проще смотреть, что установлено и ставить новую платформу с теми же компонентами.
94. Vovan58 65 14.06.18 11:58 Сейчас в теме
Почему-то на компьютерах с Win 10 не проходит запуск скрипта, точнее только один раз. В Win 7 - все в порядке. В чем может быть засада?
95. Vovan58 65 14.06.18 12:04 Сейчас в теме
Прикол, через неделю на одном Win 10 запустился, на другом - нет... А так вроде все по схеме делал...
96. METAL 288 04.09.18 16:36 Сейчас в теме
Спасибо за разработку! Но никак не взлетает.. ((
В чём может быть проблема? См.скриншот
Даёт ошибку: "File D:\CMDInstall\1C8InstallAndUninstall.ps1 cannot be loaded. The file D:\CMDInstall\1C8InstallAndUninstall.ps1 is not digitally signed. The script will not execute on the system. Please see "get-help about_signing" for more details.."
Прикрепленные файлы:
97. Dragonim 139 05.09.18 08:42 Сейчас в теме
(96) Попробуйте поменять в bat файле часть строки
@start /wait powershell "Set-ExecutionPolicy RemoteSigned -Force"
Смените RemoteSigned на Bypass
98. lopatin 678 11.10.18 12:55 Сейчас в теме
У меня вот такая ошибка на Windows XP:

После установки не была найдена платформа 8.3.12.1529 на данном компьютере. Работа скрипта прервана.

Не ручной запуск скрипта, не по домену.. Запуск непосредственно установщика ставит платформу. Через скрипт не работает.
Оставьте свое сообщение