Перейти к основному содержимому

Конфигурация MSI

Руководство для администраторов: как развернуть настольное приложение YuChat в организации, заранее настроить подключение к серверу и управлять обновлениями.

Установочные файлы доступны на официальном сайте: https://yuchat.ai/downloads. Для Windows публикуются MSI-пакет для централизованного развёртывания и EXE-инсталлятор.

Какой способ выбрать​

СценарийСпособКуда устанавливаетсяПрава администратора
Установка для всех пользователей компьютера: групповая политика с назначением на компьютер, SCCM или Intune в контексте устройстваMSI-пакетC:\Program Files\YuChatНужны
У пользователей нет прав администратора: групповая политика с назначением на пользователя, SCCM или Intune в контексте пользователяMSI-пакет со свойством MSIINSTALLPERUSER=1%LOCALAPPDATA%\Programs\YuChatНе нужны
У пользователей нет прав администратора, и приложение должно обновляться самоEXE-инсталлятор с ключом /currentuser%LOCALAPPDATA%\Programs\YuChatНе нужны

MSI-пакет​

Тихая установка​

msiexec /i YuChat….msi /qn

Без дополнительных свойств пакет устанавливается для всех пользователей компьютера в C:\Program Files\YuChat. Для этого нужны права администратора: запустите команду в командной строке с повышенными правами. При назначении через групповые политики установка выполняется от имени системы, и этого достаточно.

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

Чтобы получить подробный журнал установки, добавьте ключ /l*v:

msiexec /i YuChat….msi /qn /l*v C:\Temp\yuchat-msi.log

Установка через групповые политики​

  1. Скопируйте MSI-пакет в сетевую папку, доступную компьютерам домена на чтение, например \\dc01\software\YuChat\. Установка выполняется от имени учётной записи компьютера, поэтому пакет должен лежать на общем ресурсе, а не на локальном диске.
  2. В оснастке Управление групповой политикой откройте объект групповой политики, связанный с подразделением целевых компьютеров.
  3. Перейдите в Конфигурация компьютера → Политики → Конфигурация программ → Установка программ.
  4. Выберите Создать → Пакет, укажите пакет по сетевому пути (UNC) и выберите метод развёртывания Назначенный. Если нужно задать параметры установки, выберите Особый и приложите трансформ на вкладке Модификации.
  5. На клиентском компьютере выполните gpupdate /force и перезагрузите его. Приложение установится при загрузке, без участия пользователя.
предупреждение

Трансформ можно приложить только при создании пакета в политике, добавить его позже нельзя.

Обновление через групповые политики​

  1. Поместите MSI-пакет новой версии в ту же сетевую папку.
  2. В том же объекте групповой политики создайте для него пакет и приложите тот же трансформ, если он использовался.
  3. На вкладке Обновления нового пакета укажите предыдущий пакет YuChat и выберите вариант Пакет может обновлять существующий пакет.
  4. Выполните gpupdate /force и перезагрузите компьютеры: новая версия заменит предыдущую.

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

Установка в профиль пользователя без прав администратора​

Тот же MSI-пакет можно установить в профиль пользователя. Для этого задайте свойство MSIINSTALLPERUSER=1:

msiexec /i YuChat….msi /qn MSIINSTALLPERUSER=1

Приложение устанавливается в %LOCALAPPDATA%\Programs\YuChat. Права администратора не нужны, запроса контроля учётных записей (UAC) не будет.

Такую установку можно выполнять любым средством, которое работает в контексте пользователя:

  • групповой политикой с назначением на пользователя: Конфигурация пользователя → Политики → Конфигурация программ → Установка программ;
  • SCCM с установкой для пользователя;
  • Microsoft Intune с контекстом установки «Пользователь».

Групповая политика не передаёт пакету параметры командной строки, поэтому в этом случае задайте свойство в трансформе.

Без свойства MSIINSTALLPERUSER установка остаётся машинной, и существующие политики с назначением на компьютер продолжают работать как раньше.

