exchanger/docs/operations/WINDOWS_KIOSK_SETUP.md

6.9 KiB
Raw Permalink Blame History

Настройка Windows-киоска Exchanger

Граница ответственности

Exchanger в production включает borderless fullscreen, скрывает курсор и восстанавливает полноэкранный режим после смены фокуса, дисплея или разрешения. Приложение не может блокировать Ctrl+Alt+Del, системные жесты, переключение пользователя и аварийные средства Windows. Эти ограничения настраиваются операционной системой.

Выделенная учётная запись

  1. Создайте локального пользователя без административных прав, предназначенного только для автомата.
  2. Запретите интерактивный доступ к рабочим документам и сетевым ресурсам, которые не нужны Exchanger.
  3. Выдайте пользователю права записи только в %APPDATA%\Godot\app_userdata\Exchanger и каталог установки, если обновление выполняется отдельным сервисом.
  4. Настройте автоматический вход только после оценки физической безопасности автомата.
  5. Для полной блокировки оболочки используйте Windows Assigned Access либо Shell Launcher в поддерживаемой редакции Windows. Не переименовывайте exe и не заменяйте системную оболочку до проверки процедуры восстановления.

Автозапуск и watchdog

В tools/windows находятся:

  • Exchanger.Watchdog.ps1 — запускает приложение и перезапускает его после завершения;
  • Install-ExchangerKioskTask.ps1 — создаёт задачу Планировщика при входе выделенного пользователя;
  • Uninstall-ExchangerKioskTask.ps1 — удаляет только эту задачу.

Установка выполняется вручную из PowerShell под киоск-пользователем:

.\tools\windows\Install-ExchangerKioskTask.ps1 `
  -ExecutablePath 'C:\Program Files\Exchanger\Exchanger.exe' `
  -WhatIf

.\tools\windows\Install-ExchangerKioskTask.ps1 `
  -ExecutablePath 'C:\Program Files\Exchanger\Exchanger.exe'

Сначала обязательно используйте -WhatIf. Watchdog хранит собственный ограниченный журнал в %LOCALAPPDATA%\Exchanger\watchdog; пользовательские журналы приложения находятся отдельно в %APPDATA%\Godot\app_userdata\Exchanger\logs.

Питание и дисплей

  • отключите сон, гибернацию и автоматическое выключение дисплея для киоск-профиля;
  • запретите USB selective suspend для подтверждённого COM-контроллера;
  • задайте фиксированную портретную ориентацию и масштаб Windows;
  • отключите автоматическое подключение беспроводных дисплеев;
  • после замены монитора проверьте 1080×1920 и fallback 720×1280;
  • настройте автоматическое включение ПК после восстановления питания в BIOS/UEFI.

Защищённый сервисный вход

Production не реагирует на F10. Экран PIN открывается только после физического сообщения SERVICE от периферийного контроллера и только когда пользовательская операция не выполняется. Защита включается в разделе «Общие» настроек владельца. После автосохранения и выхода следующий вход показывает создание PIN: необходимо ввести и повторить от 4 до 12 цифр. Последующие входы проверяют этот PIN; после пяти ошибок вход блокируется на 30 секунд. Кнопка «Сбросить PIN» удаляет старые проверочные данные, после чего новый PIN задаётся при следующем входе.

Открытый PIN не входит в appsettings.json, резервную копию, журналы или diagnostic UI. В секции Security сохраняются только случайная соль, PBKDF2-SHA256-хеш и число итераций. Доступ к самому файлу конфигурации и учётной записи Windows всё равно должен быть ограничен средствами ОС. AES-ключ, платёжные данные и сырые команды контроллера через UI недоступны.

Приёмка после настройки

  1. Перезагрузите Windows и убедитесь, что появляется только Exchanger.
  2. Завершите процесс через диспетчер задач из административной сессии и проверьте перезапуск.
  3. Смените разрешение/отключите тестовый монитор и проверьте восстановление fullscreen.
  4. Убедитесь, что клавиатура пользователя не открывает сервисные функции release-сборки.
  5. Нажмите физическую кнопку SERVICE, проверьте PIN и блокировку после пяти ошибок.
  6. Проверьте штатное удаление задачи через Uninstall-ExchangerKioskTask.ps1 -WhatIf, затем без -WhatIf на тестовом стенде.

Восстановление

Держите отдельную административную учётную запись и документированный способ временно вернуть Explorer. До обновления сохраняйте подписанный установочный пакет и последнюю рабочую версию. Не удаляйте appsettings.json.bak: приложение использует её для восстановления после повреждения или обрыва питания во время записи.