Установка Trialix Connector на Windows
Инструкция для Windows Server 2016 и новее или Windows 10 и новее, 64-разрядных (x64). Коннектор - один файл trialix-connector.exe без установщика и зависимостей. Он ставит себя службой Windows TrialixConnector, пишет в журнал событий и шифрует секреты через DPAPI машины. Как устроена безопасность коннектора, описано в разделе «Trialix Connector: архитектура и безопасность».
Важно. Живой проверки на Windows пока не было, инструкция по документации Microsoft и сборке коннектора. Сборка для Windows собрана из того же кода, что и проверенные сборки для Linux. Первую установку сделайте на тестовом сервере и пройдите чек-лист.
Что понадобится
- Сервер или рабочая станция в домене с доступом к контроллеру домена по порту 636 (LDAPS) или 389 (LDAP со StartTLS).
- Исходящий HTTPS (443) к
api.trialix.ru, напрямую или через прокси. - Права локального администратора: регистрация службы и запись в
%ProgramData%. - Сервисная учётная запись каталога с правом чтения (см. раздел своего каталога, например Active Directory) или вход по Kerberos (см. ниже).
- В ЛК Trialix: роль владельца или администратора компании и лицензия с синхронизацией каталога.
Шаг 1. Получите код подключения
- ЛК, «Каталоги», карточка «Добавить коннектор».
- Введите название, например «Головной офис, AD», и нажмите «Добавить коннектор».
- Скопируйте код подключения вида
XXXX-XXXX-XXXX. Код показывается один раз и действует час. Если не успели - в карточке коннектора нажмите «Новый код подключения».

