A. Actions

## A. Actions

<action> - Common Properties
property | default value | allowed values | description
`abortOnError` | `1` | 0, 1 | Whether or not to abort the installation on an error while executing the action.
`breakpoint` | `0` | 0, 1 | Breakpoint
`customErrorMessage` | `` | string | Show a custom error message.
`explanation` | `` | text | Additional text to show when the action is displayed on the final page action list.
`progressText` | `` | string | Text to show on the progress bar or final page action List
`ruleEvaluationLogic` | `and` | and, or | Boolean operator for rule concatenation
`run` | `1` | 0, 1 | Whether or not to run the related action or not
`show` | `1` | 0, 1 | Show or hide the checkbutton in the final page action list
`showMessageOnError` | `1` | 0, 1 | Whether or not to show an error message when an error occurs.
`onErrorActionList` | `` | `<action>` | List of actions to execute if the action fails
`ruleList` | `` | `<rule>` | List of rules to satisfy in order to evaluate the current element

### Dialog Actions

<consoleWrite>
Write text to console
property | default value | allowed values | description
`text` | `` | text | Text to write
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showChoiceQuestion>
Prompt a choice question dialog to the user.
property | default value | allowed values | description
`defaultValue` | `` | string | Default value
`text` | `` | text | Information message that will be shown
`title` | `Choose an option` | string | Dialog title
`variable` | `` | string | Variable to store choice
`optionList` | `` | `<option>` | Predefined list of options that allows the user to select a value
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showInfo>
Prompt an info dialog to the user.
property | default value | allowed values | description
`text` | `` | text | Information message that will be shown
`title` | `${msg(MessageDialog.Info)}` | string | Title of the dialog window
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showPasswordQuestion>
Ask the user to enter a password.
property | default value | allowed values | description
`text` | `` | text | Question message that will be shown.
`title` | `` | string | Dialog window title.
`variable` | `` | string | Variable name where the password will be stored.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showProgressDialog>
Display an indeterminate progressmeter in a popup window to execute a list of actions.
property | default value | allowed values | description
`height` | `100` | positive integer or zero | Popup window height
`title` | `Please wait` | string | Title of the progress dialog window
`width` | `300` | positive integer or zero | Popup window width
`actionList` | `` | `<action>` | Actions to Execute
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showQuestion>
Prompt a question to the user. The result is stored as yes or no in the given variable name.
property | default value | allowed values | description
`default` | `yes` | yes, no | Default answer, it can be yes or no.
`text` | `` | text | Question message that will be shown.
`title` | `${msg(MessageDialog.Question)}` | string | Title of the dialog window
`variable` | `` | string | Variable name where the result will be stored
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showStringQuestion>
Ask the user a question.
property | default value | allowed values | description
`text` | `` | string | Question message that will be shown.
`title` | `` | string | Dialog window title.
`variable` | `` | string | Variable name where the answer will be stored.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showText>
Display a read-only text dialog to the user.
property | default value | allowed values | description
`height` | `600` | positive integer or zero | Text window height
`htmlText` | `` | text | HTML text that will be shown in Qt mode. Note that regular text still needs to be provided in case the installer is run in another mode
`text` | `` | text | Text that will be shown.
`title` | `` | string | Dialog title.
`width` | `500` | positive integer or zero | Text window width
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<showWarning>
Shows a warning dialog with the given text.
property | default value | allowed values | description
`text` | `Warning message goes here` | text | Warning message that will be shown.
`title` | `${msg(MessageDialog.Warning)}` | string | Title of the dialog window
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<throwError>
Generate an error inside the installer so the installer will exit. The only exception to this is when abortOnError equals zero or the action is inside a validationActionList, in which case it will prompt an error dialog to the user, but will not exit the installer.
property | default value | allowed values | description
`text` | `Unknown Error` | text | Error message
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Environment Actions

<addDirectoryToPath>
Add a directory to the system path. This will modify the registry on windows and the appropiate shell initialization files on Unix systems
property | default value | allowed values | description
`insertAt` | `end` | beginning, end | Where to insert the new directory in the PATH (currently Unix only)
`path` | `` | string | Path to the directory
`scope` | `system` | system, user | Select user path or system path.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addEnvironmentVariable>
Add a system environment variable.This will modify the registry on windows and the appropiate shell initialization files on Unix systems
property | default value | allowed values | description
`name` | `` | string | Environment variable name.
`scope` | `system` | system, user | Scope.
`username` | `` | string | User to modify the environment for. If empty, the current user will be used
`value` | `` | string | Variable name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addFonts>
Add fonts to the Windows system
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addLibraryToPath>
Add a path in which the system will search for shared libraries on Linux
property | default value | allowed values | description
`path` | `` | string | Path to add to the system search for dynamic libraries on Linux
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteEnvironmentVariable>
Delete an environment variable from the system.
property | default value | allowed values | description
`name` | `` | string | Environment variable name.
`scope` | `system` | system, user | Scope.
`username` | `` | string | User to modify the environment for. If empty, the current user will be used
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<pwd>
Get the current working directory
property | default value | allowed values | description
`variable` | `` | string | Variable to which to save the current working directory.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeDirectoryFromPath>
Remove a directory from the System Path. This will modify the System Path
property | default value | allowed values | description
`path` | `` | string | Path to the directory
`scope` | `system` | system, user | Select user path or system path.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeFonts>
Remove fonts from the Windows system
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setEnvironmentVariable>
Set the value of a system environment variable. If it does not exist yet, a new one will be created. The variable will not exist once the installer has finished.
property | default value | allowed values | description
`name` | `` | string | Variable name
`value` | `` | string | Variable value
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### File Manipulation Actions

