V4.1.7 - Uninstalling an msi based app with an msp update applied

Hi,

I have been trying out the install and uninstall of Esri's ArcGIS Pro (some of our users require this for geo mapping).

I am using PSADT 4.1.7 and deploying the app as SYSTEM from Intune and have succeeded in installing both the MSI installer for v3.6.0 (~3.2GB) and apply 3.6 Patch 1 (aka 3.6.1) which comes as an MSP patch (137MB).

Now comes the tricky bit...
I would like to include the PSADT commands to correctly uninstall the product, but so far I have been unable to get this to work.
When The uninstall is triggered, the logfile "Esri_ArcGISPro_3.6.1_x64_EN_01_PSAppDeployToolkit_Uninstall.log" is created, but when it gets as far as running the uninstall command the MSI (secondary) log "ArcGISPro_3.6.59527_Uninstall.log" is not generated and the uninstall phase just stalls.

Here is the contents of the PSADT log from where the [Pre-Uninstall] section commences:

<![LOG[[Pre-Uninstall] :: Checking for running processes: ['ArcGISPro', 'ArcGISCleanup']]LOG]!><time="17:22:17.177+0" date="1-09-2026" component="Get-ADTRunningProcesses" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Pre-Uninstall] :: The following processes are running: ['ArcGISCleanup', 'ArcGISPro'].]LOG]!><time="17:22:17.200+0" date="1-09-2026" component="Get-ADTRunningProcesses" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Pre-Uninstall] :: Instantiating user client/server process.]LOG]!><time="17:22:17.259+0" date="1-09-2026" component="Invoke-ADTClientServerOperation" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Pre-Uninstall] :: Prompting the user to close application(s) ['Esri ArcGIS Clean up', 'Esri ArcGIS Pro']...]LOG]!><time="17:22:17.979+0" date="1-09-2026" component="Show-ADTInstallationWelcome" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="D:\a\PSAppDeployToolkit\PSAppDeployToolkit\src\PSADT\PSADT.ClientServer.Server\ServerInstance.cs">
<![LOG[[Pre-Uninstall] :: Close applications countdown has [00:01:00] seconds remaining.]LOG]!><time="17:22:18.000+0" date="1-09-2026" component="Show-ADTInstallationWelcome" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="D:\a\PSAppDeployToolkit\PSAppDeployToolkit\src\PSADT\PSADT.ClientServer.Server\ServerInstance.cs">
<![LOG[[Pre-Uninstall] :: Previously detected running processes are no longer running.]LOG]!><time="17:22:25.128+0" date="1-09-2026" component="Show-ADTInstallationWelcome" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="D:\a\PSAppDeployToolkit\PSAppDeployToolkit\src\PSADT\PSADT.ClientServer.Server\ServerInstance.cs">
<![LOG[[Pre-Uninstall] :: The user selected to continue...]LOG]!><time="17:22:36.534+0" date="1-09-2026" component="Show-ADTInstallationWelcome" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Pre-Uninstall] :: Creating the progress dialog in a separate thread with [StatusMessage: Uninstalling Any Existing Version of Esri ArcGIS Pro. Please Wait...], [StatusMessageDetail: This window will close automatically when the uninstallation is complete.].]LOG]!><time="17:22:37.186+0" date="1-09-2026" component="Show-ADTInstallationProgress" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Getting information for installed applications...]LOG]!><time="17:22:37.394+0" date="1-09-2026" component="Get-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Found installed application [ArcGIS Pro 3.6.59527].]LOG]!><time="17:22:37.663+0" date="1-09-2026" component="Get-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Found installed application [ArcGIS Pro 3.6 Patch 1 (3.6.1)].]LOG]!><time="17:22:37.684+0" date="1-09-2026" component="Get-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Found installed application [ArcGIS Pro 3.6.59527].]LOG]!><time="17:22:37.739+0" date="1-09-2026" component="Get-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Getting information for installed applications...]LOG]!><time="17:22:37.826+0" date="1-09-2026" component="Get-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Found installed application [ArcGIS Pro 3.6.59527].]LOG]!><time="17:22:37.849+0" date="1-09-2026" component="Get-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Found installed application [ArcGIS Pro 3.6 Patch 1 (3.6.1)].]LOG]!><time="17:22:37.854+0" date="1-09-2026" component="Get-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Found installed application [ArcGIS Pro 3.6.59527].]LOG]!><time="17:22:37.864+0" date="1-09-2026" component="Get-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: No ProductCode found for MSI application [ArcGIS Pro 3.6.59527]. Skipping removal.]LOG]!><time="17:22:37.923+0" date="1-09-2026" component="Uninstall-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: No ProductCode found for MSI application [ArcGIS Pro 3.6 Patch 1 (3.6.1) ArcGIS Pro 3.6 Patch 1 (3.6.1)]. Skipping removal.]LOG]!><time="17:22:37.927+0" date="1-09-2026" component="Uninstall-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Removing MSI application [ArcGIS Pro 3.6.59527] with ProductCode [{302ef432-616c-4281-94f6-d53e290d0f77}].]LOG]!><time="17:22:37.934+0" date="1-09-2026" component="Uninstall-ADTApplication" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Executing MSI action [Uninstall]...]LOG]!><time="17:22:37.979+0" date="1-09-2026" component="Start-ADTMsiProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Preparing to execute process [C:\Windows\system32\msiexec.exe]...]LOG]!><time="17:22:38.239+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Checking to see if mutex [Global\_MSIExecute] is available. Wait up to [10 minute(s)] for the mutex to become available.]LOG]!><time="17:22:38.267+0" date="1-09-2026" component="Test-ADTMutexAvailability" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Mutex [Global\_MSIExecute] is available for an exclusive lock.]LOG]!><time="17:22:38.287+0" date="1-09-2026" component="Test-ADTMutexAvailability" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: CreateNoWindow not specified, StdOut/StdErr streams will not be available.]LOG]!><time="17:22:39.339+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Working Directory is [C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Files].]LOG]!><time="17:22:39.349+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Executing ["C:\Windows\system32\msiexec.exe" /x {302ef432-616c-4281-94f6-d53e290d0f77} /allusers /S /L*V C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\ArcGISPro_3.6.59527_Uninstall.log]...]LOG]!><time="17:22:39.369+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Executed ["C:\Windows\system32\msiexec.exe" /x {302ef432-616c-4281-94f6-d53e290d0f77} /allusers /S /L*V C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\ArcGISPro_3.6.59527_Uninstall.log], awaiting completion...]LOG]!><time="17:22:39.449+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Execution failed with exit code [1]: Installation Package]LOG]!><time="19:21:51.703+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="3" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: StdOut Output from Execution: N/A]LOG]!><time="19:21:51.724+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: StdErr Output from Execution: N/A]LOG]!><time="19:21:51.729+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Interleaved Output from Execution: N/A]LOG]!><time="19:21:51.733+0" date="1-09-2026" component="Start-ADTProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: Execution failed with exit code [1]: Installation Package
Error Record:
-------------
 
