Статья описывает процесс подготовки установочного пакета для «тихого» развертывания сервера UltraVNC на рабочих станциях пользователей
Для решения данной задачи будет создан файл настроек, автоматический распространяющийся в процессе установки на компьютеры пользователей (благодаря чему удаленные подключения станут возможными сразу после развертывания, так как запускаемая по завершении установки служба будет использовать нужные параметры), а также файл трансформации для установочного пакета UltraVNC, вносящий определенные изменения в ход развертывания (такие, как отмена создания ярлыков и установки просмотрщика UltraVNC, добавление необходимых для Windows-аутентификации ключей в реестр и т.д.)
Полученный установочный пакет можно будет распространить на компьютеры пользователей посредством групповой политики, Kaspersky Security Center и другими аналогичными способами
- устанавливаем UltraVNC на тестовом компьютере, запускаем приложение «UltraVNC Settings» и выполняем необходимые настройки
- При этом обязательно включаем проверку подлинности Windows, обеспечивающую возможность предоставления права удаленного подключения локальным и доменным пользователям и группам. Несмотря на то, что аутентификация в этом случае будет выполняться внешними по отношению к UltraVNC средствами, учетные данные для внутренней проверки подлинности UltraVNC все равно должны быть указаны
- По завершении конфигурирования в реестре Windows будет создан раздел "HKEY_LOCAL_MACHINE\Software\ORL\WinVNC3", содержащий информацию о группах и пользователях с правом удаленного подключения, а в папке установки программы – файл UltraVNC.ini, хранящий все остальные параметры конфигурации сервера UltraVNC
- скачиваем ISO-образ Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
- монтируем скачанный образ, переходим в папку "Setup\WinSDKTools", открываем архив cab1.cab, извлекаем из него файл "WinSDK_Orca_Msi_5E20C107_DAA3_4D49_AFAE_7FB2594F0CDC_x86", изменяем его расширение на "msi" и выполняем установку утилиты ORCA
- открываем в ORCA установочный MSI-пакет UltraVNC
- в главном меню выбираем пункт «Transform – New Transform»
- отключаем установку компонента «Viewer» (на рабочих станциях необходим только сервер "UltraVNC"), для чего переходим к таблице «CustomAction», выбираем строку «CustomCheckC_SetProperty_CHECKBOX2 – 307 – VIEWER – 1» и удаляем значение поля «Target»
- отключаем создание ярлыков в «Главном меню» и на «Рабочем столе», для чего переходим к таблице «Shortcuts» и удаляем все записи
- добавляем в реестр информацию о группе безопасности (в нашем случае – локальной группе «Администраторы»), членам которой будет разрешено удаленное подключение, для чего переходим к таблице «Registry» и добавляем новую запись со следующими значениями полей
- Registry – REG_8E29FEC8D8F44EA898A22D8310862267
- Замечание: в качестве имени берем имя компонента, создающего папку установки программы в «Program Files», удаляем начальные символы «C__» и добавляем в начало строки «REG_»
- Root – 2
- Замечание: «2» означает «HKEY_LOCAL_MACHINE»
- Key – Software\ORL\WinVNC
- Name – ACL
- Value – #x0200200001000000000018000300000001020000000000052000000020020000
- Замечание: #x используется для обозначения того, что указанной далее значение нужно интерпретировать как двоичные данные
- Component_ - C__8E29FEC8D8F44EA898A22D8310862267
- Замечание: в качестве компонента, контролирующего изменения данного параметра реестра, используем компонент, создающий папку установки программы в «Program Files»
- настраиваем копирование в папку установки файла конфигурации, для чего:
- генерируем посредством Powershell GUID для имени компонента
- [guid]::NewGuid().ToString().ToUpper()
- Замечание: далее в качестве созданного GUID будет использоваться значение «2FB5AE40-B2DB-46A3-831F-37784F6BC8FC»
- генерируем посредством Powershell GUID для имени файла
- Замечание: далее в качестве созданного GUID будет использоваться значение «5C57F514-1631-434A-928B-1AB9F1609435»
- переходим к таблице «Components» и добавляем новую строку
- Component - С__2FB5AE40B2DB46A3831F37784F6BC8FC
- CompomemtId - {2FB5AE40-B2DB-46A3-831F-37784F6BC8FC}
- Directory - TARGETDIR
- Attributes - 0
- Замечание: данный параметр определяет атрибуты для удаленного запуска; «0» означает, что никакие дополнительные атрибуты не указаны
- Condition – оставляем пустым
- KeyPath - _5C57F5141631434A928B1AB9F1609435
- переходим к таблице «FeatureComponents» и добавляем новую строку
- Feature_ - DefaultFeature
- Component_ - С__2FB5AE40B2DB46A3831F37784F6BC8FC
- переходим к таблице «File» и добавляем новую строку
- File - _5C57F5141631434A928B1AB9F1609435
- Component_ - С__2FB5AE40B2DB46A3831F37784F6BC8FC
- FileName - UltraVNC.ini
- FileSize - <размер_файла_в_байтах>
- Attributes – 8192
- Замечание: «8192» означает, что файл не сжат
- Sequence - <наибольшее значение в данном столбце> + 1
- переходим к таблице «Media» и вносим следующие изменения
- LastSequence - <использованное выше значение поля "Sequence" таблицы "File">
- Cabinet - оставляем пустым, т.к. файл не входит в какой-либо cab-пакет
- выбираем пункт меню «Transform - Generate Transform» и указываем путь для сохранения файла трансформации transform.mst
- размещаем файл установочный пакет UltraVNC, файл конфигурации UltraVNC.ini и файл трансформации transform.mst в одной папке
- для запуска "тихой" установки выполняем
- msiexec /i UltraVnc_1212_X64.msi /quiet TRANSFORMS=transform.mst
Замечание: для использования на удаленном компьютере русской раскладки клавиатуры необходимо в настройках клиента включить параметр "Japanese keyboard", при этом на локальном компьютере также должна быть выбрана русская раскладка клавиатуры, а их переключение должно выполняться на удаленном компьютере