$ErrorActionPreference = 'Stop'; # stop on all errors $packageArgs = @{ packageName = $env:ChocolateyPackageName softwareName = 'Spotube*' fileType = 'exe' validExitCodes= @(0) } [array]$key = Get-UninstallRegistryKey -SoftwareName $packageArgs['softwareName'] if ($key.Count -eq 1) { $key | % { # electron-builder writes UninstallString as "\Uninstall Spotube.exe" /currentuser if ($_.UninstallString -match '^\s*"([^"]+)"\s*(.*)$') { $packageArgs['file'] = $Matches[1] $packageArgs['silentArgs'] = "$($Matches[2]) /S".Trim() } else { $packageArgs['file'] = $_.UninstallString $packageArgs['silentArgs'] = '/S' } Uninstall-ChocolateyPackage @packageArgs } } elseif ($key.Count -eq 0) { Write-Warning "$packageName has already been uninstalled by other means." } elseif ($key.Count -gt 1) { Write-Warning "$($key.Count) matches found!" Write-Warning "To prevent accidental data loss, no programs will be uninstalled." Write-Warning "Please alert package maintainer the following keys were matched:" $key | % {Write-Warning "- $($_.DisplayName)"} }