Skip to main content

Hi, we are trying to perform a silent install for fme flow 2024.2.3. Because the installer installs on-the-fly some additional software like CLR Types for SQL Server and the Visual Studio Redistibutables, we cannot use our old method of copying a pre-extracted set of cabinet files, as suggested in the installation manual. We have to execute the self-extracting archive and supply the installation properties as a quoted string. We tried a couple ways of coding the properties (single quotes, double quotes, 8-fold quotes) however the script simply seems to install the additional software and then presents in a non-silent mode the fme-flow installer dialog box (see attachment). Anyone have any ideas? Our simple install script is attached to this question too. ​@david_r maybe?

I’ve never had to do this myself, but this whole thing with 8 or 16 quotes isn’t very reassuring… Could you perhaps to try installing Flow and all the compontents into folders without spaces in the names, so that you can remove all the quotes?

Interestingly, the example givben at the bottom of the page looks much simpler since they’re not using this weird quoting technique:

msiexec /i fme-flow.msi /l*v "install.log" /qb /norestart INSTALLDIR="C:\Program Files\FMEFlow\" FMEFLOWUSER=MYCOMPANY\user1 FMEFLOWUSERPASSWORD=password COREHOSTNAME="machine1" ADDLOCAL=FMEEngine FMEFLOWSHAREDDATA="\\machine1\FMEFlowSystemShare\" DATABASETYPE="PostGreSQL" DATABASEHOST="FMEFlowCore" DATABASEPORT="7082" SERVLETPORT="80"


Actually, that was the way we did it before 😉. Thanks for your heads up on the folder name without spaces. However, that would be the second 'rebranding' of our package, we try to avoid it. But we could try for the time being.


I did a presentation on scripted installs for FME a few years ago in Bonn. A simplified version of that installation script can be found here: https://github.com/thewabbit/fmeserverinstall/blob/main/FME%20Server%20Install.ps1

 

One of the uses for this was IaaS with Azure, so installing silently/automatically on a fresh version of Windows on a new VM.

Granted it was written for 2022, so some of the flags may have changed since then.

 

function install
{
# Create application folder
Log "Creating path: $installLocation"
New-Item -ItemType Directory -Force -Path $installLocation
# Create shared resource dir
Log "Creating path: $sharedResources"
New-Item -ItemType Directory -Force -Path $sharedResources

$setup = Join-Path $extractedFolder "fme-server.msi"
$installArgs = @(
# "FIRSTLOGINCHANGEPASSWORD=$firstLoginChange"
"ADDLOCAL=FMEServerCore,FMEEngine,Services"
"/norestart"
"/l*v installFMEServerLog.txt"
"/qb"
"INSTALLDIR=$installLocation"
"FMESERVERUSER=$SVCUsername"
"FMESERVERUSERPASSWORD=$SVCPassword"
"FMESERVERSHAREDDATA=$sharedResources"
"SERVLETPORT=$servletPort"
"DATABASETYPE=MSSQL"
"DATABASECONNECTIONSTRING=$jdbcString"
"DATABASEUSER=$dbUser"
"DATABASEPASSWORD=$dbPassword"
)

Log "Installing FME Server to $installLocation"
Log "$installArgs"
Start-Process -FilePath $setup -ArgumentList $installArgs -wait

Start-Sleep -Seconds 30

Stop-Service -Name FME*

Log "FME Server Install completed."
}

 


Hi ​@hkingsbury thanks a lot for the nice script!! However, this only fixes a part of the problemen we’re facing: the script above runs the fme-server.msi with a number of parameters, like we do from our Windows CMD script. The problem we have, is that the downloaded self-extracting zip not only extracts the cabinet files and the .msi file, but also seems to install a couple of servicing apps, as mentioned above, the  CLR Types for SQL Server and the Visual Studio Redistibutables. But we will start trying your script, and have it serve the self-extracting archive with the parameters prescribed. 


Hi ​@hkingsbury thanks a lot for the nice script!! However, this only fixes a part of the problemen we’re facing: the script above runs the fme-server.msi with a number of parameters, like we do from our Windows CMD script. The problem we have, is that the downloaded self-extracting zip not only extracts the cabinet files and the .msi file, but also seems to install a couple of servicing apps, as mentioned above, the  CLR Types for SQL Server and the Visual Studio Redistibutables. But we will start trying your script, and have it serve the self-extracting archive with the parameters prescribed. 

In the post install part of the script I deal with msoledbsql.msi and SQLSysClrTypes.msi.

Looking at the script a few years later I actually seem to install them twice!

 

    ##########Install SQL components##########
$sqlInstalls = "msoledbsql.msi", "SQLSysClrTypes.msi"
foreach ($s in $sqlInstalls)
{
$setup = Join-Path $extractedFolder $s
Log "Installing $s"
Start-Process -FilePath $setup -ArgumentList "/qb" -wait

Start-Sleep -Seconds 5

Log "Installed $s"
}

Start-Process -FilePath $sqlODBC -ArgumentList "/qb" -wait
Start-Process -FilePath $sqlCMD -ArgumentList "/qb" -wait

 


Reply