Message               : Execution failed with exit code [1]: Installation Package
 
FullyQualifiedErrorId : ProcessExitCodeError,Uninstall-ADTApplication
ScriptStackTrace      : at Start-ADTProcess<Process>, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1: line 22393
                        at Start-ADTMsiProcess<Process>, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1: line 20807
                        at Uninstall-ADTApplication<Process>, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1: line 24901
                        at Uninstall-ADTDeployment, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Invoke-AppDeployToolkit.ps1: line 225
                        at <ScriptBlock>, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Invoke-AppDeployToolkit.ps1: line 322
                        at <ScriptBlock>, <No file>: line 1
 
TargetObject          : Process     : System.Diagnostics.Process (msiexec)
                        LaunchInfo  : ProcessLaunchInfo { FilePath = C:\Windows\system32\msiexec.exe, ArgumentList = System.Collections.ObjectModel.ReadOnlyCollection`1[System.String], WorkingDirectory = C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Files, RunAsActiveUser = , UseLinkedAdminToken = False, UseHighestAvailableToken = False, InheritEnvironmentVariables = False, ExpandEnvironmentVariables = False, DenyUserTermination = False, InheritHandles = False, UseUnelevatedToken = False, UseShellExecute = False, Verb = , CreateNoWindow = False, WaitForChildProcesses = False, KillChildProcessesWithParent = False, StreamEncoding = System.Text.SBCSCodePageEncoding, WindowStyle = , ProcessWindowStyle = , PriorityClass = , CancellationToken = , NoTerminateOnTimeout = False }
                        CommandLine : "C:\Windows\system32\msiexec.exe" /x {302ef432-616c-4281-94f6-d53e290d0f77} /allusers /S /L*V C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\ArcGISPro_3.6.59527_Uninstall.log
                        ExitCode    : 1
                        StdOut      : {}
                        StdErr      : {}
                        Interleaved : {}
 
PositionMessage       : At C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Invoke-AppDeployToolkit.ps1:225 char:9
                        +         Uninstall-ADTApplication -Name 'ArcGIS Pro' -ApplicationType  ...
                        +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
]LOG]!><time="19:21:52.036+0" date="1-09-2026" component="Uninstall-ADTApplication" context="NT AUTHORITY\SYSTEM" type="3" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Uninstall] :: An unhandled error within [Invoke-AppDeployToolkit.ps1] has occurred.
Error Record:
-------------
 
Message               : Execution failed with exit code [1]: Installation Package
 
FullyQualifiedErrorId : ProcessExitCodeError,Uninstall-ADTApplication
ScriptStackTrace      : at Start-ADTProcess<Process>, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1: line 22393
                        at Start-ADTMsiProcess<Process>, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1: line 20807
                        at Uninstall-ADTApplication<Process>, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1: line 24901
                        at Uninstall-ADTDeployment, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Invoke-AppDeployToolkit.ps1: line 225
                        at <ScriptBlock>, C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Invoke-AppDeployToolkit.ps1: line 322
                        at <ScriptBlock>, <No file>: line 1
 
TargetObject          : Process     : System.Diagnostics.Process (msiexec)
                        LaunchInfo  : ProcessLaunchInfo { FilePath = C:\Windows\system32\msiexec.exe, ArgumentList = System.Collections.ObjectModel.ReadOnlyCollection`1[System.String], WorkingDirectory = C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Files, RunAsActiveUser = , UseLinkedAdminToken = False, UseHighestAvailableToken = False, InheritEnvironmentVariables = False, ExpandEnvironmentVariables = False, DenyUserTermination = False, InheritHandles = False, UseUnelevatedToken = False, UseShellExecute = False, Verb = , CreateNoWindow = False, WaitForChildProcesses = False, KillChildProcessesWithParent = False, StreamEncoding = System.Text.SBCSCodePageEncoding, WindowStyle = , ProcessWindowStyle = , PriorityClass = , CancellationToken = , NoTerminateOnTimeout = False }
                        CommandLine : "C:\Windows\system32\msiexec.exe" /x {302ef432-616c-4281-94f6-d53e290d0f77} /allusers /S /L*V C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\ArcGISPro_3.6.59527_Uninstall.log
                        ExitCode    : 1
                        StdOut      : {}
                        StdErr      : {}
                        Interleaved : {}
 