Ограничения установки в профиль
  • У пользователя может быть только одна установка. Если приложение уже установлено, повторный запуск пакета тем же пользователем в другой области второй копии не создаёт: команда завершается успешно, но установка остаётся прежней. Чтобы сменить область установки, сначала удалите приложение.
  • После обновления из приложения в списке программ остаётся устаревшая запись. Даже при установке в профиль пакет регистрируется в разделе Программы и компоненты для всего компьютера. Приложение обновляется без запроса прав администратора и поэтому не может удалить эту запись: новая версия установится и будет работать, но в списке останется строка с прежней версией, которую может убрать только администратор. Если вы рассчитываете на обновление из приложения, используйте EXE-инсталлятор: он регистрируется только в профиле пользователя.

Каталог установки​

Все файлы приложения устанавливаются в один каталог, который задаётся свойством APPLICATIONFOLDER. Ярлыки на рабочем столе и в меню «Пуск» указывают на этот же каталог, поэтому для переноса установки достаточно одного свойства:

msiexec /i YuChat….msi /qn APPLICATIONFOLDER="C:\apps\YuChat"

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

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

Трансформ MSI (.mst)​

При назначении через групповые политики пакет не получает параметры командной строки. Свойства установки задаются в трансформе — файле .mst, который изменяет таблицу Property пакета.

