Мы в компании давно используем готовые образы систем для быстрого разворачивания рабочего места, но появилась проблема как это сделать удаленно. Попытки объяснить человеку на другом конце страны в каком порядке и что делать утомили. Проще научить загружаться с флешки, а дальше уже самому поставить разворачиваться образ или наоборот сделать его. Для этого пришлось немного дополнить образ стандартного загрузочного диска 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"
  1. wpeinit инициализация;

  2. Отключаем фаервол, тк он блочит подключение к образу (так проще чем добавлять правило, но вы всегда можете сами переделать);

  3. Инициализируем подключение с названием подключения (это название из файла настроек rasphone.pbk)  vpnp логином acronis и паролем acronisbootdisk;

  4. дальше происходит запуск скрипта который находится в корне диска.

Этап 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. Доступ к хранилищу с авторизацией в домене работает.

Комментарии (1)


  1. ciuafm
    13.10.2022 14:03

    Автор, пиши ещё!