Конфигурация 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
Установка через групповые политики
- Скопируйте MSI-пакет в сетевую папку, доступную компьютерам домена на чтение, например
\\dc01\software\YuChat\. Установка выполняется от имени учётной записи компьютера, поэтому пакет должен лежать на общем ресурсе, а не на локальном диске. - В оснастке Управление групповой политикой откройте объект групповой политики, связанный с подразделением целевых компьютеров.
- Перейдите в Конфигурация компьютера → Политики → Конфигурация программ → Установка программ.
- Выберите Создать → Пакет, укажите пакет по сетевому пути (UNC) и выберите метод развёртывания Назначенный. Если нужно задать параметры установки, выберите Особый и приложите трансформ на вкладке Модификации.
- На клиентском компьютере выполните
gpupdate /forceи перезагрузите его. Приложение установится при загрузке, без участия пользователя.
Трансформ можно приложить только при создании пакета в политике, добавить его позже нельзя.
Обновление через групповые политики
- Поместите MSI-пакет новой версии в ту же сетевую папку.
- В том же объекте групповой политики создайте для него пакет и приложите тот же трансформ, если он использовался.
- На вкладке Обновления нового пакета укажите предыдущий пакет YuChat и выберите вариант Пакет может обновлять существующий пакет.
- Выполните
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 | Значение |
|---|---|---|
SERVER | server | Адрес сервера |
LANG | lang | Язык интерфейса |
AUTOUPDATE | autoUpdate | Автоматическая проверка обновлений: on или off |
AUTOSTART | autoStart | Запуск вместе с системой: on или off |
CHANGE_URL | changeURL | Возможность подключиться к другому серверу: on или off |
PROXY | proxy | Адрес прокси-сервера |
USE_SYSTEM_CA | useSystemCa | Доверять сертификатам из системного хранилища: on или off |
CA_CERTS_FILE | caCertsFile | Путь к PEM-файлу с дополнительными доверенными сертификатами |
SENTRYLOGS | sentryLogs | Отправка отчётов об ошибках: on или off |
Куда пакет записывает файл, зависит от того, от чьего имени выполняется установка:
- от имени системы (групповая политика с назначением на компьютер, SCCM в контексте устройства) — в машинный файл
C:\ProgramData\YuChat\settings.json; - от имени пользователя — в файл
%APPDATA%\YuChat\settings.jsonэтого пользователя.
Если администратор устанавли вает пакет вручную из командной строки, параметры попадут в профиль самого администратора, а не других пользователей компьютера. Для них разложите машинный файл settings.json отдельно.
Следующие свойства управляют только установкой и в settings.json не записываются:
| Свойство MSI | Назначение |
|---|---|
MSIINSTALLPERUSER | 1 — установка в профиль пользователя |
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 |