Simple persistent popup that tells the user the application (MSI) is about to be installed

Hey Guys,

been using PSADT for a few years but still get stuck on simple things sometimes…

I’ve tried using the Show-InstallationWelcome command in many ways but I never get the correct result. Basically I need PSADT to pop up and tell the user an MSI is about to install:

Persistent
no countdown
no deferrals
no prompting to close apps

only an option to continue.

probably blown a couple of days on this one… hope you can help

Cheers

Hey,

try…
Show-InstallationWelcome -CloseApps “APPLICATION” -PersistPrompt
or
Show-InstallationWelcome -PersistPrompt

Thanks very much.

Show-InstallationWelcome -CloseApps “APPLICATION” -PersistPrompt
it just bypasses and goes straight to the installation.

Show-InstallationWelcome -PersistPrompt
stops at the prompt but asks user to Close Program for which they dont have permissions to close.

Ive tried it 100 different ways but this is my current iteration. Ive also added the Deploy-Application.ps1 script below.

Capture

<#
.SYNOPSIS
This script performs the installation or uninstallation of an application(s).
# LICENSE #
PowerShell App Deployment Toolkit - Provides a set of functions to perform common application deployment tasks on Windows.
Copyright (C) 2017 - Sean Lillis, Dan Cunningham, Muhammad Mashwani, Aman Motazedian.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.
.DESCRIPTION
The script is provided as a template to perform an install or uninstall of an application(s).
The script either performs an “Install” deployment type or an “Uninstall” deployment type.
The install deployment type is broken down into 3 main sections/phases: Pre-Install, Install, and Post-Install.
The script dot-sources the AppDeployToolkitMain.ps1 script which contains the logic and functions required to install or uninstall an application.
.PARAMETER DeploymentType
The type of deployment to perform. Default is: Install.
.PARAMETER DeployMode
Specifies whether the installation should be run in Interactive, Silent, or NonInteractive mode. Default is: Interactive. Options: Interactive = Shows dialogs, Silent = No dialogs, NonInteractive = Very silent, i.e. no blocking apps. NonInteractive mode is automatically set if it is detected that the process is not user interactive.
.PARAMETER AllowRebootPassThru
Allows the 3010 return code (requires restart) to be passed back to the parent process (e.g. SCCM) if detected from an installation. If 3010 is passed back to SCCM, a reboot prompt will be triggered.
.PARAMETER TerminalServerMode
Changes to “user install mode” and back to “user execute mode” for installing/uninstalling applications for Remote Destkop Session Hosts/Citrix servers.
.PARAMETER DisableLogging
Disables logging to file for the script. Default is: $false.
.EXAMPLE
powershell.exe -Command “& { & ‘.\Deploy-Application.ps1’ -DeployMode ‘Silent’; Exit $LastExitCode }”
.EXAMPLE
powershell.exe -Command “& { & ‘.\Deploy-Application.ps1’ -AllowRebootPassThru; Exit $LastExitCode }”
.EXAMPLE
powershell.exe -Command “& { & ‘.\Deploy-Application.ps1’ -DeploymentType ‘Uninstall’; Exit $LastExitCode }”
.EXAMPLE
Deploy-Application.exe -DeploymentType “Install” -DeployMode “Silent”
.NOTES
Toolkit Exit Code Ranges:
60000 - 68999: Reserved for built-in exit codes in Deploy-Application.ps1, Deploy-Application.exe, and AppDeployToolkitMain.ps1
69000 - 69999: Recommended for user customized exit codes in Deploy-Application.ps1
70000 - 79999: Recommended for user customized exit codes in AppDeployToolkitExtensions.ps1
.LINK
http://psappdeploytoolkit.com
#>
[CmdletBinding()]
Param (
[Parameter(Mandatory=$false)]
[ValidateSet(‘Install’,‘Uninstall’,‘Repair’)]
[string]$DeploymentType = ‘Install’,
[Parameter(Mandatory=$false)]
[ValidateSet(‘Interactive’,‘Silent’,‘NonInteractive’)]
[string]$DeployMode = ‘Interactive’,
[Parameter(Mandatory=$false)]
[switch]$AllowRebootPassThru = $false,
[Parameter(Mandatory=$false)]
[switch]$TerminalServerMode = $false,
[Parameter(Mandatory=$false)]
[switch]$DisableLogging = $false
)

