Available Packaging Job Parameters

The following list of parameters are available for use on the CLI and in the PackagesFile or DefaultsJSON. CLI usage requires a preceding / (ie, /Name "Some Application v1.0") and usage in a JSON file requires the parameter to be in double quotes (ie, "Name":"Some Application v1.0").

Notes:

  • Be sure to wrap all complex passwords like "&()[]{}^=;!'+,`~ my c0mpl3x PW" and paths that include a space in double quotes.

  • Double quotes cannot be used in passwords or AES secrets.

  • /InstallerArgs (if any) must be quoted, be the last parameter, and inner quotes must be escaped with \

  • If /Installer points to a .msi, then /InstallerArgs will automatically be set to /i "<installer.msi>" /qn and /Installer will implicitly become msiexe.exe, but you can still use /InstallerArgs to provide additional args in this scenario.

  • If multiple paths are provided to network shares, multiple credentials are provided, and they are to the same server then either only use one set of credentials, or make the second reference to the server be via ip.

  • If a PackagesFile contains a parameter already set in DefaultsJSON, PackagesFile wins. If parameter also included on CLI, CLI wins.

  • All parameters are optional except Name, Path, and Installer

Job Parameter Description

Name
"<package-name>"

Package Name *(Required).
*Should be unique within a given packaging batch job.

Path
"<path>"

Target folder where the package(s) will be created *(Required).
*Path ending in .vhdx will perform an Extend of existing package.
*Cloud paths are supported –
s3://
az://
gs://

CustomStorageUrl
<url>

Custom S3 service URL or Azure endpoint suffix.

Installer
"<path>"

Path of the installer exe to be executed and captured *(Required).
*CIFS path like \\server\share\folder\installer.exe, .msi or any script file.*
Web URL's also supported.

InstallerArgs
"<args>"

Installer-specific silent install flags required for proper operation.
*Args must be wrapped in quotes (ie, "/S")

SizeGb
<integer>

Package VHDX size.
Default: (20GB)

Fixed

Use Fixed VHDX (allocate all space now).
Default: Expandable (Grow as needed)

Test

Plays back the package after save and takes screenshots.
Default: Don’t Test

PathUsername
"<domain\user>"

Username used to access the package’s path.
*Cloud paths use s3=Access Key, az=Account Name, gs=<omit>
*Specifying a PathUsername of "IAM" will allow use of Amazon S3 IAM credentials.

PathPassword
"<password>"

Password used to access the package’s path.
*Cloud use s3=Secret Key, az=Account Key, gs=<credential.json>

InstallerUsername
"<domain\user>"

Username used to access the installer’s path.

InstallerPassword
"<password>"

Password used to access the installer’s path.

InstallerExitCode
<integer>

Expected installer SUCCESS exit code.
Default: 0

InstallerTimeoutMs
<integer>

How long to wait for an installer to finish before failing the capture.
Default: 3600000 (1hr)

PuAddress
<https://ProuServerNameOrIP:8000>

The ProfileUnity Console where new packages will be imported.

PuUsername
"<domain\user>"

Username used to access the ProfileUnity Console.

PuPassword
"<password>"

Password used to access the ProfileUnity Console.

NoSystemRestore

Do not perform a System Restore rollback after capture/extend.

Default: False (Use System Restore to roll back).

AltRestoreCmd
"<pathToScript>"

Instead of System Restore, use a rollback script after capture/extend.
*Runs from the Agent VM and implies NoSystemRestore=True
Default: Rollback determined by NoSystemRestore parameter.

AltRestoreCmdArgs
"<args>"

Args (if any) needed for the AltRestoreCmd
*Args must be wrapped in quotes (ie, "/S")

WaitAfterInstallerExitsMs
<integer>

How long to wait after installation ends before saving the capture.
Default: 0

DontCopyInstallerLocal

Run the installer directly from the Installer path.
Default: Copy installers locally before executing
("C:\Windows\Temp\fpainstaller" or "%TEMP%\fpainstaller")

CopyInstallerFolderLocal

Copies the the folder containing installer files locally before executing
Default: Do not copy installer folder

InstallerFolder
"<path>"

Path of the folder containing the installer files.

NoHCCapture

Do not use high availability capture mode.
Default: False

Installer2
"<path>"

Path of an additional installer to be executed during the capture.

Installer10
"<path>"

Path of an additional installer to be executed during the capture.

Up to 10 installers are supported.

InstallerArgs2
"<args>"

InstallerArgs10
"<args>"

Installer-specific silent install flags required for proper operation.
*Args must be wrapped in quotes (ie,"/S")

InstallerExitCode2
<integer>

InstallerExitCode10
<integer>

Expected installer exit code used to determine successful installation.
Default: 0

