diff --git a/articles/automatic-software-install-in-fleet.md b/articles/automatic-software-install-in-fleet.md index c5e52a8480..31bca9555f 100644 --- a/articles/automatic-software-install-in-fleet.md +++ b/articles/automatic-software-install-in-fleet.md @@ -65,6 +65,8 @@ SELECT 1 FROM apps WHERE bundle_identifier = '' AND version_ SELECT 1 FROM programs WHERE name = '' AND version_compare(version, '') >= 0; ``` +> Currently, automatic install policies generated by Fleet for MSIs use `identifying_number` in the `programs` table, which corresponds to an application's ProductCode. ProductCode only refers to a specific version of a specific application, so the policy will fail (triggering an install) if any other version, newer or older, of the application is installed instead. The UpgradeCode attribute ties together multiple versions of the same application, and will be used for MSI auto-install policies [in a future release of Fleet](https://github.com/fleetdm/fleet/issues/27447) [once supported in osquery](https://github.com/fleetdm/fleet/issues/27759). + ### Debian-based (deb) ```sql diff --git a/articles/deploy-software-packages.md b/articles/deploy-software-packages.md index cca9c60b70..f4e9dabfdc 100644 --- a/articles/deploy-software-packages.md +++ b/articles/deploy-software-packages.md @@ -58,7 +58,7 @@ A pre-install query is a valid osquery SQL statement that will be evaluated on t ### Install script -After selecting a file, a default install script will be pre-filled. If the software package requires a custom installation process (for example, if [an EXE-based Windows installer requires custom handling](https://fleetdm.com/learn-more-about/exe-install-scripts)), this script can be edited. When the script is run, the `$INSTALLER_PATH` environment variable will be set by `fleetd` to where the installer is being run. +After selecting a file, a default install script will be pre-filled for most installer types. If the software package requires a custom installation process (for example, for [EXE-based Windows installers](https://fleetdm.com/learn-more-about/exe-install-scripts)), this script can be edited. When the script is run, the `$INSTALLER_PATH` environment variable will be set by `fleetd` to where the installer is being run. ### Post-install script @@ -66,10 +66,12 @@ A post-install script will run after the installation, allowing you to, for exam ### Uninstall script -An uninstall script will run when an admin chooses to uninstall the software from the host on the host details page, or if the post-install script (if supplied) fails for hosts running `fleetd` 1.33.0 or later. Like the install script, a default uninstall script will be pre-filled after selecting a file. This script can be edited if the software package requires a custom uninstallation process. +An uninstall script will run when an admin chooses to uninstall the software from the host on the host details page, or if the post-install script (if supplied) fails for hosts running `fleetd` 1.33.0 or later. Like the install script, a default uninstall script will be pre-filled after selecting a file for most installer formats (EXE-based installers being the exception). This script can be edited if the software package requires a custom uninstallation process. In addition to the `$INSTALLER_PATH` environment variable supported by install scripts, you can use `$PACKAGE_ID` in uninstall scripts as a placeholder for the package IDs (for .pkg files), package name (for Linux installers), product code (for MSIs), or software name (for EXE installers). The Fleet server will substitute `$PACKAGE_ID` on upload. +> Currently, the default MSI uninstaller script only uninstalls that exact installer, rather than earlier/later versions of the same application. + ## Install the package After a software package is added to a team, it can be installed on hosts via the UI.