Try {
## Set the script execution policy for this process
Try { Set-ExecutionPolicy -ExecutionPolicy ‘ByPass’ -Scope ‘Process’ -Force -ErrorAction ‘Stop’ } Catch {}

##*===============================================
##* VARIABLE DECLARATION
##*===============================================
## Variables: Application
[string]$appVendor = ''
[string]$appName = ''
[string]$appVersion = ''
[string]$appArch = ''
[string]$appLang = 'EN'
[string]$appRevision = '01'
[string]$appScriptVersion = '1.0.0'
[string]$appScriptDate = 'XX/XX/20XX'
[string]$appScriptAuthor = '<author name>'
##*===============================================
## Variables: Install Titles (Only set here to override defaults set by the toolkit)
[string]$installName = ''
[string]$installTitle = ''

##* Do not modify section below
#region DoNotModify

## Variables: Exit Code
[int32]$mainExitCode = 0

## Variables: Script
[string]$deployAppScriptFriendlyName = 'Deploy Application'
[version]$deployAppScriptVersion = [version]'3.8.4'
[string]$deployAppScriptDate = '26/01/2021'
[hashtable]$deployAppScriptParameters = $psBoundParameters

## Variables: Environment
If (Test-Path -LiteralPath 'variable:HostInvocation') { $InvocationInfo = $HostInvocation } Else { $InvocationInfo = $MyInvocation }
[string]$scriptDirectory = Split-Path -Path $InvocationInfo.MyCommand.Definition -Parent

## Dot source the required App Deploy Toolkit Functions
Try {
	[string]$moduleAppDeployToolkitMain = "$scriptDirectory\AppDeployToolkit\AppDeployToolkitMain.ps1"
	If (-not (Test-Path -LiteralPath $moduleAppDeployToolkitMain -PathType 'Leaf')) { Throw "Module does not exist at the specified location [$moduleAppDeployToolkitMain]." }
	If ($DisableLogging) { . $moduleAppDeployToolkitMain -DisableLogging } Else { . $moduleAppDeployToolkitMain }
}
Catch {
	If ($mainExitCode -eq 0){ [int32]$mainExitCode = 60008 }
	Write-Error -Message "Module [$moduleAppDeployToolkitMain] failed to load: `n$($_.Exception.Message)`n `n$($_.InvocationInfo.PositionMessage)" -ErrorAction 'Continue'
	## Exit the script, returning the exit code to SCCM
	If (Test-Path -LiteralPath 'variable:HostInvocation') { $script:ExitCode = $mainExitCode; Exit } Else { Exit $mainExitCode }
}

#endregion
##* Do not modify section above
##*===============================================
##* END VARIABLE DECLARATION
##*===============================================

If ($deploymentType -ine 'Uninstall' -and $deploymentType -ine 'Repair') {
	##*===============================================
	##* PRE-INSTALLATION
	##*===============================================
	[string]$installPhase = 'Pre-Installation'

	## Show Welcome Message, close Internet Explorer if required, allow up to 3 deferrals, verify there is enough disk space to complete the install, and persist the prompt
	#Show-InstallationWelcome -PersistPrompt -CloseAppsCountdown 600
    #Show-InstallationWelcome -CloseApps “APPLICATION” -PersistPrompt
    Show-InstallationWelcome -PersistPrompt

	## Show Progress Message (with the default message)
	Show-InstallationProgress

	## <Perform Pre-Installation tasks here>


	##*===============================================
	##* INSTALLATION
	##*===============================================
	[string]$installPhase = 'Installation'

	## Handle Zero-Config MSI Installations
	If ($useDefaultMsi) {
		[hashtable]$ExecuteDefaultMSISplat =  @{ Action = 'Install'; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
		Execute-MSI @ExecuteDefaultMSISplat; If ($defaultMspFiles) { $defaultMspFiles | ForEach-Object { Execute-MSI -Action 'Patch' -Path $_ } }
	}

	## <Perform Installation tasks here>

    Start-Process msiexec.exe -Wait -ArgumentList '/i "$PSScriptRoot\Files\FortiClient.msi" /qn /L*v "C:\ITDRVS\FortiClientVPN-6.4.8-Install.log" TRANSFORMS="$PSScriptRoot\Files\FortiClient.mst"'


	##*===============================================
	##* POST-INSTALLATION
	##*===============================================
	[string]$installPhase = 'Post-Installation'

	## <Perform Post-Installation tasks here>

	## Display a message at the end of the install
	If (-not $useDefaultMsi) { Show-InstallationPrompt -Message 'You can customize text to appear at the end of an install or remove it completely for unattended installations.' -ButtonRightText 'OK' -Icon Information -NoWait }
}
ElseIf ($deploymentType -ieq 'Uninstall')
{
	##*===============================================
	##* PRE-UNINSTALLATION
	##*===============================================
	[string]$installPhase = 'Pre-Uninstallation'

	## Show Welcome Message, close Internet Explorer with a 60 second countdown before automatically closing
	Show-InstallationWelcome -CloseApps 'iexplore' -CloseAppsCountdown 60

	## Show Progress Message (with the default message)
	Show-InstallationProgress

	## <Perform Pre-Uninstallation tasks here>


	##*===============================================
	##* UNINSTALLATION
	##*===============================================
	[string]$installPhase = 'Uninstallation'

	## Handle Zero-Config MSI Uninstallations
	If ($useDefaultMsi) {
		[hashtable]$ExecuteDefaultMSISplat =  @{ Action = 'Uninstall'; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
		Execute-MSI @ExecuteDefaultMSISplat
	}

	# <Perform Uninstallation tasks here>


	##*===============================================
	##* POST-UNINSTALLATION
	##*===============================================
	[string]$installPhase = 'Post-Uninstallation'

	## <Perform Post-Uninstallation tasks here>


}
ElseIf ($deploymentType -ieq 'Repair')
{
	##*===============================================
	##* PRE-REPAIR
	##*===============================================
	[string]$installPhase = 'Pre-Repair'

	## Show Progress Message (with the default message)
	Show-InstallationProgress

	## <Perform Pre-Repair tasks here>

	##*===============================================
	##* REPAIR
	##*===============================================
	[string]$installPhase = 'Repair'

	## Handle Zero-Config MSI Repairs
	If ($useDefaultMsi) {
		[hashtable]$ExecuteDefaultMSISplat =  @{ Action = 'Repair'; Path = $defaultMsiFile; }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add('Transform', $defaultMstFile) }
		Execute-MSI @ExecuteDefaultMSISplat
	}
	# <Perform Repair tasks here>

	##*===============================================
	##* POST-REPAIR
	##*===============================================
	[string]$installPhase = 'Post-Repair'

	## <Perform Post-Repair tasks here>


}
##*===============================================
##* END SCRIPT BODY
##*===============================================

## Call the Exit-Script function to perform final cleanup operations
Exit-Script -ExitCode $mainExitCode

}
Catch {
[int32]$mainExitCode = 60001
[string]$mainErrorMessage = “$(Resolve-Error)”
Write-Log -Message $mainErrorMessage -Severity 3 -Source $deployAppScriptFriendlyName
Show-DialogBox -Text $mainErrorMessage -Icon ‘Stop’
Exit-Script -ExitCode $mainExitCode
}

:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit>powershell.exe -Command "& { & '.\Deploy-Application.ps1' -DeployMode 'interactive'; Exit $LastExitCode }"                                                                     
Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this
warning message. Do you want to run Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\Deploy-Application.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): r

Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this
warning message. Do you want to run Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\AppDeployToolkit\AppDeployToolkitMain.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): r
[06-16-2022 10:53:23.882] [PSAppDeployToolkit] :: Discovered Arch-Independent Zerotouch MSI under Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\Files\FortiClient.msi
[06-16-2022 10:53:23.944] [PSAppDeployToolkit] :: Discovered Zero-Config MSI installation file [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\Files\FortiClient.msi].
[06-16-2022 10:53:23.991] [PSAppDeployToolkit] :: Discovered Zero-Config MST installation file [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\Files\FortiClient.mst].
[06-16-2022 10:53:24.085] [Get-MsiTableProperty] :: Read data from Windows Installer database file [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\Files\FortiClient.msi] in table [Property].
[06-16-2022 10:53:24.413] [Get-MsiTableProperty] :: Read data from Windows Installer database file [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\Files\FortiClient.msi] in table [File].
[06-16-2022 10:53:25.788] [PSAppDeployToolkit] :: App Vendor [Fortinet Technologies Inc].
[06-16-2022 10:53:25.788] [PSAppDeployToolkit] :: App Name [FortiClient].
[06-16-2022 10:53:25.804] [PSAppDeployToolkit] :: App Version [6.4.8.1755].
[06-16-2022 10:53:25.804] [PSAppDeployToolkit] :: MSI Executable List [File_av_task,File_certutil,File_EPCUserAvatar,File_fcappdb,File_fcaptmon,File_FCAuth,File_FCCOMInt,File_FCConfig,File_FCDBLog,File_fcmonitor,File_FCSetupExe,File_FctSecSvr,File_FCVbltScan,File_FCWsc,File_FCWscD72,File_fmon3,File_FortiAvatar,File_FortiClient,File_FortiClientConsole,File_FortiClientSecurity,File_FortiClient_Diagnostic_Tool,File_FortiElevate,File_FortiESNAC,File_fortifws,File_FortiGuardAgent,File_FortiProxy,File_FortiScand,File_FortiSettings,File_FortiTray,File_FortiUSBmon,File_FortiVPNSt,File_FortiWF,File_FSSOMA,File_ipsec,File_scheduler,File_submitv,File_update_task,File_vcm2,File_vpcd,FortiSSLVPNdaemon,FortiSSLVPNsys].
[06-16-2022 10:53:26.132] [Initialization] [PSAppDeployToolkit] :: *******************************************************************************
[06-16-2022 10:53:26.132] [Initialization] [PSAppDeployToolkit] :: *******************************************************************************
[06-16-2022 10:53:26.163] [Initialization] [PSAppDeployToolkit] :: [FortinetTechnologiesInc_FortiClient_6.4.8.1755_EN_01] setup started.
[06-16-2022 10:53:26.225] [Initialization] [PSAppDeployToolkit] :: Script [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\AppDeployToolkit\AppDeployToolkitMain.ps1] dot-source invoked by [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\Deploy-Application.ps1]

Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this
warning message. Do you want to run Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\AppDeployToolkit\AppDeployToolkitExtensions.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): r
[06-16-2022 10:53:27.897] [Initialization] [PSAppDeployToolkitExt] :: Script [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\AppDeployToolkit\AppDeployToolkitExtensions.ps1] dot-source invoked by [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\AppDeployToolkit\AppDeployToolkitMain.ps1]
[06-16-2022 10:53:27.929] [Initialization] [PSAppDeployToolkit] :: [FortinetTechnologiesInc_FortiClient_6.4.8.1755_EN_01] script version is [1.0.0]
[06-16-2022 10:53:27.929] [Initialization] [PSAppDeployToolkit] :: [FortinetTechnologiesInc_FortiClient_6.4.8.1755_EN_01] script date is [XX/XX/20XX]
[06-16-2022 10:53:27.944] [Initialization] [PSAppDeployToolkit] :: [FortinetTechnologiesInc_FortiClient_6.4.8.1755_EN_01] script author is [<author name>]
[06-16-2022 10:53:27.960] [Initialization] [PSAppDeployToolkit] :: [Deploy Application] script version is [3.8.4]
[06-16-2022 10:53:27.960] [Initialization] [PSAppDeployToolkit] :: The following non-default parameters were passed to [Deploy Application]: [-DeployMode "interactive"]
[06-16-2022 10:53:27.991] [Initialization] [PSAppDeployToolkit] :: [App Deploy Toolkit Main] script version is [3.8.4]
[06-16-2022 10:53:28.007] [Initialization] [PSAppDeployToolkit] :: [App Deploy Toolkit Extensions] version is [3.8.4]
[06-16-2022 10:53:28.007] [Initialization] [PSAppDeployToolkit] :: Computer Name is [DHARVMWSONE2.domain.forest]
[06-16-2022 10:53:28.038] [Initialization] [PSAppDeployToolkit] :: Current User is [DOMAIN\stephenjordan]
[06-16-2022 10:53:28.069] [Initialization] [PSAppDeployToolkit] :: OS Version is [Microsoft Windows 10 Pro 64-bit 10.0.19044.1526]
[06-16-2022 10:53:28.069] [Initialization] [PSAppDeployToolkit] :: OS Type is [Workstation]
[06-16-2022 10:53:28.085] [Initialization] [PSAppDeployToolkit] :: Current Culture is [en-NZ], language is [EN] and UI language is [EN]
[06-16-2022 10:53:28.101] [Initialization] [Get-HardwarePlatform] :: Retrieve hardware platform information.
[06-16-2022 10:53:28.179] [Initialization] [PSAppDeployToolkit] :: Hardware Platform is [Virtual:VMWare]
[06-16-2022 10:53:28.194] [Initialization] [PSAppDeployToolkit] :: PowerShell Host is [ConsoleHost] with version [5.1.19041.1320]
[06-16-2022 10:53:28.194] [Initialization] [PSAppDeployToolkit] :: PowerShell Version is [5.1.19041.1320 x64]
[06-16-2022 10:53:28.210] [Initialization] [PSAppDeployToolkit] :: PowerShell CLR (.NET) version is [4.0.30319.42000]
[06-16-2022 10:53:28.210] [Initialization] [PSAppDeployToolkit] :: *******************************************************************************
[06-16-2022 10:53:28.241] [Initialization] [Get-LoggedOnUser] :: Get session information for all logged on users.
[06-16-2022 10:53:28.523] [Initialization] [Get-RegistryKey] :: Registry key [Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MUI\Settings] does not exist. Return $null.
[06-16-2022 10:53:28.554] [Initialization] [Get-RegistryKey] :: Get registry key [Registry::HKEY_USERS\S-1-5-21-56380247-4053373934-843064899-31350\Software\Policies\Microsoft\Windows\Control Panel\Desktop] value [PreferredUILanguages].
[06-16-2022 10:53:28.569] [Initialization] [Get-RegistryKey] :: Registry key value [Registry::HKEY_USERS\S-1-5-21-56380247-4053373934-843064899-31350\Software\Policies\Microsoft\Windows\Control Panel\Desktop] [PreferredUILanguages] does not exist. Return $null.
[06-16-2022 10:53:28.585] [Initialization] [Get-RegistryKey] :: Get registry key [Registry::HKEY_USERS\S-1-5-21-56380247-4053373934-843064899-31350\Control Panel\Desktop] value [PreferredUILanguages].
[06-16-2022 10:53:28.601] [Initialization] [Get-RegistryKey] :: Registry key value [Registry::HKEY_USERS\S-1-5-21-56380247-4053373934-843064899-31350\Control Panel\Desktop] [PreferredUILanguages] does not exist. Return $null.
[06-16-2022 10:53:28.647] [Initialization] [Get-RegistryKey] :: Get registry key [Registry::HKEY_USERS\S-1-5-21-56380247-4053373934-843064899-31350\Control Panel\Desktop\MuiCached] value [MachinePreferredUILanguages].
[06-16-2022 10:53:28.741] [Initialization] [Get-RegistryKey] :: Get registry key [Registry::HKEY_USERS\S-1-5-21-56380247-4053373934-843064899-31350\Control Panel\Desktop\WindowMetrics] value [AppliedDPI].
[06-16-2022 10:53:28.772] [Initialization] [PSAppDeployToolkit] :: Display session information for all logged on users:


