Вместо вступления
Дорогой читатель, как автор данного опуса, я прошу простить мне слог изложения и некоторые фривольности в повествовании, ибо я не силен в стилистике, да и нужных университетов не оканчивал.Данный документ появился в рамках решения проблемы обновления клиентов с множества версий и редакций на целевую. В процессе решения этой задачи, мы сталкивались с разными трудностями, находили новую информацию и совершали ошибки. Некоторые ошибки были допущены (и исправлены) даже при написании данного документа. Невозможно всё держать в голове постоянно =)
Зачем нужен данный документ? Экономия времени.
Убедительно настаиваю прочитать данный текст минимум три раза, перед тем как использовать:
- Для ознакомления, что вообще происходит и как. Особенно дополнительный раздел;
- Для формирования вопросов и поиска ответов на них;
- Для закрепления информации.
Подготовка
Первое что необходимо сделать:- Определить целевой АРМ: Ноутбук/системный блок, версию ОС, объем ЖД, объем RAM.
- Для этого подойдет статистика marvel client, достаточно бесплатной версии.
- Да, придется написать агент для отчета, либо сидеть и выверять руками, но это необходимо.
- Получить доступ к этому АРМ.
- Для этого можно воспользоваться такими способами:
- Получить АРМ физически
- Настроить VM (предпочтительнее из-за возможности snapshot’ов)
- Найти необходимое ПО:
- InstallShield Tuner от IBM: только в интернете или по знакомым (HCL включила его в пак версии 11 и 12)
- Файл ITW под необходимый целевой пакет для работы с InstallShieldTuner: на портале FlexNet
- Nice Tool для удаления предыдущей версии Notes: на портале FlexNet
- Установочный пакет Notes нужной версии и редакции: на портале FlexNet
- Установочные файлы FixPack, при их необходимости: на портале FlexNet
- Notepad или Notepad++ для редактирования bat-файлов.
- Определить тип конечного пакета:
- Редакция Basic или Standard
- Notes only + MultiUser
- Notes only + SingleUser
- Notes only + Citrix (Multiuser only)
- Notes + Designer
- Notes + Designer + Administrator
- Определить, как будет распространяться пакет по целевым АРМ:
- Автоматически через политики или через SCCM, или другой способ доставки
- Ручная установка на каждый АРМ
- Определить какого рода будет конечный установочный пакет:
- Тихая установка без показа диалога: для политик и SCCM
- Установка с отображением прогресса: образ для Citrix, ручная установка
- Глубоко вздохнуть и быть готовым ко всему.
- Standard RU Notes Only 11.0.1FP3 + MultiUser
- Standard RU Notes Only 11.0.1FP3 + Citrix (Multiuser only)
Целевой АРМ будет представлен в виде
- VM на базе Windows 7 Enterprise x64, 4 Gb RAM, 32 GB HDD
- Пользователь с правами Администратора для создания пакета
- Пользователь без прав Администратора для тестирования запуска
Настройка и установка VM
В данном руководстве не будет описан процесс создания, установки и настройки VM. Данный процесс не является сложным и не требует специальных знаний.Совет: После настройки VM, открытия к ней доступа по RDP, создания нужных пользователей лучше сразу же сделать «Снимок машины», чтобы можно было в любой момент вернуться на нужную точку.
Дополнительно: Можно установить и настроить несколько разных версий Notes и их редакций (Standard/Basic, MultiUser, SingleUser и так далее). Произвести подключение со всех этих клиентов к тестовым серверам, чтобы они были сконфигурированы. Затем создать снимки на каждую версию.
Это очень сильно поможет при тестировании пакета и анализа результатов, а также поможет выявить проблемы. Список проблем, с которым столкнулся автор данного руководства будет представлен в конце документа.
Итак, мы получили целевой АРМ. Заходим на него под пользователем с правами Администратора.
Сначала необходимо установить на данную машину InstallShield Tuner, просто запускаем и жмем везде Next, потом Finish.
Теперь берем обычный установщик Notes и устанавливаем целевой клиент вручную. Данный процесс мы делаем, чтобы удостовериться, что на целевом АРМ присутствуют необходимые DLL библиотеки. В частности, пакет MS Visual C++ 2015-2019 (рисунок 1)
Рисунок 1 – Пакет системных библиотек
Пакет может быть найден на сайте Microsoft. Существуют версии для x86 и x64.
Без данного пакета в системе установить клиент Notes будет нельзя. Отсутствие данного пакета может быть вызвано тем, что мы имеем чистый АРМ, без дополнительного ПО и пакетов обновлений, которые могут быть у пользователя. В 99% данный пакет уже будет в системе, но, если нет – вы знаете что делать.
Теперь мы сделаем снимок машины. В данном случае это будет наша стартовая точка «zero_point», куда мы будет периодически возвращаться, чтобы повторить нужные действия или исправить ошибки.
После установки клиента, его необходимо сконфигурировать, то есть подключаемся к нужным серверам и смотрим что происходит. Если всё успешно, а обычно это так, то в нашем случае мы откатываемся на «zero_point», то есть на снимок до установки целевого клиента. Если же используется не VM, то с помощью Nice Tool необходимо полностью удалить целевой клиент: программную часть, папки пользователя, вычистить реестр.
Создание пакета
Для создания пакета нам потребуется:- Файл конфигурации ITW, notess_ru.itw
- Инсталлятор основного клиента Notes 11.0.1 RU
- Nice Tool
- Инсталлятор FixPack 3
Запускаем инсталлятор клиента, НО вместо простой установки мы распаковываем файлы из него в отдельную папку. В нашем случае это c:\unpack
Рисунок 2 - Распаковка инсталлятора клиента
В следующем окне мы прерываем установку клиента (рисунок 3). Нам не нужно его устанавливать, нам нужны только файлы из него. Во всех следующих окнах мы подтверждаем, что хотим выйти и закрываем окно установщика.
Рисунок 3 - Прерывание установки
Теперь запускаем InstallShield Tuner. Он находится в Пуск -> Lotus Applications -> InstallShield Tuner for Lotus Notes. При запуске нас просят указать файл ITW, который требуется для создания пакета (Рисунок 4).
В нашем случае это файл «notess_ru.itw». Данный файл взят из архива «InstallShieldTuner_Notes_1101_Win_G2ML.zip» с портала FlexNet. Архив находится в категории «HCL Notes Domino 11.0.1 Group 2». Да, не в общей категории «HCL Notes Domino Complete Collaboration 11.0.1», а в отдельной.
Рисунок 4 – выбор файла ITW
После выбора файла произойдет запуск InstallShield Tuner. Стартовое окно показано на рисунке 5.
Рисунок 5 – Стартовое окно InstallShield Tuner
Выбираем пункт «Create a new Transform». В правой части окна появятся поля, в которых нас просят указать (рисунок 6):
Путь до MSI файла установки: выбираем файл из папки куда распаковали файлы установки.
В нашем случае C:\unpack\HCL Notes 11.0.1.msi
- Задать имя файла ответов.
- По умолчанию файл имеет имя как msi. Рекомендую убрать из него пробелы, в нашем случае пробелы заменены на символ подчеркивания.
- Выставляем галку «Response Transform».
- Можно и без нее, но тогда при запуске конечного пакета надо будет прописывать параметры. Про параметры будет указано в разделе «Дополнительно» данного руководства.
- Так же можно эти же параметры указать в поле ввода ниже под галкой.
Рисунок 6 - Начальная конфигурация
Нажимаем «Create» и сразу же стартует имитация установки клиента. Это происходит потому что мы поставили галку «Response Transform» (без нее данное окно не появляется).
Во время имитации мы задаем параметры для нашего будущего пакета:
- Принимаем лицензию.
- Указываем папки, куда будет установлен клиент и где будет находится папка Data.
- Указываем, какие компоненты будут установлены по умолчанию.
- Указываем, надо ли использовать клиент Notes как программу по умолчанию для Почты, Календаря и Контактов.
- Затем жмем кнопку «Установить».
Итак, мы нажали «Установить». Если все прошло успешно, мы увидим окно, где будет сказано, что файл ответов создан и находится в нашем случае: «C:\unpack\HCL_Notes_11.0.1.mst» (Рисунок 7). Нажимаем «ОК» и приступаем к тонкой настройке будущего пакета.
Рисунок 7 - Успешное создание файла ответов
Тонкая настройка
После предыдущего пункта окно InstallShield Tuner изменилось (Рисунок 8): в его левой части появилось множество пунктов, каждый из которых влияет на установочный пакет.Рисунок 8 - Окно настройки пакета
В данном руководстве не будет полного описания каждого пункта. Отчасти потому, что автор не разбирался с этим. С другой стороны потому, что для создания пакета настраивать что-то в каждом пункте не требуется.
Переходим в пункт Shortcuts (Рисунок 9). Это ярлыки, которые будут созданы после установки.
Рисунок 9 - Ярлыки после установки
Тут мы можем убрать лишнее, например, HCL Notes Minder. Удаление происходит через правую кнопку мыши (рисунок 10).
Рисунок 10 - удаление Notes Minder
Если есть необходимость, можно выставить свойства запуска ярлыка. Например, чтобы при открытии клиента открывалась определенная база, либо ссылка. Можно даже задать определённый путь к notes.ini. Параметр должен быть расположен до слов [INIPARAM].
Рисунок 11 - Указание параметров для ярлыка
Настройка файла Notes.ini
Переходим в пункт INI Files (Рисунок 12). Данный пункт будет влиять только на новых пользователей, которые запускают клиент в первый раз. На пользователей, у которых клиент будет обновлен данным пакетом, это влиять не будет никоем образом.Рисунок 12 - Раздел INI Files
Изначально здесь ничего нет. Предполагается, что никакие дополнительные настройки в notes.ini вносить не потребуется. Либо их можно будет донести до пользователя иным способом: политики, marvel client или служебные агенты и скрипты в самих приложениях Notes. Мы же создадим наш notes.ini, который будет иметь предустановки для новых пользователей.
Через правую кнопку мыши сделаем отображение папки, где будет располагаться прототип notes.ini (рисунок 13). Нам нужен пункт «ProgramFilesFolder»
Рисунок 13 - Папка где будет находиться notes.ini
Теперь у нас появилось дерево папок. Находим в нем папку Notes и через правую кнопку мыши создаем ini-файл (рисунок 14).
Рисунок 14 - Создание ini-файла
После этого файл будет создан и сразу же будет предложено его переименовать, что мы и делаем, указывая название как «Notes.ini». Теперь раскроем этот файл в дереве (рисунок 15) и переименуем секцию «NewSection1» в «Notes».
Важно имя секции указывать именно с заглавной буквы. Не надо указывать что-либо еще в имени, просто «Notes». Если указать неверно или не указать совсем, установка пакета будет происходить без проблем, но вот наш специфичный notes.ini будет игнорироваться.
В правой секции окна (рисунок 15) задаются строки нашего notes.ini.
Мы зададим следующие настройки:
- CREATE_R10_DATABASE = 1
- NSF_UpdateODS=1
- DISABLE_CLIENTRECORD=1
- TCPIP=TCP,0,15,0,,12320
- Log=log.nsf, 1, 0, 7, 10000
- LOGSTATUSBAR=1
- ConfigFile=C:\ProgramData\HCL\Notes\Data\config.txt
Про настройку ConfigFile указано в разделе «Дополнительно» данного руководства.
Рисунок 15 - Параметры Notes.ini
Изменение набора файлов и шаблонов
Предположим, что нам требуется заменить шаблон локальной адресной книги на наш специфичный, либо расположить некую базу на компьютер пользователя сразу после установки.Можем ли мы так сделать сразу при установке? Да, можем.
- Переходим в пункт «Files and Folders» (рисунок 16). Наше окно стало разделено на 4 секции:
- Дерево каталогов/папок на текущей VM
- Содержание каталога/папки из секции А
- Дерево каталогов/папок на целевом АРМ
- Содержание каталога/папки из секции C
Рисунок 16 - Окно Files and Folders
Рисунок 17 - Структура папок
Мы заменили шаблон, чтобы в конечной names.nsf пользователя были созданы документы соединений (Connections). Это произойдет потому, что при создании базы из шаблона всегда копируются документы, которые были в этом шаблоне. Иначе говоря, создается полная копия, которая потом меняет своё расширение с NTF на NSF.
Важно: обратите внимание, что в колонке «Component» у замененного шаблона изменилось значение. Запомните его или запишите, значение понадобится позже. Если будут добавлены какие-либо дополнительные шаблоны баз, то у них так же будет изменен компонент. При этом, если базы будут в одной папке, то имя компонента будет общее для всех.
Теперь, если потребуется изменить шаблон pernames.ntf, то новую версию надо будет так же подменить в существующем пакете.
Теоретически, аналогичным способом можно добавить в пакет необходимые компоненты: например, файлы jar для java или особенные dll, если они используются. Они будут расположены в папке, где находятся исполняемые файлы. Эта папка общая для всех пользователей. А вот базы данных в папку пользователя так доставить не получится.
Рисунок 18 - Замена шаблона локальной адресной книги
Связка компонентов и выгрузка пакета.
Мы сделали все необходимые тонкие настройки, но перед тем как выгрузить установочные файлы, нам необходимо осуществить связку компонентов. Для этого необходимо перейти в пункт «Direct Editor» (рисунок 19).Рисунок 19 - Окно Direct Editor
Для начала найдем пункт «IniFile» и запомним или запишем название его компонента (рисунок 20).
Рисунок 20 - Компонент IniFile
Рисунок 21 - Пункт Component
Рисунок 22 - Измененные компоненты
Для нашего шаблона pernames.ntf мы выставляем значение «MUIMULTIUSER_VDIR_SHARED», чтобы при запуске клиента подхватывался он.
Итак, мы закончили настройку. Теперь нам надо выгрузить файлы инсталлятора. Для этого в верхней панели инструментов мы находим и нажимаем кнопку «Packaging Wizard» (рисунок 23).
Рисунок 23 - Кнопка Packaging Wizard
Выбираем первый пункт, а в пути указываем «C:\InstallPack\» .
Рисунок 24 - Местоположение пакета
Выставляем все галки, которые там есть. Поле для указания аргументов мы оставляем пустым. Да, там можно будет указать дополнительные параметры, но мы будем использовать другой способ.
Рисунок 25 - Настройка Setup.exe
В нашем случае мы пропустим данный пункт и не будем ничего тут указывать. Если в компании используется данное ПО, то можете указать параметры, которые необходимы.
Рисунок 26 - Настройки SMS
Рисунок 27 - Сводная информация
Рисунок 28 - Результаты выгрузки инсталлятора
В результате мы получили две папки:
- Unpack – набор файлов, который мы использовали для настройки пакета;
- InstallPack – набор файлов, которые и есть наш инсталлятор.
А пока мы можем запустить установку из нашего инсталлятора, чтобы проверить как он работает.
Если запустить инсталлятор просто через setup.exe он будет задавать вопросы. Но мы же делали файл ответов. Почему так? Потому, что мы не указали никакие параметры для запуска setup.exe, когда выгружали файлы инсталлятора. Но мы можем это сделать из cmd.
Запускаем cmd, переходим в папку c:\installpack. Пишем (ну ок, копируем) данную команду в окно cmd:
setup.exe /s /v" SETMULTIUSER=1 TRANSFORMS=HCL_Notes_11.0.1.mst /qb"
Запустится установка клиента с применением наших ответов.
После установки можно запустить клиент и убедиться, что он запускается без ошибок.
Если есть ошибки, значит что-то пошло не так и надо разбираться… Может быть не так что-то указали в компонентах. Чтобы это исправить, нам надо заново запустить InstallShield Tuner, но вместо пункта «Create a new Transform» требуется выбрать пункт «Open an existing transform», а в правой части указать файлы: C:\unpack\HCL Notes 11.0.1.msi и C:\unpack\HCL Notes 11.0.1.mst
Потом, после внесения нужных правок, заново через «Packaging Wizard» выгрузить файлы инсталлятора.
Если всё прошло хорошо, клиент установился и запускается, переходим к следующему шагу: создание полного пакета установки.
Создание полного пакета установки
Итак, у нас есть файлы инсталлятора для клиента с нашими настройками. Почему этот инсталлятор неполный? Потому что все, что он делает, это устанавливает клиент, а нам нужно не просто его установить.Нам хочется еще поставит FixPack_3, и немного протюнить клиент.
Если мы запустим текущий инсталлятор, нет никаких гарантий, что при его использовании на АРМ, где уже установлен другой клиент другой редакции, не будет проблем. Еще этот инсталлятор будет запускаться в режиме отображения процесса.
Можем ли мы что-то с этим сделать? Да, можем. Для начала составим план работы будущего установщика.
Коротко этот план выглядит так:
- Выключить клиент Notes, если он запущен
- Удалить текущую версию клиента
- Установить новую версию клиента
- Установить FixPack 3
- Скопировать файл config.txt
- Скопировать файл jvm.properties
- Nice Tool
- Инсталлятор FixPack 3
- jvm.properties с АРМ где уже установлен Notes 11.0.1 FP3
- Nice Tool -> nice.exe
- FixPack_3 -> Notes_1101FP3_Win.exe
- jvm.properties не переименовываем, но надо, чтобы он был указан в нижнем регистре
Да, всё верно, мы будем использовать bat-файл, чтобы запустить установку всего пакета.
Создание инсталлятора c тихой установкой.
Нам необходимо создать копию папки installpack.Созданную копию переименовываем в installpackSilent. В данную папку копируем файлы nice.exe , Notes_1101FP3_Win.exe и jvm.properties.
Внутри папки создаем папку logs, переходим в нее и создаем файл dummy.txt. Файл может быть пустой. Нам нужно его наличие, которое гарантирует наличие папки. В данную папку мы будем писать логи установки клиента через наш инсталятор.
Теперь возвращаемся в папку installpackSilent.
Внутри папки создаем файл config.txt и открываем его на редактирование. Внутрь файла вносим следующие данные и сохраняем файл (вместо текста в <…> надо указать нормальные значения):
Код:
Username=<Шаблон для имени пользователя>
Domino.Name=<имя сервер в нотации Domino>
Domino.Address=<DNS-имя или IP адрес сервера указанного выше>
Domino.Port=TCPIP
Domino.Server=1
AdditionalServices=-1
Тут стоит сделать отступление и рассказать, что же это такое.
Это конфигурационный файл, который будет использоваться при первом запуске клиента, и его значения будут вставлены в диалог конфигурации (рисунок 29).
Рисунок 29 - Диалог конфигурации Клиента
Если указать Username=%USERNAME%, то при первом запуске будет подставлено имя пользователя из ОС. В нашем случае это «admin», но такого пользователя нет в нашей тестовой среде. Следовательно, сервер не авторизует данного пользователя, а подставленный ID-файл будет не валиден. НО: если имя пользователя в Domino совпадает с именем пользователя в ОС или Active Directory, то можно так сделать.
Моя рекомендация: оставить переменную Username пустой, то есть сделать так:
Код:
Username=
Об остальных параметрах можно найти информацию в нашем любимом интернете.
Тем не менее, можно вообще этот файл не создавать, но для этого необходимо будет из пакета, а конкретно из notes.ini, убрать строку про «ConfigFile».
Копируем в папку файл jvm.properties, который мы взяли с АРМ, на котором уже установлен Notes 11.0.1FP3. Открываем данный файл на редактирование и меняем похожие строки на эти:
INI:
vmarg.Xmx=-Xmx512m
vmarg.Xms=-Xms256m
vmarg.Xmca=-Xmca512k
Сохраняем файл.
Внутри папки создаем файл runme.txt. Вот именно в этом файле мы будем создавать магию.
Открываем файл runme.txt на редактирование в стравляем туда следующие строки:
Bash:
REM Отключаем логирование bat-файла
@echo off
REM переходим в папку откуда был запущена наш bat-файл.
REM переменная %~dp0 означает директорию, из которой был запущен файл
cd /D "%~dp0"
REM Если у нас работает клиент, надо его выключить.
REM К сожалению, мы не можем рисковать, поэтому просто снимаем задачи. Фактически, убиваем.
REM Пользователи могут потерять информацию, имейте это в виду.
REM Здесь перечислены все процессы, которые могут быть запущены клиентом. Версии 7-9.
taskkill /F /FI "IMAGENAME eq nsd.exe"
taskkill /F /FI "IMAGENAME eq notes2.exe"
taskkill /F /FI "IMAGENAME eq nlnotes.exe"
taskkill /F /FI "IMAGENAME eq notes.exe"
taskkill /F /FI "IMAGENAME eq ntaskldr.EXE"
REM Запускаем удаление текущего клиента.
REM Мы удаляем только:
REM -rp : исполняемые файлы
REM -wipe : чистим реестр
REM -qn : делаем это тихо, то есть без каких-либо окон и диалогов.
nice.exe -rp -wipe -qn
REM Теперь происходят немного странные вещи.
REM Чтобы обеспечить максимальную совместимость нового пакета, требуется удалить ВСЁ что осталось от предыдущего клиента.
REM Для этого мы удаляем папки ниже.
REM С этим действием связан отдельный риск.
REM Если клиент был SingleUser.
REM То при следующем старте клиента потребуется реконфигурация.
REM Так же пользователь потеряет все локальный реплики и локальные БД.
REM Если этот риск слишком велик, то просто надо убрать/закомментировать шесть строк ниже
rd /S /Q "C:\Program Files (x86)\IBM\Notes"
rd /S /Q "C:\Program Files (x86)\IBM\Lotus"
rd /S /Q "C:\Program Files\IBM\Notes"
rd /S /Q "C:\Program Files\IBM\Lotus"
rd /S /Q "C:\ProgramData\Lotus"
rd /S /Q "C:\ProgramData\IBM\Notes"
REM Запускаем нашу установку.
REM При этом мы указываем файл ответа, что это режим MultiUser
REM Что ход установки надо писать в файл logs\LN11install.log
REM И всё это мы делаем без каких либо окон и диалогов: /qn
setup.exe /s /v"SETMULTIUSER=1 TRANSFORMS=HCL_Notes_11.0.1.mst /qn /l*v logs\LN11install.log"
REM Вот тут, если произошла ошибка мы прерываем работу пакета
If ErrorLevel 1 Goto END
REM Теперь мы запускаем установку FP3
REM Опять же, без лишних окон и диалогов: /qn
REM НО вот задать путь логирования мы не можем.
Notes_1101FP3_Win.exe -s -a /s /v"METHOD=INSTALL /qn"
REM Вот тут, еще раз, если произошла ошибка мы прерываем работу пакета
If ErrorLevel 1 Goto END
REM Копируем наш файл Config.txt, который будет использоваться для подключения
REM в папку, которая доступна всем пользователям и является неким аналогом "шаблона"
copy config.txt %ProgramData%\HCL\Notes\Data\config.txt
REM теперь удаляем файл jvm.properties
del /Q "C:\Program Files (x86)\HCL\Notes\framework\rcp\deploy\jvm.properties"
REM Чтобы заменить его на нашу целевую версию.
copy jvm.properties "C:\Program Files (x86)\HCL\Notes\framework\rcp\deploy\jvm.properties"
REM Ну и всё, выходим из пакета.
:END
Сохраняем наш файл runme.txt и переименовываем его в runme.bat.
На текущий момент мы можем остановиться и использовать папку installpackSilent для установки клиента. Все, что нам требуется, это запустить файл runme.bat с правами Администратора на целевом АРМ.
Мы даже можем расположить папку в сети и настроить её копирование, а потом запуск файла, но это не очень удобно. Поэтому пойдем дальше: упакуем нашу папку в self-exe архив.
Я буду использовать winrar для этого процесса. Мне стоит упомянуть, что для данного действия должен быть установлен WinRar? (=
Итак, выходим из нашей папки на уровень выше и через правую кнопку мыши выбираем пункт «Добавить в архив…».
Рисунок 30 - Добавление папки в архив
Далее сразу выставляем галку «Создать SFX-архив».
Рисунок 31 - Настройки архива
Теперь переходим на вкладку «Дополнительно» и нажимаем кнопку «Параметры SFX…».
Рисунок 32 - Дополнительные настройки архива
В новом окне выставляем путь для разархивирования пакета и ставим галку «Сохранять и восстанавливать пути».
В путь для установки указываем %temp%. В данную директорию мы точно можем делать запись. Путь можно изменить, но надо быть уверенным, что в ту директорию будут права на запись, а в temp мы права на запись имеем всегда.
Рисунок 33 - Настройки SFX
Теперь переходим на вкладку «Установка» и задаем параметры запуска, которые будут выполнены сразу после распаковки архива, а именно %temp%\installpackSilent\runme.bat.
Рисунок 34 - Настройка SFX.Установка
Теперь переходим на вкладку «Режимы» и выставляем «Режим вывода информации» пункт «Скрывать все».
Рисунок 35 - Настройка SFX.Режимы
Переходим на вкладку «Дополнительно» и ставим галку про запрос прав администратора.
Рисунок 36 - Настройка SFX.Дополнительно
Переходим на закладку «Обновление» и выставляем замену без запроса.
Рисунок 37 - Настройка SFX.Обновление
Теперь мы наконец можем нажать кнопку ОК. А по возвращению в основной диалог архиватора еще раз ОК. И начнется процесс архивирования.
На этом в целом всё: мы можем теперь распространять данный exe между целевыми машинами и запускать как от имени администратора в ручном режиме, так и от имени системы политиками. Диалоги и окна не показываются, поэтому проблем с интерактивными элементами быть не должно.
А теперь давайте создадим пакет для Citrix, это будет забавно.
Создание пакета для Citrix
Итак, самая простая часть.Создаем копию папки installpackSilent и после копирования переименовываем ее в installpackCitrix.
Открываем файл jvm.properties на редактирование. Нам нужно изменить несколько строк:
INI:
vmarg.Xmx=-Xmx512m
vmarg.Xms=-Xms256m
vmarg.Xmca=-Xmca512k
vmarg.Dshare=-Xshareclasses:name=xpdplat_.jvm,controlDir=${prop.jvm.shareclasses.loc},groupAccess,keep,nonfatal
jvm.shareclasses.loc=C:/ProgramData/HCL/Notes/Data/SharedClasses
Далее заходим в папку installpackCitrix, открываем файл runme.bat на редактирование и меняем его, вот так:
Bash:
REM Отключаем логирование bat-файла
@echo off
REM Переходим в папку, откуда был запущена наш bat-файл.
REM Переменная %~dp0 означает директорию, из которой был запущен файл
cd /D "%~dp0"
REM Запускаем удаление текущего клиента.
REM Мы удаляем только:
REM -rp : исполняемые файлы
REM -wipe : чистим реестр
REM -qb : показываем процесс удаления.
nice.exe -rp -wipe -qb
REM Теперь происходят немного странные вещи.
REM Чтобы обеспечить максимальную совместимость нового пакета, требуется удалить ВСЁ что осталось от предыдущего клиента.
REM Для этого мы удаляем папки ниже.
rd /S /Q "C:\Program Files (x86)\IBM\Notes"
rd /S /Q "C:\Program Files (x86)\IBM\Lotus"
rd /S /Q "C:\Program Files\IBM\Notes"
rd /S /Q "C:\Program Files\IBM\Lotus"
rd /S /Q "C:\ProgramData\Lotus"
rd /S /Q "C:\ProgramData\IBM\Notes"
rd /S /Q "C:\ProgramData\HCL\Notes"
REM Запускаем нашу установку.
REM При этом мы указываем файл ответа, что это режим MultiUser
REM Что ход установки надо писать в файл logs\LN11install.log
REM И всё это мы делаем c показом прогресса и скрытием кнопки Отмена: /qb!
setup.exe /s /v"SETMULTIUSER=1 CITRIX=1 TRANSFORMS=HCL_Notes_11.0.1.mst /qb! /l*v logs\LN11install.log"
REM Вот тут, если произошла ошибка мы прерываем работу пакета
If ErrorLevel 1 Goto END
REM Теперь мы запускаем установку FP3
REM Опять же, показывая прогресс, без кнопки Отмена и вывод в конце сообщения об окончании установки: /qb+!
REM НО вот задать путь логирования мы не можем.
Notes_1101FP3_Win.exe -s -a /s /v"METHOD=INSTALL /qb+!"
REM Вот тут, еще раз, если произошла ошибка мы прерываем работу пакета
If ErrorLevel 1 Goto END
REM Копируем наш файл Config.txt, который будет использоваться для подключения
REM в папку, которая доступна всем пользователям и является неким аналогом "шаблона"
copy config.txt %ProgramData%\HCL\Notes\Data\config.txt
REM Создаем папку SharedClasses
mkdir %ProgramData%\HCL\Notes\Data\SharedClasses
REM теперь удаляем файл jvm.properties
del /Q "C:\Program Files (x86)\HCL\Notes\framework\rcp\deploy\jvm.properties"
REM Чтобы заменить его на нашу целевую версию.
copy jvm.properties "C:\Program Files (x86)\HCL\Notes\framework\rcp\deploy\jvm.properties"
REM Ну и всё, выходим из пакета.
:END
Теперь проделываем тот же фокус с архивом, который мы делали для пакета с тихой установкой.
Когда все это сделали нам надо принять один момент:
Установка клиента в Citrix среде должна происходить через образ. То есть Администратор Citrix запускает наш установочный архив в образе.
Далее, после установки, если он была успешной, необходимо:- Дать полный доступ учетной записи «Все» или «Everyone» в папку C:/ProgramData/HCL/Notes/Data/SharedClasses
- Так же дать полный доступ учетной записи «Все» или «Everyone» в символическую ссылку C:/ProgramData/IBM/Notes
- Данная папка создается для обратной совместимости с предыдущими версиями клиентов
Известные проблемы и ограничения
Самое важное ограничение: нельзя сделать откат. То есть, если ошибка произошла между удалением клиента и его установкой, то всё. Клиента нет и надо устанавливать вручную. Если возможность отката необходима, этот момент требуется решить заранее.Итак, не все происходит гладко, поэтому надо решать проблемы.
- Самая частая ошибка, которая возможна - это невозможность установить FixPack. Для этого просто переходим в папку D:\Program Files (x86)\HCL\Notes и удаляем папку jvm. Затем ставим FP отдельно вручную.
- Иногда может не начаться установка самого клиента, еще до FP. Как правило, проблема кроется в ОС. В моем опыте было сломано хранилище компонентов, там даже обновления не могли поставить.
- Нехватка места на ЖД на целевой машине.
- Если клиент был SingleUser, а мы ставим MultiUser, клиент при запуске потребует реконфигурацию. Если, конечно, мы не перенесли профиль ранее.
- Если мы используем Citrix, у возникают отдельные сложности.
- Если используется Citrix profile manager, надо исключить из переноса папки:
- AppData\Local\HCL\Notes\Data\IBM_TECHNICAL_SUPPORT
- AppData\Local\HCL\Notes\Data\workspace
- Или же мы можем всегда запускать Notes с параметрами 'notes.exe -RPARAMS -resetconfig -clean'
- Если используется Citrix profile manager, надо исключить из переноса папки:
Код:
%temp%\installpackSilent\logs\LN11install.txt
%temp%\notesfixinstall.txt
%userprofile%\Documents\HCLNotesInstall.txt
Дополнительно
Перед тем как приступать к созданию инсталлятора надо собрать максимум полезной информации о текущем положении вещей. И в этом действительно нет лучшего средства чем panagenda marvel client. Бесплатной версии вполне достаточно, всю необходимую информацию можно будет собрать в течении нескольких недель/дней.Мой личный совет: отложить начало работ по созданию пакета, пока вы не соберете эту информацию. В моём опыте мы нашли пользователей, у которых было недостаточно RAM и старая ОС.
Обязательно протестируйте новую версию клиента со всеми приложениями, которые используются. И сделать это надо до принятия решения о переходе на выбранную версию.
Соберите известные проблемы той версии, которую планируете устанавливать. Главное узнать способы их решения, либо сроки этих решений. Возможно из-за наличия ошибок стоит выбрать другую версию, либо отложить процесс до их исправления.
К сожалению, нельзя сделать автоматическую установку/обновление клиентов через Tuner для MacOS.
В документации HCL указано, что «InstallShield Tuner for Notes» можно скачать с портала FlexNet,
Его добавили в пак 11.0.1 + Можно попробовать обратиться в поддержку, но мы не пробовали.
Кроме установки самого клиента и FP, можно еще ставить дополнительные плагины, установить, SameTime и настроить подключение к серверу.
Это можно найти как в интернет, так и в архиве к этому руководству (архив слишком большой разбил на несколько частей), материал на английском языке.
Информация от вендора здесь:
Ссылка скрыта от гостей
Конечный пакет можно ставить как на x64, так и на x86. Однако необходимо изменить последние шаги, где мы копируем новые файлы, так как пути другие. Это единственное, что требует правки. Сам пакет пересобирать не требуется. Если же мы ставим клиент в другие папки, которые не имеют различия x86/x64, то править не нужно будет совсем ничего.
Существует возможность мигрировать пользователей с редакцией SingleUser на MultiUser: для этого требуется перед удалением клиента, но после его закрытия, запустить специальный vbs скрипт, который перенесет всю папку Data пользователя в нужное место. Подробнее можно почитать здесь:
Ссылка скрыта от гостей
. Сам скрипт лежит в файлах установщика в папке Utility в архиве «NotesCustomizationKit_1_0.zip». Лично мы этого не стали делать, но если миграция необходима, то вот вариант как это сделать.Для редакции Basic нужно делать свой пакет, так как там свой установочный клиент и свои FixPack’и. Тем не менее я не считаю нужным создавать отдельный пакет для Basic. Standard всегда можно запустить в basic режиме, как через ярлык, так и через настройку в notes.ini. К тому же нам не надо будет поддерживать актуальность двух пакетов.
Не надо устанавливать HotFix’ы или InternalFix’ы в пакете, потому что при попытке потом установить другой пакет обновления, нужно будет сначала удалить HF/IF. Можно, конечно, целиком переустановить клиент, но лучше просто этого не делать. Если для версии есть HF/IF, но еще нет FP, лучше дождаться появления FP и только тогда переходить на данную версию. Стоит так же обратить внимание, а нужен ли данный HF/IF?
С помощью данного руководства можно создавать так же пакеты для Designer/Admin, требуется только другой файл ITW для InstallShield.
Если требуется заменить FixPack на другую версию, то это делается достаточно просто: заменяем в архиве инсталлятор для FP, и меняем строку запуска в runme.bat.
Если сменились серверы и теперь надо пользователей вести на другой при конфигурации клиента, то аналогично просто меняем файл config.txt для будущих установок. Да, для текущих установок это не поможет, но там файл хранится в одном строго заданном месте. Думаю, на powershell можно будет написать скрипт, который поправит пару строк.
С помощью файла config.txt можно указать не только параметры для подключения, а еще очень много всего. Подробнее об этом тут:
Ссылка скрыта от гостей
Почему вообще надо создавать пакет таким способом, а не использовать тот же Marvel Client Upgrade? Как обычно причина в деньгах: не все хотят платить, если есть возможно сделать иначе. Отдельно про MC могу сказать, что можно попробовать обновиться и на бесплатной версии до 10.0.1FP2, а потом уже воспользоваться средствами HCL AUT, который появился с 10-й версией. У MC очень подробная инструкция, как можно сделать обновление клиента. Рекомендую почитать и самостоятельно оценить сложность или легкость создания пакета инсталляции с помощью MC.
Не жалейте времени и сил на тестирование. Если собрали статистику, сделайте тестовую VM на каждый возможный случай. Нет, я не призываю делать 3000 VM, просто соберите по категориям: Клиент, редакция, ОС, технические характеристики и так далее.
Никогда не тестируйте конечный пакет только под пользователем с правами Администратора, для начала это можно делать. А вот конечный пакет надо проверять и под пользователем, который не имеет прав.
Если планируете доставлять установочный пакет до АРМ пользователя с помощью политик или другого ПО, то у вас появляется еще одна цепочка возможных ошибок: само ПО и люди, которые за него отвечают. Не верьте им, никогда. Чтобы они не говорили, как бы не убеждали – не верьте. Сразу обговаривайте как можно найти проблемы при доставке пакета и его запуска. Где логируется процесс, какие ограничения ПО существуют. Почему? Ну вот пример из личного опыта: на целевом АРМ не был установлено ПО для установки, доставить его туда автоматически нет возможности, доступа к АРМ пользователя физически нет (март 2021, режим удаленной работы и всё такое). Связались с пользователем, чтобы привез ноутбук в офис, там ему вручную обновили клиент. Еще один пример: на целевом АРМ не хватило место для установочного пакета. Почему не увидели в статистике? Оказалось, что ПО скачивает пакет в определённую папку, а эта папка была на другом диске, где не было места. Вот такие дела…
Не производите обновление клиента перед понедельником и перед выходными, особенно автоматически. Технические специалисты, которые будут потом решать отдельные проблемы с установкой скажут вам спасибо, если так сделаете. Пользователи тоже скажу спасибо. Оптимальные дни обновления вторник, среда и четверг. Никто не любит понедельники.
Будьте готовы к тому, что пользователи будут жаловаться после установки новой версии. Чаще всего жалобы на внешний вид, который поменялся. Такие всегда есть. Мы либо игнорировали отдельные жалобы, либо советовали сменить тему, кого-то просто переключили в basic режим. Просто будьте к этому готовы.
Параметры запуска инсталлятора
Некоторые из этих параметров можно не использовать, если мы задаем файл ответов и настраиваем пакет установки через InstallShieldTRANSFORMS=file.mst | Указывается, если есть файл ответов MST. Как правило, он находится в той же папке, где и setup.exe |
SETMULTIUSER=1 | Указывается, если мы хотим установить для всех пользователей данного АРМ |
CITRIX=1 | Указывается, если мы производим установку на Citrix |
MULTIUSERCOMMONDIR | Указывается, если мы хотим сменить Shared директорию пользователей. По умолчанию она будет %ProgramData%\HCL\Notes\Data\Shared |
MULTIUSERBASEDIR | Указывается, если мы хотим сменить папку где будет находиться папка Data пользователя. По умолчанию это %Userprofile%\AppData\Local\HCL\Notes\Data |
PROGDIR | Указывается, если мы хотим установить клиент в другую директорию |
DATADIR | Указывается, если мы хотим изменить местоположение папки Data |
Параметры запуска клиента
C:\Notes\Notes.exe =C:\Notes\MyNotes.ini | Starts the client with an alternate INI file |
C:\Notes\Notes.exe dbName.nsf | Opens a specified local database when the client is started |
C:\Notes\Notes.exe server!!dbName.nsf | Opens a specified database on a specified server when the client is started |
C:\Notes\Notes.exe doclink.ndl | Opens a specified doclink when the client is started |
C:\Notes\Notes.exe
Ссылка скрыта от гостей
| Opens a specified web page when the client is started |
C:\Notes\Notes.exe notes://... | Opens a specified database, view, form, or document using its Notes URL when the client is started (*) |
C:\Notes\Notes.exe mailto:you@something.com | Begins composing an e-mail to the specified address with the Notes mail client |
C:\Notes\Notes.exe MAIL | Opens the default mail database on the Notes client |
C:\Notes\Notes.exe ADMINONLY | Starts the Notes Admin client (R5+) |
C:\Notes\Notes.exe /DESIGN | Starts the Notes Designer client (R5+) |
C:\Notes\Notes.exe /DEBUGGER | Starts the Notes Remote Agent Debugger (R6+) |
C:\Notes\Notes.exe /EMBEDDING | Starts Notes as an OLE server |
C:\Notes\Notes.exe /AUTOMATION | Starts Notes minimized |
P.s. Так же текст данной статьи добавлен в виде PDF.
Вложения
Последнее редактирование модератором: