Мы в компании давно используем готовые образы систем для быстрого разворачивания рабочего места, но появилась проблема как это сделать удаленно. Попытки объяснить человеку на другом конце страны в каком порядке и что делать утомили. Проще научить загружаться с флешки, а дальше уже самому поставить разворачиваться образ или наоборот сделать его. Для этого пришлось немного дополнить образ стандартного загрузочного диска Acronis Bootable PE добавив VNC и подключение по VPN до нашего шлюза.
Этап 1. Создание основы - загрузочный образ Acronis
Для начало нужно создать загрузочный образ, на основе windows.
Bootable Rescue Media Builder.
Устанавливаем необходимый софт ( я ставил все по умолчанию):
Сохраняем ISO файл в удобное для нас место.
На выходе у нас загрузочный образ диска AcronisBootablePEMedia.iso
Открываем данный образ и копируем из папки sources образ системы boot.wim
Этап 2. Подключение образа boot.wim как диск
Открываем командную строку(сmd или PowerShell) от имени администратора и вводим команду:
Dism /Mount-Wim /index:1 /WimFile:H:\boot.wim /MountDir:H:\1
где H: буква диска с файлом boot.wim, 1 - папка, в которую мы смонтируем содержимое образа файла boot.wim
Этап 3. Добавление VNC
Перед добавление VNC сервера необходимо провести все настройки клиента.
Указываем пароль для доступа
Убираем галку “Disable ini file settings and use registry” чтоб настройки хранились в файле UltraVNC.ini, а не в реестре
Копируем подготовленную папку с сервером VNC в удобную директорию в нашем распакованном образе. У меня будет каталог progs
Этап 4. Добавление VPN
В образе отсутствуют библиотеки и функционал работы с подключениями. Для дальнейшей работы нам необходимо добавить их из полного образа.
Так как мы создавали образ на основе windows 10, то нужные файлы мы можем взять из уже рабочей системы.
Нам необходимы следующие файлы:
rasapi32.dll
rasdial.exe
rasman.dll
rasmans.dll
rtutils.dll
wkscli.dll
Создаю папку ras в уже созданном каталоге progs и копирую туда эти файлы.
Этими действиями мы только добавили возможность создавать подключение, но для подключения нужны настройки VPN.
Все настройки подключения хранятся в файле rasphone.pbk. У него 2 пути хранения: пользовательский и локальный.
Папка пользователя\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk
%ProgramData%\Microsoft\Network\Connections\Pbk\rasphone.pbk
Самый простой способ создания подключения, это настроить у себя на рабочем компьютере и перенести этот файл с настройками.
Самый простой способ это настройка PPTP - но мы заметили, что некоторые провайдеры и роутеры не пропускают такое подключение.
rasphone.pbk это простой текстовый файл, спокойно открывается блокнотом.
Нас интересуют поля:
1. Название подключения, оно заключено в квадратные скобки, самая первая строка:
[VPNp]
2. Вариант подключения PPTP L2TP SSTP:
PreferredDevice=WAN Miniport (PPTP)
Device=WAN Miniport (PPTP)
Добавляем наш файл с настройками в раздел примонтированного образа H:\1\ProgramData\Microsoft\Network\Connections\pbk
Папку pbk придется создать.
В случае подключении SSTP:
PreferredDevice=WAN Miniport (SSTP)
Device=WAN Miniport (SSTP)
Сертификат для SSTP
Дальше рассматриваем вариант SSTP, тк для его работы нужно еще добавить сертификат.
Сначала сертификат добавляем в рабочую систему, где подключение по sstp работало ( с нее мы и забираем файл с настройками подключения).
Для упрощения поиска сертификата, при установке в систему, выбираем расположение хранилища “локальный компьютер”
“Поместить все сертификаты в следующее хранилище” выбираем “Доверенные корневые центры сертификации”
Добавили. Открываем оснастку Пуск - выполнить - certmgr.msc
Доверенные корневые центры сертификации - Сертификаты
Находим наш сертификат и открываем его, ищем вкладку “Состав”. Смотрим поле “Отпечаток”
Данный отпечаток будет совпадать с названием раздела этого сертификата в реестре.
Открываем оснастку Пуск - выполнить - regedit
Путь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\ROOT\Certificates
Идем по ветке реестра до раздела Certificates
ищем раздел который совпадает по названию с отпечатком нашего сертификата.
После чего экспортируем данный раздел и сохраняем в удобное для нас место. Получаем REG файл.
Добавление сертификата в образ.
Открываем оснастку Пуск - выполнить - regedit - HKEY_LOCAL_MACHINE
Файл - загрузить куст - папка с подключенным образом
h:\1\Windows\System32\config\SOFTWARE
Задаем Имя раздела - 123
Редактируем выгруженный ранее REG файл меняем SOFTWARE на 123
получаем ветку HKEY_LOCAL_MACHINE\123\Microsoft\SystemCertificates\ROOT\Certificates\32323F22E9065D0157DE9B902020DA41A12B4E53
сохраняем. Далее Файл - Импорт выбираем наш REG файл.
Теперь видим что в ветку с сертификатами добавился наш раздел.
Выделяем снова раздел 123 Файл - Выгрузить куст. Теперь в реестре образа у нас сохранен сертификат для подключения SSTP.
Этап 5. Создания скрипта запуска всех приложений
Для того чтоб все приложения у нас запустились в нужном порядке будем использовать AutoIt.
Скачиваем AutoIt– Self Extracting Archive с модулем Aut2Exe.
Для начала нам нужно создать файл с параметрами выполнения скрипта пусть будет p.au3.
Открываем этот файл в блокноте и добавляем:
$System32Dir=@SystemDir
$SystemDrive=Stringleft($System32Dir,2)
If FileExists($SystemDrive & "\Progs\vnc\winvnc.exe") <> 1 Then
$deadfile = " Отсутствует необходимый файл: " & $SystemDrive & "\Progs\vnc\winvnc.exe"
MsgBox(4096, "Внимание!", "Работа программы завершается " & $deadfile)
_END ()
EndIf
If FileExists($SystemDrive & "\Program Files\Acronis\TrueImageHome\trueimage_starter.exe") <> 1 Then
$deadfile = " Отсутствует необходимый файл: " & $SystemDrive & "\Program Files\Acronis\TrueImageHome\trueimage_starter.exe"
MsgBox(4096, "Внимание!", "Работа программы завершается " & $deadfile)
_END ()
EndIf
SplashTextOn("Пожалуйста подождите...", "Инициализация системы...",200,80)
WinActivate("Пожалуйста подождите...", "")
Run($SystemDrive & "\Program Files\vnc\winvnc.exe")
SplashOff()
Сохраняем.
Запускаем Aut2exe_x64.exe и указываем наш файл со скриптом. На выходе нам нужно получить exe файл.
Переименовываем полученный файл в start.exe и помещаем его в корень нашего образа H:\1
Этап 6. Редактирование файла автозагрузки приложения у нашего образа
Файл startnet.cmd который отвечает за загрузку Акрониса находится h:\1\windows\system32.
Открываем его редактором и видим:
Если добавить тут запуск наших приложений, то ничего не запустится из-за ошибки нехватки памяти, поэтому необходимо запускать все по очереди.
Редактируем файл и приводим к виду:
wpeinit
Wpeutil DisableFirewall
X:\progs\ras\rasdial.exe vpnp acronis acronisbootdisk
start
"X:\start.exe"
wpeinit инициализация;
Отключаем фаервол, тк он блочит подключение к образу (так проще чем добавлять правило, но вы всегда можете сами переделать);
Инициализируем подключение с названием подключения (это название из файла настроек rasphone.pbk) vpnp логином acronis и паролем acronisbootdisk;
дальше происходит запуск скрипта который находится в корне диска.
Этап 7. Сохранение образа
После редактирования производим отключение образа install.wim командой:
Dism /Unmount-Wim /MountDir:H:\1 /Commit
Этап 8. Возвращаем wim образ обратно в iso
Нам нужно приложение которое может отредактировать iso файл, я беру UltraISO
Открываем наш изначально созданный файл AcronisBootablePEMedia.iso и путем простого перетаскиванием заменяем нашим переделанным файлом boot.wim с диска H
Файл - Сохранить.
Образ Акрониса который сам подключается по VPN до вашего оборудования с запущенным VNC сервером готов. Дальше вам остается всего лишь подключиться к нему и пользоваться.
Acronis что-то делает со своим продуктом, в версии от 2021 года он глючит если образ искать используя доменную учетную запись. Последняя нормально рабочая версия acronis true image 2018 build 12510. Доступ к хранилищу с авторизацией в домене работает.