NTAccount           : DOMAIN\stephenjordan
SID                 : S-1-5-21-56380247-4053373934-843064899-31350
UserName            : stephenjordan
DomainName          : DOMAIN
SessionId           : 2
SessionName         : RDP-Tcp#1
ConnectState        : Active
IsCurrentSession    : True
IsConsoleSession    : False
IsActiveUserSession : True
IsUserSession       : True
IsRdpSession        : True
IsLocalAdmin        : False
LogonTime           : 15/06/22 1:25:51 p.m.
IdleTime            : 00:00:00.4843850
DisconnectTime      : 16/06/22 9:24:57 a.m.
ClientName          : 5300-2WB4PW2
ClientProtocolType  : RDP
ClientDirectory     : C:\Windows\System32\mstscax.dll
ClientBuildNumber   : 19041




[06-16-2022 10:53:28.772] [Initialization] [PSAppDeployToolkit] :: The following users are logged on to the system: [DOMAIN\stephenjordan].
[06-16-2022 10:53:28.788] [Initialization] [PSAppDeployToolkit] :: Current process is running with user account [DOMAIN\stephenjordan] under logged in user session for [DOMAIN\stephenjordan].
[06-16-2022 10:53:28.788] [Initialization] [PSAppDeployToolkit] :: There is no console user logged in (user with control of physical monitor, keyboard, and mouse).
[06-16-2022 10:53:28.804] [Initialization] [PSAppDeployToolkit] :: The active logged on user is [DOMAIN\stephenjordan].
[06-16-2022 10:53:28.804] [Initialization] [PSAppDeployToolkit] :: The active logged on user [DOMAIN\stephenjordan] has a primary UI language of [EN].
[06-16-2022 10:53:28.819] [Initialization] [PSAppDeployToolkit] :: The following UI messages were imported from the config XML file: [UI_Messages_EN].
[06-16-2022 10:53:28.819] [Initialization] [PSAppDeployToolkit] :: The active logged on user [DOMAIN\stephenjordan] has a DPI scale factor of [100] with DPI pixels [96].
[06-16-2022 10:53:28.835] [Initialization] [PSAppDeployToolkit] :: Unable to load COM Object [Microsoft.SMS.TSEnvironment]. Therefore, script is not currently running from a SCCM Task Sequence.
[06-16-2022 10:53:28.835] [Initialization] [PSAppDeployToolkit] :: Skipping attempt to check for and make the task scheduler services healthy, because the App Deployment Toolkit is not running under the [NT AUTHORITY\SYSTEM] account.
[06-16-2022 10:53:28.835] [Initialization] [PSAppDeployToolkit] :: Session 0 not detected.
[06-16-2022 10:53:28.851] [Initialization] [PSAppDeployToolkit] :: Installation is running in [interactive] mode.
[06-16-2022 10:53:28.851] [Initialization] [PSAppDeployToolkit] :: Deployment type is [Installation].
[06-16-2022 10:53:28.866] [Initialization] [PSAppDeployToolkit] :: Discovered Zero-Config MSI installation file [Y:\Applications\FortiClient\6.4.8\PSADTV6\Toolkit\Files\FortiClient.msi].
[06-16-2022 10:53:28.960] [Pre-Installation] [Get-RunningProcesses] :: Check for running applications: [File_av_task,File_certutil,File_EPCUserAvatar,File_fcappdb,File_fcaptmon,File_FCAuth,File_FCCOMInt,File_FCConfig,File_FCDBLog,File_fcmonitor,File_FCSetupExe,File_FctSecSvr,File_FCVbltScan,File_FCWsc,File_FCWscD72,File_fmon3,File_FortiAvatar,File_FortiClient,File_FortiClientConsole,File_FortiClientSecurity,File_FortiClient_Diagnostic_Tool,File_FortiElevate,File_FortiESNAC,File_fortifws,File_FortiGuardAgent,File_FortiProxy,File_FortiScand,File_FortiSettings,File_FortiTray,File_FortiUSBmon,File_FortiVPNSt,File_FortiWF,File_FSSOMA,File_ipsec,File_scheduler,File_submitv,File_update_task,File_vcm2,File_vpcd,FortiSSLVPNdaemon,FortiSSLVPNsys]
[06-16-2022 10:53:29.085] [Pre-Installation] [Get-RunningProcesses] :: The following processes are running: [FortiSSLVPNdaemon].
[06-16-2022 10:53:29.147] [Pre-Installation] [Show-WelcomePrompt] :: Prompt user to close application(s) [FortiClient SSLVPN daemon]...
[06-16-2022 10:53:31.272] [Pre-Installation] [Show-WelcomePrompt] :: The running processes have changed. Updating the apps to close: [FortiClient SSLVPN daemon]...

I ended up using

which must have eliminated some user input errors.

would be great if it had more features to really tie in with PSADT