Создание нескольких инсталляционных пакетов одновременно

Для создания инсталляционных пакетов для большого числа пользователей одновременно предлагается использовать BAT-файлы, вызывающие в цикле утилиту make_inst.exe. Далее описаны несколько BAT-файлов типичных сценариев. На компьютере администратора должна быть создана специальная папка для файлов пользователей. В этой папке создаются подпапки, которые называются по имени пользователей. Например, папка c:\vpn_client, в ней подпапки c:\vpn_client\alice и c:\vpn_client\bob (важно, чтобы не было посторонних подпапок). В этих подпапках лежит файл localcert.crt, а также для некоторых сценариев могут лежать файлы ca.crt, lsp.txt и pwd.txt (пароль на контейнер).

Сценарий 1. В этом сценарии контейнеры с секретными ключами пользователей имеют пустой пароль. Получаемые SFX-файлы кладутся в папки пользователей под именем vpnclient.exe. В папках пользователей лежат локальные сертификаты. Используется один CA сертификат и одна LSP для всех пользователей:

@echo off

 

SET TEMPLATE_DIR=c:\vpn_client

SET MAKE_INST_PATH=D:\S-Terra Client\make_inst.exe

SET CONTAINER_NAME=REGISTRY\\container

SET LSP_PATH=c:\vpn_client\lsp.txt

SET CA_PATH=c:\vpn_client\ca.crt

 

for /r %TEMPLATE_DIR% /d %%i in (*) do (%MAKE_INST_PATH% -o %%i\vpnclient.exe -c %CA_PATH% -u %%i\localcert.crt -uc %CONTAINER_NAME% -l %LSP_PATH%) & (if errorlevel 1 goto err)

 

goto :end

 

:err

 

echo An error occured

exit

 

:end

 

echo Make installations complete

Используются следующие настройки:

TEMPLATE_DIR                   папка, в которой лежат подпапки пользователей. Путь должен быть без пробелов.

MAKE_INST_PATH               путь к утилите make_inst.exe.

CONTAINER_NAME               имя контейнера.

LSP_PATH                           путь к общей LSP.

CA_PATH                             путь к общему CA сертификату.

Здесь и далее фраза в конце "Make installations complete" обозначает успешное завершение, а "An error occured" – что произошла ошибка.

 

Сценарий 2. Используется общий пароль для всех контейнеров с секретными ключами всех пользователей. Получаемые SFX-файлы кладутся в папки пользователей под именем vpnclient.exe. Каждый пользователь имеет свой CA сертификат и свою LSP:

@echo off

 

SET TEMPLATE_DIR=c:\vpn_client

SET MAKE_INST_PATH=D:\S-Terra Client\make_inst.exe

SET CONTAINER_NAME=REGISTRY\\container

SET CONTAINER_PASSWORD=somepwd

 

for /r %TEMPLATE_DIR% /d %%i in (*) do (%MAKE_INST_PATH% -o %%i\vpnclient.exe -c %%i\ca.crt -u %%i\localcert.crt -uc %CONTAINER_NAME% -up %CONTAINER_PASSWORD% -l %%i\lsp.txt) & (if errorlevel 1 goto err)

 

goto :end

 

:err

 

echo An error occured

exit

 

:end

 

echo Make installations complete

 

Новые настройки:

CONTAINER_PASSWORD – общий пароль.

 

Сценарий 3. Все условия аналогичны сценарию 2, но получаемые файлы кладутся в одну папку с именами username.exe (где username совпадает с именем пользовательской подпапки, например alice.exe или bob.exe):

@echo off

 

SET TEMPLATE_DIR=c:\vpn_client

SET MAKE_INST_PATH=D:\S-Terra Client\make_inst.exe

SET CONTAINER_NAME=REGISTRY\\container

SET CONTAINER_PASSWORD=somepwd

SET SFX_DIR=c:\sfx

 

cd %TEMPLATE_DIR%

for /d %%i in (*) do (%MAKE_INST_PATH% -o %SFX_DIR%\%%i.exe -c %%~fi\ca.crt -u %%~fi\localcert.crt -uc %CONTAINER_NAME% -up %CONTAINER_PASSWORD% -l %%~fi\lsp.txt) & (if errorlevel 1 goto err)

 

goto :end

 

:err

 

echo An error occured

exit

 

:end

 

echo Make installations complete

Здесь

SFX_DIR – папка, в которую размещаются получаемые файлы.

 

Сценарий 4. Выполняется при тех же условиях, что и в сценарии 2, но в каждой папке пользователя дополнительно лежит файл pwd.txt, содержащий пароль контейнера для данного пользователя. Кроме того, когда каждый пользователь будет устанавливать Продукт S-Terra Client из подготовленного для него инсталляционного файла, то он будет ставиться не в папку по умолчанию, а в папку c:\my  vpn (с пробелом):

@echo off

 

SET TEMPLATE_DIR=c:\vpn_client

SET MAKE_INST_PATH=D:\S-Terra Client\make_inst.exe

SET CONTAINER_NAME=REGISTRY\\container

SET SFX_DIR=c:\sfx

 

cd %TEMPLATE_DIR%

for /d %%i in (*) do  (%MAKE_INST_PATH% -o %SFX_DIR%\%%i.exe -c %%~fi\ca.crt -u %%~fi\localcert.crt -uc %CONTAINER_NAME% -ufp %%~fi\pwd.txt -l %%~fi\lsp.txt -a "INSTALLDIR=\"c:\my vpn\"") & (if errorlevel 1 goto err)

 

goto :end

 

:err

 

echo An error occured

exit

:end

echo Make installations complete