Найти в Дзене

Как я создавал установщик WebDAV-клиента: опыт, подход, решения

Как я создавал установщик WebDAV-клиента: опыт, подход, решения Автор: инженер-практик на стыке автоматизации, системного администрирования и разработки установочных решений WebDAV — это один из самых простых способов предоставить доступ к облачному хранилищу как к обычному сетевому диску. Но в реальных условиях его подключение вручную — это всегда проблема. Особенно для сотрудников, которые не должны и не хотят лезть в net use, PowerShell и диалоги Windows. Цель была конкретной и практичной:
создать автоматический установщик, который: С самого начала мы определили жёсткие рамки: Основной выбор был между двумя подходами: Победил второй вариант — NSIS + PowerShell.
Почему: Реализация строится по следующей логике: Вариант с net use подразумевает передачу логина и пароля в командной строке. Мы сознательно не стали сохранять их в виде планировщика задач или BAT-файлов. Вместо этого — однократный запуск через PowerShell и удаление скрипта. Windows 7 с отключённым WebClient — отдельная ис
Оглавление

Как я создавал установщик WebDAV-клиента: опыт, подход, решения

Автор: инженер-практик на стыке автоматизации, системного администрирования и разработки установочных решений

Зачем я вообще это сделал

WebDAV — это один из самых простых способов предоставить доступ к облачному хранилищу как к обычному сетевому диску. Но в реальных условиях его подключение вручную — это всегда проблема. Особенно для сотрудников, которые не должны и не хотят лезть в net use, PowerShell и диалоги Windows.

Цель была конкретной и практичной:

создать автоматический установщик, который:

  • Подключает WebDAV-диск с нужной буквой;
  • Использует логин и пароль без участия пользователя;
  • Проверяет успешность подключения;
  • Добавляет автозагрузку;
  • Работает под Windows 7, 8, 10 и 11;
  • Не требует от пользователя ничего, кроме двойного клика.

Какие были требования

С самого начала мы определили жёсткие рамки:

  • Установка в один клик.

    Никаких ручных шагов, ничего через "Сетевое окружение".
  • Поддержка старых систем.

    У заказчика были терминальные клиенты на Windows 7, отказываться от них пока нельзя.
  • Безопасность.

    Пароли — только в памяти или в конфиге, но не в открытых ярлыках, планировщиках и реестре.
  • Работа в пользовательском контексте.

    Без UAC, без прав администратора, без всплывающих чёрных окон.

С чего я начал

Основной выбор был между двумя подходами:

  1. Делать полноценное desktop-приложение.
  2. Написать установщик с логикой подключения.

Победил второй вариант — NSIS + PowerShell.

Почему:

  • Не нужен .NET, не нужен Python.
  • Вес — десятки килобайт.
  • Логика легко встраивается в сценарий установки.

Архитектура решения

Реализация строится по следующей логике:

  1. Конфигурация из config.ini
    Предзаполняются: логин, пароль, буква диска, адрес сервера.
    Если файл отсутствует — вызывается GUI-форма (через nsDialogs).
  2. Монтирование WebDAV-диска
    Через net use в PowerShell.
    Автоматическое удаление предыдущего подключения, если буква занята.
  3. Создание ярлыков
    На рабочем столе.
    В автозагрузке (через VBS-обёртку, чтобы не было видимого окна PowerShell).
  4. Проверка подключения
    До 3 попыток, с выводом понятного сообщения пользователю.
  5. Удаление временных файлов
    Сценарии подключения, вспомогательные VBS — всё чистится.

Что было сложно

❌ Безопасность логина и пароля

Вариант с net use подразумевает передачу логина и пароля в командной строке. Мы сознательно не стали сохранять их в виде планировщика задач или BAT-файлов. Вместо этого — однократный запуск через PowerShell и удаление скрипта.

❌ Поддержка Windows 7

Windows 7 с отключённым WebClient — отдельная история. Пришлось тестировать и писать инструкции, как включать нужные службы.

❌ Бесшумный автозапуск

PowerShell в автозагрузке запускается чёрным окном, даже если он ничего не делает. Решили это через VBS-файл, вызывающий PowerShell в скрытом режиме.

Почему это работает

  • Установщик сам запрашивает всё, что ему нужно.
  • Он не полагается на системные настройки пользователя.
  • Он не оставляет лишних следов.
  • Он работает одинаково в разных версиях Windows.

Что дальше

Сейчас рассматриваем развитие в двух направлениях:

  • Подключение через сертификаты (без логина/пароля).
  • Интеграция с Telegram-ботом, который будет генерировать индивидуальные INI-файлы и установщики под каждого пользователя.

Итог

Этот проект стал хорошим примером того, как простая задача ("подключить сетевой диск") на практике требует грамотного подхода, учёта нюансов ОС и тщательной проработки UX даже в таких "технических" задачах.

Надёжный установщик — это не просто zip-архив с инструкцией. Это часть бизнес-процесса.