<addDirectoriesToUninstaller>
Add directories to the uninstaller.
property | default value | allowed values | description
`addContents` | `0` | 0, 1 | Whether or not to add directory contents to the uninstaller
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addFilesToUninstaller>
Add files to uninstaller.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addTextToFile>
Append text to a file. If the file does not exist, it will be created.
property | default value | allowed values | description
`encoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`file` | `` | string | Path to the file
`insertAt` | `end` | end, beginning | Whether to insert the text at the beginning or at the end of the file
`text` | `` | text | Text to append
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<dos2unix>
Convert plain text files in DOS/Mac format to Unix format.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<iniFileGet>
Extract property values out of a INI file.
property | default value | allowed values | description
`file` | `` | string | Path to INI file
`key` | `` | string | Property Key
`section` | `` | string | INI section
`variable` | `` | string | Variable name to save property to
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<iniFileSet>
Set property values of a INI file.
property | default value | allowed values | description
`file` | `` | string | Path to INI file
`key` | `` | string | Property Key
`section` | `` | string | INI section
`value` | `` | string | Property Value
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<propertiesFileGet>
Extract property values out of a properties file.
property | default value | allowed values | description
`encoding` | `default` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`file` | `` | string | Path to the property file
`key` | `` | string | Property key
`variable` | `` | string | Variable name to save property to
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<propertiesFileSet>
Writes out property values to a properties file, creating a new file if it does not exist.
property | default value | allowed values | description
`encoding` | `default` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`file` | `` | string | Path to the property file
`key` | `` | string | Property key
`value` | `` | string | Value to set the key to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<readFile>
Read the contents of a file and save it in a variable.
property | default value | allowed values | description
`encoding` | `iso8859-1` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`name` | `` | string | Variable to which to save the file contents
`path` | `` | string | Path to the file you wish to read the contents from
`removeBOM` | `0` | 0, 1 | Whether or not to remove or not Byte Order Mark on Unicode files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeFilesFromUninstaller>
Remove files or directories from uninstaller.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<substitute>
Substitute a value in a file.
property | default value | allowed values | description
`encoding` | `binary` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, binary | Encoding of the files to substitute
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`type` | `regexp` | regexp, exact | Type of substitution, regular expression or exact
`substitutionList` | `` | `<substitution>` | List of patterns/values for a substitution
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<unix2dos>
Convert plain text files in Unix format to DOS format.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<writeFile>
Create or replace a file with a certain text content.
property | default value | allowed values | description
`encoding` | `default` | iso8859-1, iso8859-2, utf-8, cp1251, cp1252, ascii, macRoman, unicode, default, binary | Encoding of the text file
`endOfLineConversion` | `auto` | auto, none, cr, crlf, lf | End Of Line Conversion
`path` | `` | string | Path of the file to be created or replaced
`text` | `` | text | Text to write
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<xmlFileCommentElement>
Comment entire subtree of an XML file
property | default value | allowed values | description
`element` | `` | string | XPath expression pointing to the selected element
`file` | `` | string | Path to XML file
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<xmlFileGet>
Read value of element or attribute from an XML file
property | default value | allowed values | description
`attribute` | `` | string | If present, the action will refer to the attribute instead of the element
`element` | `` | string | XPath expression pointing to the selected element
`file` | `` | string | Path to XML file
`variable` | `` | string | Variable where to start the result
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<xmlFileSet>
Set the value of an element or attribute in an XML file
property | default value | allowed values | description
`attribute` | `` | string | If present, the action will refer to the attribute instead of the element
`element` | `` | string | XPath expression pointing to the selected element
`file` | `` | string | Path to XML file
`value` | `` | string | Value to store in element or attribute
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<yamlFileGet>
Read value of element from a YAML file
property | default value | allowed values | description
`element` | `` | string | Path expression pointing to the selected element
`file` | `` | string | Path to YAML file
`variable` | `` | string | Variable where to start the result
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<yamlFileSet>
Set the value of an element in a YAML file
property | default value | allowed values | description
`element` | `` | string | Path expression pointing to the selected element
`file` | `` | string | Path to YAML file
`value` | `` | string | Value to store in element
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### File System Actions

<copyFile>
Create a copy of a file. The destination file will be overwritten if it already exists
property | default value | allowed values | description
`destination` | `` | string | Path to where the file will be copied.
`excludeFiles` | `` | string | Patterns to exclude files
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`origin` | `` | string | Path to the original file.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createBackupFile>
Create a backup of a file or directory. The backup will be named with a .bak extension if no destination is specified. If a backup file already exists, new backups will be named .bak1, .bak2 and so on.
property | default value | allowed values | description
`destination` | `` | string | Path to the destination backup folder.
`path` | `` | string | Path to original file you wish to backup.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createDirectory>
Create a new directory
property | default value | allowed values | description
`path` | `` | string | Path to the new directory
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createShortcuts>
Creates one or more shortcuts in specified location.
property | default value | allowed values | description
`destination` | `` | string | Path to the location where you want to create the shortcuts.
`shortcutList` | `` | `<shortcut>` | List of shortcuts to create.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createSymLink>
Create a symbolic link to a file. It is the equivalent to the Unix ln command.
property | default value | allowed values | description
`linkName` | `` | string | Symbolic link name.
`target` | `` | string | Path to the file to which you want to create a symbolic link.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteFile>
Delete a file or directory (including its contents). The action does not throw an error if deleting a file or directory failed.
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`path` | `` | string | Path to the file or directory to delete. It accepts patterns
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getFileInfo>
Gets Information About File Or Directory
property | default value | allowed values | description
`followSymLinks` | `0` | 0, 1 | Whether or not to follow or not symbolic links
`path` | `` | string | Path
`type` | `and` | size, type | Type of information to retrieve
`variable` | `` | string | Variable to store result in
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getSymLinkTarget>
Get the destination path referenced by the given symbolic link. Returns an empty value if the file doesn’t exist or is not a symbolic link.
property | default value | allowed values | description
`link` | `` | string | Symbolic link path
`variable` | `` | string | Variable to store result
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<renameFile>
Change the name of a file or directory
property | default value | allowed values | description
`destination` | `` | string | New name of the file.
`excludeFiles` | `` | string | Patterns to exclude files
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`origin` | `` | string | Original name of the file.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<touchFile>
Update the access and modification times of a file or directory. If the file does not exist, it can be specified whether to create an empty file or not. It is equivalent to the touch Unix command.
property | default value | allowed values | description
`createIfNotExists` | `1` | 0, 1 | Whether or not to create the file in case it does not exist
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`path` | `` | string | Path to the file/directory to be touched
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<unpackDirectory>
Extract a directory from an installer before files are unpacked during the installation phase
property | default value | allowed values | description
`component` | `` | string | Project component where the directory you want to extract is located.
`destination` | `` | string | Path to the location where you want to extract the directory.
`folder` | `` | string | Project folder name where the directory you want to extract is located.
`origin` | `` | string | Directory name you want to extract.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<unpackFile>
Extract files from an installer before files are unpacked during the installation phase
property | default value | allowed values | description
`component` | `` | string | Project component where the file you want to extract is located
`destination` | `` | string | Path to the location where you want to extract the file
`folder` | `` | string | Project folder name where where the file you want to extract is located
`origin` | `` | string | File name you want to extract
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<unzip>
Extract content from a zip file to a destination folder.
property | default value | allowed values | description
`destinationDirectory` | `` | string | Path to the folder where you want the file content to be extracted. The folder must exist and must be writable
`zipFile` | `` | string | ZIP file that will be uncompressed
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<zip>
Pack one or more files to a zip file, relative to base directory.
property | default value | allowed values | description
`baseDirectory` | `` | string | Directory that all files will be packed relatively to
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`zipFile` | `` | string | ZIP file that will be created
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Flow Control Actions

<break>
Break current loop
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<continue>
Continue current loop
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<foreach>
Iterate over a set of values
property | default value | allowed values | description
`values` | `` | string | Space-separated values to iterate over
`variables` | `` | string | Space-separated list of variables that will be assigned a value with each iteration
`actionList` | `` | `<action>` | List of actions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<if>
Conditionally execute a group of actions
property | default value | allowed values | description
`conditionRuleEvaluationLogic` | `and` | and, or | Condition rule evaluation logic
`actionList` | `` | `<action>` | List of actions to execute if condition is true
`conditionRuleList` | `` | `<rule>` | List of conditions
`elseActionList` | `` | `<action>` | List of actions to execute if condition is false
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<while>
Execute a group of actions as long as conditions are met
property | default value | allowed values | description
`conditionRuleEvaluationLogic` | `and` | and, or | Condition rule evaluation logic
`actionList` | `` | `<action>` | List of actions
`conditionRuleList` | `` | `<rule>` | List of conditions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### HTTP Actions

<httpGet>
Access a URL and save the result into a file.
property | default value | allowed values | description
`filename` | `` | string | Filename to which to save the result to
`password` | `` | string | Password for URLs that require authentication
`url` | `` | string | URL to launch
`username` | `` | string | Username for URLs that require authentication
`httpHeadersList` | `` | `<httpHeader>` | List of headers for the request
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<httpPost>
Access a URL using HTTP POST and save the result into a file.
property | default value | allowed values | description
`filename` | `` | string | Filename to which to save the result to
`password` | `` | string | Password for URLs that require authentication
`url` | `` | string | URL to launch
`username` | `` | string | Username for URLs that require authentication
`httpHeadersList` | `` | `<httpHeader>` | List of headers for the request
`queryParameterList` | `` | `<queryParameter>` | List of variables that will be included in the POST query.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<httpProxyInit>
Configure proxy to be used by http actions
property | default value | allowed values | description
`exclude` | `127.0.0.1` | string | Space separated list of patters for urls that will be excluded from the proxy configuration
`password` | `` | string | Proxy server password
`port` | `` | string | Proxy server port
`server` | `` | string | Proxy server url
`username` | `` | string | Proxy server username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<launchBrowser>
Launch the default web browser with a given URL.
property | default value | allowed values | description
`url` | `` | string | URL of the page to be shown.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<urlDecode>
Decode a given text using URL formatting specifications and place the result in a variable.
property | default value | allowed values | description
`text` | `` | text | Text to decode
`variable` | `` | string | Variable to store the result in
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<urlEncode>
Encode a given text using URL formatting specifications and place the result in a variable.
property | default value | allowed values | description
`text` | `` | text | Text to encode
`variable` | `` | string | Variable to store the result in
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Installer Actions

<actionGroup>
Group a set of actions.
property | default value | allowed values | description
`actionList` | `` | `<action>` | List of actions to be grouped
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addChoiceOptions>
Add options to an existing choice parameter
property | default value | allowed values | description
`name` | `` | string | Name of an existing choice parameter.
`optionList` | `` | `<option>` | List of options to give to a choice parameter
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addChoiceOptionsFromText>
Add options to an existing choice parameter from a given text
property | default value | allowed values | description
`name` | `` | string | Name of an existing choice parameter.
`text` | `` | text | Text with the options to give to a choice parameter
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<componentSelection>
Select or deselect components for installation.
property | default value | allowed values | description
`deselect` | `` | string | Comma separated list of components you wish to deselect for installation.
`select` | `` | string | Comma separated list of components you wish to select for installation.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<decodeBase64>
Decode a string using base64.
property | default value | allowed values | description
`text` | `` | string | Text to process
`variable` | `` | string | Variable to save the final result to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<encodeBase64>
Encode a string using base64.
property | default value | allowed values | description
`text` | `` | string | Text to process
`variable` | `` | string | Variable to save the final result to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<exit>
Exit the installer/uninstaller.
property | default value | allowed values | description
`exitCode` | `0` | positive integer or zero | exit code returned by the installer/uninstaller
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<generateRandomValue>
Generate a random value.
property | default value | allowed values | description
`length` | `32` | positive integer or zero | Character length for the generated value.
`variable` | `` | string | Variable to which to save the generated value.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<globalVariables>
Mark a list of variables as global. Global variables defined or modified inside custom actions preserve their values after the execution while regular variables are not visible outside.
property | default value | allowed values | description
`names` | `` | string | Variable names
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<logMessage>
Write a message to the installation log. Useful for debugging purposes.
property | default value | allowed values | description
`enableTimeStamp` | `1` | 0, 1 | Whether to enable timestamp in the message or not.
`text` | `` | text | Message to include in log
`timeStampFormat` | `[%H:%M:%S]` | string | Format string for the optional timestamp. The string allows a number of field descriptors.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<mathExpression>
Calculate math expression
property | default value | allowed values | description
`text` | `` | string |
`variable` | `` | string | Variable to save the final result to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<md4>
Generate a MD4 from a given text.
property | default value | allowed values | description
`text` | `` | text | Text to calculate the MD4 on.
`useNTLMFormat` | `1` | 0, 1 | Whether or not to create an NTLM compilant hash
`variable` | `` | string | Variable to which to save the MD4 to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<md5>
Generate a MD5 from a given text.
property | default value | allowed values | description
`text` | `` | text | Text to calculate the MD5 on.
`variable` | `` | string | Variable to which to save the MD5 to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeChoiceOptions>
Clear choice values for a parameter
property | default value | allowed values | description
`name` | `` | string | Name of an existing choice parameter.
`options` | `` | string | Options to remove
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setEncryptionPassword>
Specifies and verifies password to use for copying files from installer
property | default value | allowed values | description
`password` | `` | string | Password to use; action will throw error if password specified does not match password from build time
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setInstallerVariable>
Set a installer variable. If the name of the variable matches a parameter name, the value of the parameter will be updated.
property | default value | allowed values | description
`name` | `` | string | Variable name
`persist` | `0` | 0, 1 | Whether the variable will be available in the uninstaller as well.
`value` | `` | text | Value to set the variable to
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setInstallerVariableFromRegEx>
Set a installer variable to the result of a regular expression. If the name of the variable matches a parameter name, the value of the parameter will be updated.
property | default value | allowed values | description
`name` | `` | string | Name of the variable to set
`pattern` | `` | string | Pattern to match
`substitution` | `` | string | Value to replace matched text with
`text` | `` | text | Text to match
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setInstallerVariableFromScriptOutput>
Set a installer variable to the output of a script. If the name of the variable matches a parameter name, the value of the parameter will be updated.
property | default value | allowed values | description
`exec` | `` | string | Path to the script to run
`execArgs` | `` | string | Arguments to pass to the script
`name` | `` | string | Name of the variable to set
`workingDirectory` | `` | string | Working directory. This is important for scripts that expect to be run from a specific location
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<sha1>
Generate a SHA-1 from a given text.
property | default value | allowed values | description
`text` | `` | text | Text to calculate the SHA-1 on.
`variable` | `` | string | Variable to which to save the SHA-1 to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<sha256>
Generate a SHA-256 from a given text.
property | default value | allowed values | description
`text` | `` | text | Text to calculate the SHA-256 on.
`variable` | `` | string | Variable to which to save the SHA-256 to.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<stringModify>
Perform one of the allowed transformations in the specified text, storing the result into a variable.
property | default value | allowed values | description
`logic` | `trim` | toupper, tolower, totitle, trimleft, trimright, trim | Transformation to perform.
`text` | `` | text | Text which will be transformed.
`variable` | `` | string | Variable name which will store the result.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<wait>
Pause the installation for given time
property | default value | allowed values | description
`ms` | `` | string | Number of milliseconds to wait
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Java Actions

<autodetectJava>
Autodetects an existing Java (tm) installation in the system and creates corresponding installer variables: java_executable java_vendor java_version java_version_major java_version_full java_bitness. If a valid java version was found, the variable java_autodetected will be set to 1
property | default value | allowed values | description
`promptUser` | `0` | 0, 1 | Prompt user to choose appropriate version
`selectionOrder` | `first` | first, oldest, newest | Order of the Java versions detected
`validVersionList` | `` | `<validVersion>` | List of supported Java versions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createJavaLaunchers>
Creates one or more Java launchers in specified location.
property | default value | allowed values | description
`destination` | `` | string | Path to the location where you want to create the launchers.
`javaLauncherList` | `` | `<javaLauncher>` | List of launchers to create.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### OSX-specific actions

<changeOSXAttributes>
Change OSX attributes of a file or directory. Trying to set an attribute on a read only file will result in a failure. Make sure the file is writable before attempting to change any attribute other than, of course, readOnly
property | default value | allowed values | description
`creator` | `` | string | Creator to set to file or directory
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`hidden` | `unchanged` | 1, 0, unchanged | Whether the file is visible or not
`readOnly` | `unchanged` | 1, 0, unchanged | Whether the file is read only or writable
`type` | `` | string | Type to set to file or directory
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Registry Actions

<registryDelete>
Delete a registry entry. If the entry to delete is only a registry key and it does not exist, the action will be ignored. Deleting a registry value (key + name combination) that does not exist will trigger a regular error.
property | default value | allowed values | description
`key` | `` | string | Registry key
`name` | `` | string | Entry name to delete
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registryFind>
Retrieve the first registry hive and content matching a certain expression and store it as a list in an installer variable. If no match is found the variable will be created empty.
property | default value | allowed values | description
`dataPattern` | `*` | string | Pattern to match in the value
`findAll` | `0` | 0, 1 | Whether to look for the first occurrence or for all
`keyPattern` | `*` | string | Pattern to match key name with
`namePattern` | `*` | string | Pattern to match entry name with
`rootKey` | `HKEY_LOCAL_MACHINE\SOFTWARE` | string | Root key from which start the search
`searchDepth` | `0` | positive integer or zero | Maximum depth of the search. 0 will look just in the Root Key
`variable` | `` | string | Variable name to store the results
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registryGet>
Store the value of a registry key in an installer variable. If the key or name does not exist, then the variable will be created empty.
property | default value | allowed values | description
`key` | `` | string | Registry key
`name` | `` | string | Entry name to read value from
`variable` | `` | string | Variable name to store registry value to
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registryGetKey>
Store in variable the first registry key that matches the given pattern, or set the variable to empty otherwise. The search is case-sensitive for the whole key provided.
property | default value | allowed values | description
`key` | `` | string | Registry key
`variable` | `` | string | Variable to store result
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registryGetMatch>
Store the value of the first match of a registry key matching a certain expression in an installer variable. If the key or name does not exist, then the variable will be created empty. The name can contain a wildcard expression (using *)
property | default value | allowed values | description
`key` | `` | string | Registry key
`name` | `` | string | Entry name to read value from
`variable` | `` | string | Variable name to store registry value to
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<registrySet>
Create a new registry key or modify the value of an existing registry key.
property | default value | allowed values | description
`key` | `` | string | Registry key
`name` | `` | string | Entry name to set or modify value to
`type` | `REG_SZ` | REG_BINARY, REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_DWORD, REG_BIG_ENDIAN, REG_LINK, REG_MULTI_SZ, REG_RESOURCE_LIST | Type of key to add
`value` | `` | string | Value to set to the registry key
`wowMode` | `none` | none, 32, 64 | Determines whether we want to access a 32-bit or 64-bit view of the Registry
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Services Actions

<addUnixService>
This action allows you to create a new service in a Linux based system. Note that you will need to run the installer as root to be able to create new services.
property | default value | allowed values | description
`description` | `` | string | Product description
`name` | `` | string | Service Name
`program` | `` | string | Path to the program
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createOSXService>
Create Mac OS X service.
property | default value | allowed values | description
`abandonProcessGroup` | `0` | 0, 1 | Don’t kill the remaining processes with the same group ID.
`groupname` | `` | string | Groupname
`keepAlive` | `1` | 0, 1 | Keep process alive by launchctl
`program` | `` | string | Path to program
`programArguments` | `` | string | Arguments to pass to the program
`scope` | `user` | user, system | Scope of service
`serviceName` | `` | string | Identifier for the service name
`username` | `` | string | Username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createWindowsService>
Register a program as a Windows service.
property | default value | allowed values | description
`account` | `` | string | User account under which the service should run. It takes the form domain\username. If the account is a local account, it may be specified as .\username or username. If this option is not specified, the service will run under the LocalSystem account.
`dependencies` | `` | string | Comma separated list of services that the created service depends on
`description` | `` | string | Program description
`displayName` | `` | string | Name displayed in the Windows service control panel
`password` | `` | string | Password for the user account if one is specified.
`program` | `` | string | Path to program
`programArguments` | `` | string | Arguments to pass to the program
`serviceName` | `` | string | Internal service name
`startType` | `auto` | auto, manual, disabled | Specify how the service should be started
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteOSXService>
Delete Mac OS X service.
property | default value | allowed values | description
`scope` | `user` | user, system | Scope of service
`serviceName` | `` | string | Identifier for the service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteWindowsService>
Delete a Windows service
property | default value | allowed values | description
`displayName` | `` | string | Name displayed in the Windows service control panel
`serviceName` | `` | string | Internal service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getUniqueWindowsServiceName>
Return a unique service name
property | default value | allowed values | description
`displayName` | `` | string | Initial display name for the service
`selectedDisplayNameVariable` | `` | string | Variable to store the service display name
`selectedServiceNameVariable` | `` | string | Variable to store the Service name
`serviceName` | `` | string | Initial name for the service
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeUnixService>
This action allows you to remove a service in a Linux based system. Note that you will need to run the installer as root to be able to remove services.
property | default value | allowed values | description
`name` | `` | string | Service Name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<restartWindowsService>
Restart a Windows service
property | default value | allowed values | description
`delay` | `15000` | positive integer or zero | Amount of milliseconds to wait for the service to start / stop.
`displayName` | `` | string | Name displayed in the Windows service control panel
`serviceName` | `` | string | Internal service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<startOSXService>
Start Mac OS X service.
property | default value | allowed values | description
`serviceName` | `` | string | Identifier for the service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<startWindowsService>
Start a Windows service
property | default value | allowed values | description
`delay` | `15000` | positive integer or zero | Amount of milliseconds to wait for the service to start.
`displayName` | `` | string | Name displayed in the Windows service control panel
`serviceName` | `` | string | Internal service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<stopOSXService>
Stop Mac OS X service.
property | default value | allowed values | description
`serviceName` | `` | string | Identifier for the service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<stopWindowsService>
Stop a Windows service
property | default value | allowed values | description
`delay` | `15000` | positive integer or zero | Amount of milliseconds to wait for the service to stop.
`displayName` | `` | string | Name displayed in the Windows service control panel
`serviceName` | `` | string | Internal service name
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### System Actions

<addUnixDesktopStartUpItem>
Adds a program to be executed whenever a window manager session starts (only Linux KDE/Gnome supported).
property | default value | allowed values | description
`description` | `` | string | The description of the program.
`name` | `` | string | The name of this startup item.
`program` | `` | string | Path to the program to be executed when the session starts.
`programArguments` | `` | string | Arguments to be considered when running the program (only available for GNOME).
`username` | `${system_username}` | string | User to add the Startup item for. If empty, the current user will be used
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<createTimeStamp>
This action allows you to create a timestamp using a custom format, storing the result in an installer variable.
property | default value | allowed values | description
`format` | `%Y%m%d` | string | Format string for the generated timestamp. The string allows a number of field descriptors.
`variable` | `` | string | Variable that will store the resulting timestamp.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<dirName>
Returns a name comprised of all of the path components in name excluding the last element. If name is a relative file name and only contains one path element, then returns ".". If name refers to a root directory, then the root directory is returned.
property | default value | allowed values | description
`path` | `` | string | The path from which the base directory will be retrieved.
`variable` | `` | string | Variable that will store the directory path.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<findFile>
Search for a file in a directory and all the subdirectories.
property | default value | allowed values | description
`baseDirectory` | `` | string | Path to the directory in which to search for the file. It will search inside the directory and all of its subdirectories.
`followSymLinks` | `0` | 0, 1 | Whether or not to follow or not symbolic links
`pattern` | `` | string | Pattern for the file that will be searched. The pattern can contain wildcards (*,?).
`variable` | `` | string | Variable where the full path to the first matching file will be stored
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getFreeDiskSpace>
Calculate the free disk (KiloBytes) space and save the value in the given variable. Returns -1 if free space cannot be determined.
property | default value | allowed values | description
`path` | `` | string | Path to the folder or disk
`units` | `KB` | KB, MB, GB | Size units for the returned value.
`variable` | `` | string | Variable to which to save the result of the calculation
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getFreePort>
Returns the number of the first available port in a range of port numbers specified by initialPort and finalPort (both inclusive).
property | default value | allowed values | description
`finalPort` | `` | string | The final port number on the range (inclusive).
`initialPort` | `` | string | The initial port number on the range (inclusive).
`variable` | `` | string | Variable that will store the free port number.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getProcessUsingPort>
Gets Name Of Process Using Specified Port
property | default value | allowed values | description
`pidVariable` | `` | string | Variable to use for storing id of the process using the port
`port` | `` | string | TCP port to check
`variable` | `` | string | Variable to use for storing name of the process using the port
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getTotalDiskSpace>
Get the total disk (KiloBytes) space and save the value in the given variable. Returns -1 if total space cannot be determined.
property | default value | allowed values | description
`path` | `` | string | Path to the folder or disk
`units` | `KB` | KB, MB, GB | Size units for the returned value.
`variable` | `` | string | Variable to which to save the result of the calculation
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<kill>
This action allows you to kill a running process that matches one or several conditions. Windows support only.
property | default value | allowed values | description
`name` | `` | string | Name of the process, usually the executable filename.
`path` | `` | string | Path to the executable of the process.
`pid` | `` | string | ID of the process to be killed.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<locate>
Based on command given, locates binary and creates command that needs to be run.
property | default value | allowed values | description
`command` | `` | string | Command to locate
`variable` | `` | string | Variable to store the result in
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<pathManipulation>
Performs change on the path and returns it in variable
property | default value | allowed values | description
`action` | `absolutize` | absolutize | Action to perform on the path
`path` | `` | string | The path to manipulate
`variable` | `` | string | Variable that will store the new path.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<runProgram>
Run a program or script
property | default value | allowed values | description
`program` | `` | string | Path to program or script to run
`programArguments` | `` | string | Program arguments
`runAs` | `` | string | Run the program or script as a specific user id. It will only take effect on Unix system and when running the installer as root
`stdin` | `` | text | Text to send to program’s standard input.
`useMSDOSPath` | `1` | 0, 1 | Whether or not to use or not MSDOS program name path on Windows
`workingDirectory` | `` | string | Working directory. This is important for scripts that expect to be run from a specific location. By default, it will be the directory where the script or program is located
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<waitForPort>
Pause the installation for a maximum timeout until a server process is listening in the specified port
property | default value | allowed values | description
`port` | `` | string | TCP port to check
`state` | `in_use` | free, in_use | Wait for port to be free or in use.
`timeout` | `` | string | Maximum amount of time to wait (in milliseconds)
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### User and Group Actions

<addGroup>
Add a group to the system. Equal to the Unix groupadd command
property | default value | allowed values | description
`groupname` | `` | string | Group to add to the system
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addGroupToUser>
Add a supplementary group to a user. This way, the user is also member of that group. Make sure that the group already exists. If no username is given, then the current logged on user is selected.
property | default value | allowed values | description
`groupname` | `` | string | Groupname
`username` | `` | string | Username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addUser>
Add a user to the system.
property | default value | allowed values | description
`homedir` | `` |  | Path to the users homedir
`password` | `` | string | Password for the user account.
`username` | `` | string | Username to add to the system
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addWindowsAccountRights>
Add rights to user or group on Windows
property | default value | allowed values | description
`account` | `` | string | User or group name
`rights` | `` | string | Account rights, separated by spaces; Example value: SeServiceLogonRight. A complete list can be obtained from http://msdn.microsoft.com/en-us/library/aa375728(v=VS.85).aspx
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<changeOwnerAndGroup>
Change the owner and group of a file or directory
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`group` | `` | string | Group to set to file or directory
`owner` | `` | string | Owner to set to file or directory
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<changePermissions>
Change permissions of a file or directory
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`permissions` | `` | string | Permissions to set to file or directory
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteGroup>
Delete a group from the system. Equivalent to the Unix groupdel command
property | default value | allowed values | description
`groupname` | `` | string | Group name to delete.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteGroupFromUser>
Delete a supplementary group from a user.
property | default value | allowed values | description
`groupname` | `` | string | Groupname
`username` | `` | string | Username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteUser>
Delete a user from the system. Equivalent to the Unix userdel command
property | default value | allowed values | description
`username` | `` | string | Username
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getPermissions>
Get permissions of a file or directory
property | default value | allowed values | description
`file` | `` | string | File or directory to retrieve permissions
`variable` | `permissions` | string | Variable name to save permissions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeWindowsAccountRights>
Remove rights from user or group on Windows
property | default value | allowed values | description
`account` | `` | string | User or group name
`rights` | `` | string | Account rights, separated by spaces; Example value: SeServiceLogonRight. A complete list can be obtained from http://msdn.microsoft.com/en-us/library/aa375728(v=VS.85).aspx
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

### Windows-specific actions

<addScheduledTask>
Create a new task or modify the value of an existing one.
property | default value | allowed values | description
`dayOfMonth` | `1` | positive integer or zero | This parameter is used only for Task of MONTHLY type. It specifies the day of the month the task will be executed.
`disallowStartIfOnBatteries` | `1` | 0, 1 | Don’t start the task if the system is running on batteries
`duration` | `` | positive integer or zero | (minutes) How long the Task is active.
`endDate` | `` |  | (year-month-day) Specify the date on which the task becomes inactive.
`executionTimeLimit` | `72` | string | Maximum execution time in hours
`interval` | `` | positive integer or zero | (minutes) How often do you want to execute the given Task in specified duration time.
`name` | `` | string | Name of the Task
`password` | `` | string | The user password associated with the account specified in runAs parameter.
`period` | `1` | positive integer or zero | This parameter is used only for Task of DAILY/WEEKLY type. It specifies how often (every PERIOD days for type DAILY / every PERIOD weeks for type WEEKLY) the task will be executed.
`program` | `` |  | Path to program or script to run.
`programArguments` | `` | string | Program arguments.
`runAs` | `` | string | Run the Task as the specified user.
`runAsAdmin` | `0` | 0, 1 | Run with highest privileges.
`runOnlyIfLoggedOn` | `0` | 0, 1 | Run task only if the user specified by runAs parameter is logged on.
`startDate` | `` |  | (year-month-day) Specify the date on which the task becomes activated.
`startTime` | `` |  | (hours:minutes) The time the Task becomes activated.
`type` | `DAILY` | DAILY, WEEKLY, ONCE, ONIDLE, ONSTART, ONLOGON, MONTHLY | Type of the Task.
`weekDays` | `*` | string | Specifies days to run the task on (MON, TUE, … SUN) or * for all days of week
`workingDirectory` | `` |  | Working directory. This is important for scripts that expect to be run from a specific location. By default, it will be the directory where the script or program is located.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<addSharedDLL>
Increment the reference count for a shared DLL.
property | default value | allowed values | description
`path` | `` | string | Path to the shared DLL
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<associateWindowsFileExtension>
Define the set of actions (commands) that can be performed for the given file types.
property | default value | allowed values | description
`extensions` | `` | string | Space-separated list of extensions for which the given commands will be available.
`friendlyName` | `` | string | Friendly Name for the progID.
`icon` | `` | string | Path to the icon file that contains the icon to display.
`mimeType` | `` | string | MIME type associated to all the file extensions.
`progID` | `` | string | Programmatic Identifier to which the extensions are attached, contains the available commands to be invoked on each file type.
`scope` | `system` | user, system | Choose between system or user scope when installing the association
`commandList` | `` | `<command>` | List of commands that can be invoked on each given file type.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<autodetectDotNetFramework>
Autodetects an existing .NET (tm) installation in the system and creates corresponding installer variables: dotnet_version. If a valid .NET framework version was found, the variable dotnet_autodetected, will be set to 1
property | default value | allowed values | description
`validDotNetVersionList` | `` | `<validDotNetVersion>` | List of supported .NET versions
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<changeExecutableResources>
Change resource information of a Windows executable
property | default value | allowed values | description
`path` | `` | string | Path to the Windows executable to modify
`windowsResourceComments` | `` | string | Comments for resources embedded in Windows executable
`windowsResourceCompanyName` | `` | string | Company Name for resources embedded in Windows executable
`windowsResourceFileDescription` | `` | string | File Description for resources embedded in Windows executable
`windowsResourceFileVersion` | `` | string | File version for resources embedded in Windows executable
`windowsResourceInternalName` | `` | string | Internal Name for resources embedded in Windows executable
`windowsResourceLegalCopyright` | `` | string | Legal Copyright for resources embedded in Windows executable
`windowsResourceLegalTrademarks` | `` | string | Legal Trademarks for resources embedded in Windows executable
`windowsResourceOriginalFilename` | `` | string | Original Filename for resources embedded in Windows executable
`windowsResourceProductName` | `` | string | Product Name for resources embedded in Windows executable
`windowsResourceProductVersion` | `` | string | Product Version for resources embedded in Windows executable
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<changeWindowsAttributes>
Change Windows attributes for a file or directory.
property | default value | allowed values | description
`archive` | `unchanged` | 1, 0, unchanged | Whether the file has or has not changed since the last backup.
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`hidden` | `unchanged` | 1, 0, unchanged | Whether the file is visible or not
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`readOnly` | `unchanged` | 1, 0, unchanged | Whether the file is read only or writable
`system` | `unchanged` | 1, 0, unchanged | Whether the file is a System file or a regular one
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<clearWindowsACL>
Clear Windows ACL permissions of a file or directory
property | default value | allowed values | description
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<deleteScheduledTask>
Delete Windows Scheduled Task
property | default value | allowed values | description
`name` | `` | string | Name of the Task
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getWindowsACL>
Get Windows ACL permissions of a file or directory
property | default value | allowed values | description
`deniedPermissions` | `denied` | string | Variable name to save denied permissions
`file` | `` | string | File to retrieve ACL
`grantedPermissions` | `granted` | string | Variable name to save granted permissions
`username` | `` | string | User to retrieve ACL
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<getWindowsFileVersionInfo>
Get file information.
property | default value | allowed values | description
`path` | `` | string | Path to the file
`type` | `version` | codepage, flags, os, productversion, signature, structversion, type, version | Type of the file info.
`variable` | `` | string | Variable to save the file info to
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeSharedDLL>
Decrements the reference count for a shared DLL. If it reaches zero, the file will be removed
property | default value | allowed values | description
`path` | `` | string | Path to the shared DLL
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<removeWindowsFileAssociation>
Unregisters the associations between the given file types and any set of actions (commands) that may be defined on them.
property | default value | allowed values | description
`extensions` | `` | string | Space-separated list of extensions to remove.
`mimeType` | `` | string | MIME type to remove, associated to all the file extensions. It must be specified if you want to delete MIME associations added previously with associateWindowsFileExtension action.
`progID` | `` | string | Programmatic Identifier to remove, to which the extensions are attached.
`scope` | `system` | user, system | Choose between system or user scope when installing the association
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<setWindowsACL>
Change Windows ACL permissions of a file or directory
property | default value | allowed values | description
`action` | `allow` | allow, deny | Whether to allow or deny permissions
`excludeFiles` | `` | string | Patterns to exclude files
`files` | `` | string | File patterns to apply action to
`matchHiddenFiles` | `0` | 0, 1 | Whether or not to attempt to match Windows hidden files
`permissions` | `generic_all` | string | Permissions for matching files or directories
`recurseContainers` | `0` | 0, 1 | Whether to apply recursively or not to container descendant
`recurseObjects` | `0` | 0, 1 | Whether to apply recursively or not to object descendant
`recurseOneLevelOnly` | `0` | 0, 1 | Just one level recursion if applicable
`self` | `1` | 0, 1 | Whether to apply or not to the specified file
`users` | `S-1-1-0` | string | Comma separated list of users to modify access permissions for
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<shutdown>
Shut down the machine (Windows only)
property | default value | allowed values | description
`delay` | `` | positive integer or zero | Delay in seconds before shut down.
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

<wow64FsRedirection>
Modifies the Windows x64 File System Redirection behavior. It mainly redirects %Windir%System32 to %Windir%SysWOW64 for 32-bit processes running on Windows x64 systems. A similar effect is also applied to Program Files
property | default value | allowed values | description
`action` | `disable` | enable, disable | Whether to enable or disable the File System Redirection
`Common properties:` `abortOnError, breakpoint, customErrorMessage, explanation, progressText, ruleEvaluationLogic, run, show, showMessageOnError, onErrorActionList, ruleList`

28. Encryption and password protection |  | B. Rules