PositionMessage       : At C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Invoke-AppDeployToolkit.ps1:225 char:9
                        +         Uninstall-ADTApplication -Name 'ArcGIS Pro' -ApplicationType  ...
                        +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
]LOG]!><time="19:21:52.071+0" date="1-09-2026" component="Invoke-AppDeployToolkit.ps1" context="NT AUTHORITY\SYSTEM" type="3" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\Invoke-AppDeployToolkit.ps1">
<![LOG[[Finalization] :: Closing the installation progress dialog.]LOG]!><time="19:21:52.298+0" date="1-09-2026" component="Close-ADTInstallationProgress" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Finalization] :: Closing user client/server process.]LOG]!><time="19:21:52.404+0" date="1-09-2026" component="Close-ADTClientServerProcess" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[[Finalization] :: [Esri_ArcGISPro_3.6.1_x64_EN_01] uninstall completed in [7176.3909088] seconds with exit code [1].]LOG]!><time="19:21:52.774+0" date="1-09-2026" component="Close-ADTSession" context="NT AUTHORITY\SYSTEM" type="3" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">
<![LOG[-------------------------------------------------------------------------------]LOG]!><time="19:21:52.778+0" date="1-09-2026" component="Close-ADTSession" context="NT AUTHORITY\SYSTEM" type="1" thread="32240" file="C:\Windows\IMECache\d9f94966-6e5f-4798-8d8e-f917fa6236d7_4\PSAppDeployToolkit\PSAppDeployToolkit.psm1">