Шаг 2. Скачайте и проверьте файл
Откройте PowerShell от имени администратора:
$v = "0.1.0"
New-Item -ItemType Directory -Force C:\Trialix | Out-Null
Invoke-WebRequest "https://api.trialix.ru/v1/connector/download/trialix-connector-$v-windows-amd64.exe" -OutFile C:\Trialix\trialix-connector.exe
Invoke-WebRequest "https://api.trialix.ru/v1/connector/download/SHA256SUMS" -OutFile C:\Trialix\SHA256SUMS
Сверьте контрольную сумму:
$expected = (Select-String -Path C:\Trialix\SHA256SUMS -Pattern "windows-amd64.exe").Line.Split(" ")[0]
$actual = (Get-FileHash C:\Trialix\trialix-connector.exe -Algorithm SHA256).Hash.ToLower()
if ($expected -eq $actual) { "SHA256 совпадает" } else { "SHA256 НЕ совпадает - не запускайте файл" }
Подпись самого файла SHA256SUMS можно проверить на любой машине с OpenSSL 3, команды - в разделе «Обновления».
Если сервер выходит в интернет через прокси, добавьте к Invoke-WebRequest параметр -Proxy http://proxy.company.local:3128.
Шаг 3. Зарегистрируйте коннектор
В той же консоли администратора:
cd C:\Trialix
.\trialix-connector.exe enroll XXXX-XXXX-XXXX --url https://api.trialix.ru
С прокси:
.\trialix-connector.exe enroll XXXX-XXXX-XXXX --url https://api.trialix.ru --proxy http://proxy.company.local:3128
Ответ при успехе: «Коннектор зарегистрирован в компании «…». Дальше: trialix-connector setup, затем trialix-connector service install.»
Шаг 4. Настройте подключение к каталогу
Мастер
.\trialix-connector.exe setup
Мастер задаёт вопросы по очереди, Enter оставляет значение в скобках:
| Вопрос | Пример ответа |
|---|---|
| Адрес Trialix | https://api.trialix.ru |
| Прокси (http://proxy:3128, пусто - без прокси) | пусто или http://proxy.company.local:3128 |
| Каталог: ad, samba, freeipa, openldap, custom | ad |
| Адрес каталога (ldaps://dc.company.local:636) | ldaps://dc1.company.local:636 |
| StartTLS (да/нет) | спрашивается только для ldap:// |
| Файл сертификата CA (пусто - системные) | пусто, если корневой сертификат домена уже в хранилище Windows |
| Базовый DN (DC=company,DC=local) | DC=company,DC=local |
| Вход: simple или kerberos | simple |
| Сервисная учётка (DN или user@domain) | svc-trialix@company.local |
| Пароль | пароль сервисной учётной записи |
Пароль при вводе в мастере виден на экране. Если рядом есть посторонние или консоль записывается, используйте настройку без вопросов (ниже), там пароль берётся из переменной окружения.
После сохранения мастер сразу запускает проверку и печатает строки [ok] и [!!].
Без вопросов
Для скриптов и развёртывания через GPO или SCCM. Пароль передаётся только через переменную окружения, в аргументах его нет:
$env:SVC_PW = Read-Host "Пароль svc-trialix" -MaskInput
.\trialix-connector.exe setup --profile ad --url ldaps://dc1.company.local:636 `
--base-dn "DC=company,DC=local" --bind-dn "svc-trialix@company.local" --password-env SVC_PW
Remove-Item Env:SVC_PW
-MaskInput есть в PowerShell 7. В Windows PowerShell 5.1 используйте Read-Host -AsSecureString и преобразуйте строку, либо задайте переменную в сеансе другим способом.
Все флаги setup - в разделе «Параметры setup».
Шаг 5. Проверьте
.\trialix-connector.exe doctor
Все строки должны быть [ok]:
[ok] DNS api.trialix.ru - адрес найден
[ok] Прокси - не используется
[ok] HTTPS до Trialix - ответ за 120ms
[ok] Время на машине - расхождение 0s
[ok] Регистрация - коннектор …
[ok] DNS dc1.company.local - адрес найден
[ok] TLS каталога - сертификат dc1.company.local до 01.10.2027
[ok] Вход в каталог - сервисная учётка вошла (simple)
[ok] Чтение сотрудников - видно 412 учётных записей
[ok] Чтение групп - видно 57 групп
Что делать со строками [!!] - в разделе «Диагностика ошибок».
Посмотреть, что коннектор видит в каталоге, ничего не отправляя в Trialix:
.\trialix-connector.exe preview # число сотрудников, отключённых, без почты, групп
.\trialix-connector.exe preview --json # снимок ровно в том виде, в каком он уходит в Trialix
Шаг 6. Установите службу
.\trialix-connector.exe service install
Команда регистрирует службу TrialixConnector («Trialix Connector») с автоматическим запуском, перезапуском через 10 секунд при сбое и источником журнала событий TrialixConnector, затем запускает её. Служба запускает тот файл, из которого выполнена команда, поэтому не переносите C:\Trialix\trialix-connector.exe после установки.
Get-Service TrialixConnector # Status: Running
Restart-Service TrialixConnector
.\trialix-connector.exe service uninstall
Через минуту в ЛК в карточке коннектора появится «в сети», имя машины, ОС и версия. Дальше - «Обновить список групп» и привязка групп к отделам, см. «Каталоги и Trialix Connector».
Ограничьте доступ к конфигурации
Секреты зашифрованы DPAPI в контексте машины: расшифровать их может любой процесс на этом сервере, но не на другом. Каталог %ProgramData%\Trialix\Connector наследует права %ProgramData%, где обычные пользователи имеют чтение. Оставьте доступ только системе и администраторам:
icacls "$env:ProgramData\Trialix\Connector" /inheritance:r /grant:r "*S-1-5-18:(OI)(CI)F" "*S-1-5-32-544:(OI)(CI)F"
S-1-5-18 - SYSTEM, S-1-5-32-544 - «Администраторы»; SID не зависят от языка Windows. Если служба работает от gMSA, добавьте её с правом изменения (см. ниже).
Kerberos без пароля
На Windows коннектор входит в каталог через SSPI учётной записью, от которой запущена служба. Пароль в конфигурации при этом не хранится.
- Учётная запись компьютера. Служба по умолчанию работает от LocalSystem и в домене представляется учётной записью компьютера (
COMPANY\SERVER$). Прав на чтение каталога у неё по умолчанию достаточно. В мастере ответьтеkerberosна вопрос «Вход», вопросы про keytab и principal пропустите (они только для Linux). Без вопросов:setup --profile ad --url ldaps://dc1.company.local:636 --base-dn "DC=company,DC=local" --kerberos. - gMSA. Если политика ИБ требует отдельную учётную запись, создайте групповую управляемую учётную запись службы и запустите службу от неё:
# на контроллере домена (модуль ActiveDirectory); KDS root key в домене уже должен существовать
New-ADServiceAccount -Name gmsa-trialix -DNSHostName gmsa-trialix.company.local -PrincipalsAllowedToRetrieveManagedPassword "SERVER$"
# на сервере коннектора
Install-ADServiceAccount gmsa-trialix
sc.exe config TrialixConnector obj= "COMPANY\gmsa-trialix$" password= ""
icacls "$env:ProgramData\Trialix\Connector" /grant "COMPANY\gmsa-trialix$:(OI)(CI)M"
Restart-Service TrialixConnector
У gMSA должно быть право «Вход в качестве службы». Адрес каталога в настройке должен быть именем сервера (FQDN), а не IP-адресом: коннектор запрашивает билет для ldap/<имя из адреса>.
Команды doctor и preview, запущенные в консоли, входят в каталог учётной записью того, кто их запустил, а не учётной записью службы.
Параметры setup
| Флаг | Значение |
|---|---|
--profile | ad, samba, freeipa, openldap, custom |
--url | адрес каталога: ldaps://host:636 или ldap://host:389 |
--starttls | включить StartTLS для ldap:// |
--ca-file | файл PEM с корневым сертификатом каталога |
--base-dn | базовый DN поиска |
--user-base-dn, --group-base-dn | отдельные ветки для сотрудников и групп |
--bind-dn | сервисная учётная запись (DN или user@domain), включает простой вход |
--password-env | имя переменной окружения с паролем |
--kerberos | вход по Kerberos (на Windows - SSPI) |
--user-filter, --group-filter | свои LDAP-фильтры |
--attr ключ=атрибут | свои атрибуты для профиля custom, см. «Произвольный LDAP» |
--trialix-url | адрес Trialix, по умолчанию https://api.trialix.ru |
--proxy | прокси для связи с Trialix |
--insecure | отключить проверку сертификата каталога; только для стенда, doctor будет показывать предупреждение |
Флаги можно передавать по частям: каждый вызов setup меняет только названные параметры.
Журнал
- «Просмотр событий», «Журналы Windows», «Приложение», источник
TrialixConnector. - Файл
%ProgramData%\Trialix\Connector\connector.log. - Экран состояния:
trialix-connector.exeбез параметров в консоли. Клавиши: 1 - мастер настройки, 2 - проверка соединений, 3 - предпросмотр каталога, 4 - журнал, q - выход.
Обновление
.\trialix-connector.exe update
Restart-Service TrialixConnector
Коннектор проверяет подпись и контрольную сумму до замены файла. Старый файл остаётся рядом с именем trialix-connector.exe.old.
Чек-лист первой установки
trialix-connector.exe versionпечатает версию иwindows/amd64.enrollс кодом из ЛК отвечает названием компании.setupсохраняет настройки,doctor- все строки[ok].service install- службаTrialixConnectorв состоянии «Выполняется».- В ЛК карточка коннектора «в сети» в течение минуты.
- «Обновить список групп» - группы каталога появились в ЛК.
- В журнале «Приложение» есть записи источника
TrialixConnector. - После перезагрузки сервера служба поднялась сама, коннектор снова «в сети».
Если какой-то пункт не прошёл, пришлите в поддержку вывод doctor и последние строки connector.log.
Обновлено 29.09.2026