Installera app med konfigurationsfil

Jag försöker installera en VPN-klient (Pulse Secure) som kan använda en konfigurationsfil så att den automatiskt lägger till VPN-serverinformationen. Jag kan få applikationen att installera sig perfekt i alla fallen nedan, men installationsprocessen hoppar helt över konfigurationsfilen om jag inte inbäddar den i bilden. Vi vill verkligen inte inbädda filen eftersom den innehåller information om servern. Här är vad jag har gjort hittills:

  1. (FUNKAR) I en fångad Windows-bild med konfigurationsfilen i en katalog på C:. Använd detta kommandoradskommando msiexec /i ps-pulse-win-9.1r15.0-b15819-64bit-installer.msi CONFIGFILE=C:\ProgramData\Default.pulsepreconfig /qn
  2. (FUNKAR INTE) Detta installerar appen, men ignorerar konfigurationsfilen. Sätt arbetskatalog till \\server\share\folder. Använd detta kommandoradskommando msiexec /i ps-pulse-win-9.1r15.0-b15819-64bit-installer.msi CONFIGFILE=Default.pulsepreconfig /qn
  3. (FUNKAR INTE) Detta installerar appen, men ignorerar konfigurationsfilen. Lämna arbetskatalogen inställd på .\Applications\PulseSecure. Använd detta kommandoradskommando msiexec /i ps-pulse-win-9.1r15.0-b15819-64bit-installer.msi CONFIGFILE=Default.pulsepreconfig /qn

Jag är vilse om vad jag ska skriva i MDT:s kommando för att den ska känna igen/ använda konfigurationsfilen från en plats som är annan än en katalog som finns på systemet som imageras. Jag vet att det finns andra program där ute som använder en konfigurationsfil på detta sätt (MATLAB för ett). Så jag vet att det måste vara möjligt.

Vad jag gjorde var att använda ett skript som kopierar filerna till den lokala maskinen, kör installationen med konfigurationsfilen, sedan tar bort filerna

Det installeras med alla inställningar

Jag skulle lägga det i ett skript, jag skapar en cab-mapp och lämnar icke-känsliga konfigurationsfiler och verktyg där för senare också. I ditt fall ta bort konfigurationsfilen.

Jag gillar att använda Powershell appdeploy-verktyg för all scriptning eftersom det lägger till loggning och en konsekvent kommandorad.


Eller kanske prova med konfigurationsfilen i samma mapp som msin

msiexec /i ps-pulse-win-9.1r15.0-b15819-64bit-installer.msi CONFIGFILE=.\Default.pulsepreconfig /qn

eller

msiexec /i ps-pulse-win-9.1r15.0-b15819-64bit-installer.msi CONFIGFILE=%~dp0Default.pulsepreconfig /qn

Skulle du inte kunna göra:
msiexec /i ps-pulse-win-9.1r15.0-b15819-64bit-installer.msi CONFIGFILE=\\server\share\folder\Default.pulsepreconfig /qn

Jag experimenterade med olika scenarier för att få detta att fungera, som att införa en skriptmapp för att lagra de nödvändiga referensfilerna. Men slutligen bestämde vi att den säkraste metoden var att skapa en .bat-fil att använda sominstallationsprogram. Inom .bat-filen kan vi skapa script på vilket sätt vi vill, och det blev mycket enklare än först trott. Här är koden vi använde:

@echo off

pushd "%~dp0"

echo "Installerar Pulse Secure"

msiexec /i %~dp0PulseSecure.msi CONFIGFILE=%~dp0Default.pulsepreconfig /qn

popd

exit /b 0

Efter att ha upptäckt detta kunde vi också följa samma process för att installera Matlab, men krävde lite extra kodning för att se installationsframstegen eftersom MDT såg det första exevitslutet som slutet på installationen (vilket det inte är).

@echo off

pushd "%~dp0"

echo Installerar MATLAB ...

start "" /wait "setup.exe" -inputFile installer_input.txt

REM Eftersom MATLAB avslutar det första exe ovan, vänta 90 sekunder för att det spawnade exe ska starta

REM Ersätt "setup.exe" nedan med namnet på det exe som startas...

case"" (case sensitive)

timeout /t 90 /nobreak >nul 2>&1

:loop

tasklist | find /i "MathWorksProductInstaller" >nul 2>&1

if errorlevel 1 (

goto continue

) else (

`echo Installerar Matlab fortare ...`

timeout /t 05 /nobreak >nul 2>&1

goto loop

)

:continue

popd

exit /b 0