N.B. The failure is because I forcably killed the msiexec.exe process after seeing the uninstall was not happening.
As can be seen in the log, it discovers 3 apps that match 'ArcGIS Pro'
When I run this Get-Uninstaller function (from: Cheatsheet for PSAppDeployToolkit – SIMSEN blog) on the test machine it finds the following:

Get-Uninstaller ArcGis

PSPath               : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
                       \Uninstall\ArcGISPro
DisplayVersion       : 3.6.59527
DisplayName          : ArcGIS Pro
UninstallString      : msiexec.exe /x {302EF432-616C-4281-94F6-D53E290D0F77}
InstallSource        :
InstallLocation      : C:\Program Files\ArcGIS\Pro\
QuietUninstallString :
InstallDate          :

PSPath               : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
                       \Uninstall\ArcGISPro Update361
DisplayVersion       : ArcGIS Pro 3.6 Patch 1 (3.6.1)
DisplayName          : ArcGIS Pro 3.6 Patch 1 (3.6.1)
UninstallString      : msiexec.exe /i {302EF432-616C-4281-94F6-D53E290D0F77}
                       MSIPATCHREMOVE={C5BC3276-329B-49DA-BFE6-C353D5ECA2AF} /qb
InstallSource        :
InstallLocation      :
QuietUninstallString :
InstallDate          :

PSPath               : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
                       \Uninstall\{302EF432-616C-4281-94F6-D53E290D0F77}
DisplayVersion       : 3.6.59527
DisplayName          : ArcGIS Pro
UninstallString      : MsiExec.exe /I{302EF432-616C-4281-94F6-D53E290D0F77}
InstallSource        : C:\Windows\IMECache\812e4a22-dfc5-4974-89a4-030afffaaf78_1\Files\
InstallLocation      : C:\Program Files\ArcGIS\Pro\
QuietUninstallString :
InstallDate          : 20260109

The second match contains the patch, but I notice the uninstall command (a single line) is:

msiexec.exe /i {302EF432-616C-4281-94F6-D53E290D0F77} MSIPATCHREMOVE={C5BC3276-329B-49DA-BFE6-C353D5ECA2AF} /qb

Here is the contents of the Uninstall-ADTDeployment function in my current Invoke-AppDeployToolkit.ps1:

function Uninstall-ADTDeployment
{
    [CmdletBinding()]
    param
    (
    )

    ##================================================
    ## MARK: Pre-Uninstall
    ##================================================
    $adtSession.InstallPhase = "Pre-$($adtSession.DeploymentType)"

    ## If there are processes to close, show Welcome Message, close ArcGIS Pro with a 60 second countdown before automatically closing.
    if ($adtSession.AppProcessesToClose.Count -gt 0)
    {
        Show-ADTInstallationWelcome -CloseProcesses $adtSession.AppProcessesToClose -CloseProcessesCountdown 60
    }

    ## Show Progress Message (with a message to indicate the application is being uninstalled).
    Show-ADTInstallationProgress -StatusMessage 'Uninstalling Any Existing Version of Esri ArcGIS Pro. Please Wait...'
  
    ##================================================
    ## MARK: Uninstall
    ##================================================
    $adtSession.InstallPhase = $adtSession.DeploymentType

    ## Uninstall Any Existing Version of ArcGIS Pro (EXE)
    $appName = Get-ADTApplication -Name 'ArcGIS Pro' -ApplicationType 'MSI'

    if ($appName.Count -gt 0) {
        Uninstall-ADTApplication -Name 'ArcGIS Pro' -ApplicationType 'MSI' -IncludeUpdatesandHotfixes -ArgumentList '/allusers /S' -WaitForChildProcesses
        Start-Sleep -Seconds 5
    }
    else {
        Write-ADTLogEntry -Message "Esri ArcGIS Pro application was not found." -Severity 1
    }
    
    ##================================================
    ## MARK: Post-Uninstallation
    ##================================================
    $adtSession.InstallPhase = "Post-$($adtSession.DeploymentType)"

    ## <Perform Post-Uninstallation tasks here>
    # Remove 'Tag' from the registry (used for App Detection)
    Remove-ADTRegistryKey -Key 'HKEY_LOCAL_MACHINE\Software\COMPANYNAME\ArcGIS Pro' -Recurse
}

Anyone have any suggestions how I uninstall this product, including the patch?

I nearly forgot to mention, Esri have a handy silent install guide for ArcGIS Pro here:

At my shop we almost exclusively use the MSI's PRODUCTCODE with Start-ADTMsiProcess to uninstall.

If you look at your 3 ARP entries, All of them have the same PRODUCTCODE: {302EF432-616C-4281-94F6-D53E290D0F77}

UPDATE: When you patch an MSI, The PRODUCTCODE stays the same. You can even install an MSP with an MSI in one command line. The fact you had a separate ARP entry just for the MSP patch was a curtesy on ESRI's part but I think it added more confusion.

BTW: ESri is known to be hard to uninstall. 15+years ago, we couldn't upgrade after a "successful" uninstall of the old version because too much of the old version was still installed!
It took me 2 week to build a cleanup script.

Thank You @That-Annoying-Guy
I think I'll try a manual command line uninstall to see what works and then rework that into my PSADT code, I'll try and remember to update here when I have a working solution.

Now I feel a right muppet! :rofl:

As my previous Uninstall command was not working:

[Uninstall] :: Execution failed with exit code [1639]: Invalid command line argument. Consult the Windows Installer SDK for detailed command line help.	Start-ADTProcess	12/01/2026 16:53:22	31088 (0x7970)

Previous command:

Uninstall-ADTApplication -Name 'ArcGIS Pro' -ApplicationType 'MSI' -IncludeUpdatesandHotfixes -ArgumentList '/allusers /S' -WaitForChildProcesses

I re-read the Silent uninstall instructions linked above, and changed my command to what it should be (removed /allusers /S and replaced with /QB):

Uninstall-ADTApplication -Name 'ArcGIS Pro' -ApplicationType 'MSI' -IncludeUpdatesandHotfixes -ArgumentList '/QB' -WaitForChildProcesses

.... it now works:
Get-Uninstaller output:

Get-Uninstaller ArcGis

:man_facepalming:
I suppose I should check if the /allusers /S are actually required and if so, parse it via the -AdditionalArgumentList switch

I set ALLUSER=0 right in the config.psd1 so I don't get burned like this. 99% of my packages are for all users on the box anyhow.

Thanks again for your suggestions, I've been playing with the ALLUSERS=1 setting, but rather interestingly, I have found that if I have the ALLUSERS=1 set in the MSI uninstall parameters section of the customisable .\Config\Config.psd1:

        # MSI uninstall parameters.
        UninstallParams = 'REBOOT=ReallySuppress /QN ALLUSERS=1'

It appears to have no effect during the uninstall - from the interactive log:

[2026-01-13T09:35:55.8868679+00:00] [Uninstall] [Start-ADTProcess] [Info] :: Executing ["C:\Windows\system32\msiexec.exe" /x {302ef432-616c-4281-94f6-d53e290d0f77} /QB /L*V C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\ArcGISPro_3.6.59527_Uninstall.log]...
[2026-01-13T09:35:55.9125010+00:00] [Uninstall] [Start-ADTProcess] [Info] :: Executed ["C:\Windows\system32\msiexec.exe" /x {302ef432-616c-4281-94f6-d53e290d0f77} /QB /L*V C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\ArcGISPro_3.6.59527_Uninstall.log], awaiting completion...

Whereas if I add it via the -AdditionalArgumentList switch on the command line, as follows:

Uninstall-ADTApplication -Name 'ArcGIS Pro' -ApplicationType 'MSI' -ArgumentList '/QB' -AdditionalArgumentList 'ALLUSERS=1' -WaitForChildProcesses

It does appear to have an effect - from the interactive log:

[2026-01-13T09:38:47.9749324+00:00] [Uninstall] [Start-ADTProcess] [Info] :: Executing ["C:\Windows\system32\msiexec.exe" /x {302ef432-616c-4281-94f6-d53e290d0f77} /QB ALLUSERS=1 /L*V C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\ArcGISPro_3.6.59527_Uninstall.log]...
[2026-01-13T09:38:48.0219185+00:00] [Uninstall] [Start-ADTProcess] [Info] :: Executed ["C:\Windows\system32\msiexec.exe" /x {302ef432-616c-4281-94f6-d53e290d0f77} /QB ALLUSERS=1 /L*V C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\ArcGISPro_3.6.59527_Uninstall.log], awaiting completion...

:thinking: I am unsure if this is intentional PSADT behavior or if it is a bug
Anyhow, I do at least now have a repeatable method to ensure that when this app is installed for All Users, it can subsequently be removed from All users