PreActivationScript
"<path>"

CMD file to include in package and execute before playback.

PostActivationScript
"<path>"

CMD file to include in package and execute after playback.

PreDeactivationScript
"<path>"

CMD file to include in package and execute before stopping playback.

PostDeactivationScript
"<path>"

CMD file to include in package and execute after stopping playback.

NoCallToHome

Do not send job Installer and InstallerArgs stats to Liquidware
Default: False

PackageVersion
<major.minor.build.revision>

User specified version to help track package changes.

DontCreateFlexAppOne

Do not automatically create a FlexApp One package.

FlexAppOneCliOverride
<args>

Custom FlexApp One bundler.exe command line arguments.

DontCaptureUserProfileData

Do not capture user profile data.

DontCaptureUserRegistry

Don’t capture user registry data from HKCU or HKU.

DontCapture

Do not capture at all, just install.

PackagesXml

Write a copy of package info into the specified packages.xml.
Primarily used by FlexApp Packaging Console in 'offline' mode.

PuConfiguration
<configname>

Replaces an existing package in the specified configuration with the created package.
*If defined, /PackageVersion and /PuFilter must match those of the existing package.

PuFilter
<filtername>

Add created package to flexapp rule with specified filter.
*Requires /PuConfiguration.

PuDescription
<descr>

Description to use when adding flexapp rule.
*Requires /PuConfiguration.

LogPath
"<path>"

Folder in which to store logs.
Default: "%TEMP%\fpa".

LogLevel
<level>

Logging level – Debug, Info, Warn, Error, Fatal
(Advanced Logging Levels: Console, Always).
Default: Debug

MailServer
<smtp.company.com>
(DefaultsJSON and CLI only)

SMTP server to use as a relay for job-related emails.
Default: No emails are sent unless specified

MailPort
<integer>
(DefaultsJSON and CLI only)

SMTP port used for MailServer.
Default: 25

MailSsl
(DefaultsJSON and CLI only)

Use SSL/TLS when connecting to MailServer.
Default: False (No SSL/TLS)

MailUsername
"<username>"
(DefaultsJSON and CLI only)

Username to use for relaying emails through
Mailserver.

MailPassword
"<password>"
(DefaultsJSON and CLI only)

Password to use for relaying emails through
Mailserver.

MailTo
<SomeGuy@company.com>
(DefaultsJSON and CLI only)

Email address that should receive job-related emails
*Required for /MailServer

MailFrom
<noreply@company.com>
(DefaultsJSON and CLI only)

Email address to show as sender of job-related emails.
*Required for /MailServer

CaptureRetryCount

Number of times a capture job is attempted when a failure is encountered.
Defult is the number of agents.

PrimaryAddress
<https://PrimaryNameOrIp:9075>
(DefaultsJSON and CLI only)

Primary Packaging Manager address.
Default: https://localhost:9075

PrimaryUsername
"fpa_services"
(DefaultsJSON and CLI only)

Primary Packaging Manager username.

PrimaryPassword
"<password>"
(DefaultsJSON and CLI only)

Primary Packaging Manager password.

WaitForDone
(CLI only)

Wait for job to finish and allow job logs to be copied locally.
Default: Return to cmd prompt after submitting packaging job

Crypto
Aes
(CLI only)

Encrypt the user/pass fields contained in the command line w/Aes
*See the Notes About Encryption and Log Paths section below for more information.
Default: Encrypt all user/pass fields using machine-specific DpApi

CryptoKey
"<aes-secret-key>"
(CLI only)

AES Encryption Passphrase / Key.
*Implies /Crypto Aes

Notes About Encryption and Log Paths

When adding information into a PackagesFile or DefaultsJSON, you have two encryption options for username and password fields. In any case, users can never see the credentials stored in these files–they can only use them to process primary-client commands. If you do not specify /Crypt, the default of DpApi is used.

  • /Crypto DpApi is a self-contained, machine-based encryption using Windows Data Protection API. Anyone with access to the machine can utilize (but not see) the credentials without needing an encryption key. Files encrypted with this method cannot be moved to another machine. THIS IS THE DEFAULT!
  • /Crypto Aes is an AES-based encryption method utilizing a secret key and requires the key to be passed on the command line with /CryptoKey to utilize (but not see) the credentials. Files encrypted with this method can be shared between different machines as long as the secret key is known. /CryptoKey implies /Crypto Aes.
  • /LogPath and /LogLevel used on the CLI apply only to the primary-client.exe log for the current command. "LogPath" and "LogLevel" used within a JSON file apply only to the capture job log on the capture agent. There is no automatic authentication for a UNC-based LogPath so the capture agent’s machine account or service account will need “unprompted access” to the LogPath.