LaPorta USB

Раскатка на парк

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

Путь к файлу политики передаётся установщику через параметр POLICYPATH. Путь по умолчанию, на который служба идёт, если параметр не задан, — сетевая шара \\server\laportausb$\policy.json. Для парка машин имеет смысл держать policy.json именно там: на сетевом ресурсе, доступном компьютерам домена на чтение, — правка одного файла на шаре применяется ко всем машинам без переустановки пакета.

Пакет и файл преобразования

  1. Положить LaPortaUsb.msi на шару, доступную компьютерам домена на чтение.
  2. Создать файл преобразования (.mst) с нужным значением POLICYPATH — в тихой установке через групповую политику параметры иначе не передать.

Значение POLICYPATH из файла преобразования, как и при обычной установке, попадает в реестр (HKLM\SOFTWARE\LaPortaUsb\PolicyPath) и там авторитетно: при раскатке доменной политикой авторитетен параметр установки, а не файл appsettings.json, поставленный рядом с программой.

Назначение на подразделение

Назначить пакет на подразделение: «Конфигурация компьютера» → «Установка программ». Именно на компьютер, а не на пользователя: служба ставится машинно.

Смена версии

Новая версия ставится тем же пакетом с тем же кодом обновления (UpgradeCode) и увеличенной версией. Отдельно удалять прежнюю версию не нужно: Windows Installer снимает её и ставит новую в рамках одной операции.

Чего делать нельзя — подменять файлы в каталоге программы мимо установщика. Причина в учёте отключённых узлов: он живёт в %ProgramData%\LaPorta USB\disabled-nodes.json и хранит вместе с узлом класс носителя. Формат прежних версий новая служба читает, обратно — нет. Подмена файлов на прежнюю версию оставит машину с записями, которых та не понимает: отключённые узлы останутся отключёнными, а служба о них не узнает, и включать их придётся руками через диспетчер устройств.

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

Обновление той же версией разрешено явно (AllowSameVersionUpgrades в Package.wxs): установка новой сборки поверх прежней удаляет её и ставит новую. Без этого Windows Installer одинаковые версии за обновление не считает — установка завершается успехом и не делает ничего, а при некоторых сочетаниях в списке установленных программ появляется вторая копия. Найдено на приёмке.

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

Чек-лист перед раскаткой

Из раздела 8 спеки. Выполняется до установки на вторую машину.

  1. Проверить модуль «Контроль устройств» в Kaspersky Endpoint Security. Если он включён для USB-накопителей — либо отключить его для них, либо отказаться от установки программы. Два независимых блокировщика на одной шине дают невоспроизводимое поведение: какой из них сработает первым, предсказать нельзя.
  2. Внести папку установки и оба исполняемых файла в доверенную зону KES. Иначе самозащита или контроль активности приложений может помешать отключению устройства, и запрет будет срываться без внятной причины.
  3. Прогнать полный цикл на одной машине: запрет, только чтение, разрешение, перезагрузка, работа токена, вход по токену.