Трансформ можно подготовить в любом редакторе MSI-таблиц, например в Orca из Windows SDK: создайте для MSI-пакета новый трансформ, добавьте в таблицу Property строки с нужными свойствами и значениями (например, SERVER со значением https://yuchat.yourcompany.com) и сохраните трансформ в файл .mst.

Проверить трансформ без групповой политики можно так:

msiexec /i YuChat….msi TRANSFORMS=YuChat….mst /qn
предупреждение

Прикладывайте трансформ к пакету каждой новой версии. Пакет без трансформа установит приложение с параметрами по умолчанию: в C:\Program Files\YuChat и для всех пользователей. Уже созданный файл settings.json при этом не сбрасывается.

Параметры MSI-пакета​

Параметры подключения и поведения приложения задаются свойствами пакета. При установке пакет записывает их в файл settings.json: существующий файл дополняется, в нём меняются только заданные ключи.

Свойство MSIКлюч settings.jsonЗначение
SERVERserverАдрес сервера
LANGlangЯзык интерфейса
AUTOUPDATEautoUpdateАвтоматическая проверка обновлений: on или off
AUTOSTARTautoStartЗапуск вместе с системой: on или off
CHANGE_URLchangeURLВозможность подключиться к другому серверу: on или off
PROXYproxyАдрес прокси-сервера
USE_SYSTEM_CAuseSystemCaДоверять сертификатам из системного хранилища: on или off
CA_CERTS_FILEcaCertsFileПуть к PEM-файлу с дополнительными доверенными сертификатами
SENTRYLOGSsentryLogsОтправка отчётов об ошибках: on или off

Куда пакет записывает файл, зависит от того, от чьего имени выполняется установка:

  • от имени системы (групповая политика с назначением на компьютер, SCCM в контексте устройства) — в машинный файл C:\ProgramData\YuChat\settings.json;
  • от имени пользователя — в файл %APPDATA%\YuChat\settings.json этого пользователя.
предупреждение

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

Следующие свойства управляют только установкой и в settings.json не записываются:

Свойство MSIНазначение
MSIINSTALLPERUSER1 — установка в профиль пользователя
APPLICATIONFOLDERКаталог установки

Пример установки с параметрами:

msiexec /i YuChat….msi /qn SERVER=https://yuchat.yourcompany.com LANG=ru CHANGE_URL=off

Что пакет записывает в систему​

  • Файлы приложения — только в каталог установки, ярлыки — на рабочий стол и в меню «Пуск».
  • В реестр — стандартную регистрацию Windows Installer (запись в Программах и компонентах и сведения о продукте) и одно собственное значение MsiInstallLocation в разделе Software\e6b01cde-8e15-5168-8ae5-99734e533509: в HKEY_LOCAL_MACHINE при установке для всех пользователей и в HKEY_CURRENT_USER при установке в профиль. Значение нужно механизму обновления и удаляется вместе с приложением.
  • При запуске приложение может записать в тот же раздел значение InstallLocation — его также использует механизм обновления.

Удаление​

  • Через групповые политики: Установка программ → пакет → Все задачи → Удалить → Немедленно удалить программу у пользователей и с компьютеров. Приложение будет удалено при следующей загрузке компьютера.
  • Вручную: msiexec /x YuChat….msi /qn. Установку в профиль удаляет тот же пользователь, который её выполнил.

Файл settings.json при удалении приложения не удаляется.

EXE-инсталлятор​

EXE-инсталлятор подходит, если у пользователей нет прав администратора и приложение должно обновляться само. Установка в профиль пользователя:

YuChat….exe /S /currentuser
КлючНазначение
/SТихая установка без окон
/currentuserУстановка в профиль текущего пользователя, %LOCALAPPDATA%\Programs\YuChat
/allusersУстановка для всех пользователей компьютера. Требует прав администратора
/D=путьКаталог установки
YuChat….exe /S /currentuser /D=C:\apps\YuChat
предупреждение

Ключ /D= указывайте последним и без кавычек, даже если путь содержит пробелы.

Приложение, установленное в профиль, обновляется само, без запроса прав администратора.

Установку можно выполнять любым средством, которое работает в контексте пользователя: сценарием входа в систему в групповой политике, SCCM с установкой для пользователя или Microsoft Intune с контекстом установки «Пользователь». В сценарии входа проверяйте, установлено ли уже приложение, например по наличию файла %LOCALAPPDATA%\Programs\YuChat\YuChat.exe.

Параметры подключения для такой установки задаются машинным файлом settings.json.

Файл settings.json​

Файл settings.json задаёт параметры подключения и поведения приложения. Приложение читает его при каждом запуске, поэтому изменения применяются после перезапуска. Разместите файл до первого запуска, чтобы пользователь сразу подключился к нужному серверу.

Расположение файла:

  • Windows, для одного пользователя: %APPDATA%\YuChat\settings.json
  • Windows, для всех пользователей компьютера: C:\ProgramData\YuChat\settings.json
  • macOS: ~/Library/Application Support/YuChat/settings.json
  • Linux: ~/.config/YuChat/settings.json
предупреждение

Если у пользователя есть собственный файл %APPDATA%\YuChat\settings.json, машинный файл не читается вовсе: значения из двух файлов не объединяются. Для полностью управляемого развёртывания не размещайте пользовательский файл.

Машинный файл можно разложить через предпочтения групповой политики — Конфигурация компьютера → Настройка → Конфигурация Windows → Файлы — или средствами SCCM. Файл применяется независимо от того, каким установщиком установлено приложение.

Пример settings.json:

{
"server": "https://yuchat.yourcompany.com",
"lang": "ru",
"autoUpdate": "off",
"changeURL": "off",
"proxy": "protocol://username:password@proxy_host:proxy_port"
}
КлючОписание
serverАдрес сервера для входа в приложение
langЯзык интерфейса: ru, en, de, es, fr, it, pt, zh, zh-TW. По умолчанию используется язык системы
autoUpdateАвтоматическая проверка обновлений: on (по умолчанию) или off
autoStartЗапуск вместе с системой: on или off
changeURLВозможность подключиться к другому серверу: on или off
proxyАдрес прокси-сервера
useSystemCaДоверять сертификатам из системного хранилища: on (по умолчанию) или off
caCertsFileАбсолютный путь к PEM-файлу с дополнительными доверенными сертификатами, например корневым сертификатом организации
sentryLogsОтправка отчётов об ошибках: on (по умолчанию) или off

Управление обновлениями​

Значение "autoUpdate": "off" (или свойство AUTOUPDATE=off) отключает автоматические проверки обновлений — при запуске и периодические. Пункт Проверить обновления в приложении при этом остаётся: если пользователь запустит проверку вручную, обновление загрузится и установится при выходе из приложения.

Если политика организации требует полностью исключить обновление из приложения, обратитесь в поддержку.

Диагностика​

  • Обновление не установилось. Убедитесь, что номер версии нового пакета строго больше установленного.
  • Параметры не применились. Проверьте, что файл settings.json существует в ожидаемом месте и содержит корректный JSON, а машинный файл не перекрыт пользовательским %APPDATA%\YuChat\settings.json.
  • Установка в профиль от имени обычного пользователя завершается ошибкой 1603. Найдите в журнале установки строку RemoveExistingProducts. Ошибка 1714 означает, что в профиле пользователя осталась регистрация предыдущей установки. Удалите её от имени того же пользователя командой msiexec /x YuChat….msi /qn и повторите установку.