$ErrorActionPreference = 'Stop'; $packageName = 'UrlRewrite' $softwareName = 'IIS URL Rewrite Module 2' $installerType = 'MSI' $silentArgs = '/qn /norestart' $validExitCodes = @(0, 3010, 1605, 1614, 1641) if ($installerType -ne 'MSI') { $validExitCodes = @(0) } $uninstalled = $false $local_key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' $machine_key = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*' $machine_key6432 = 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' $key = Get-ItemProperty -Path @($machine_key6432,$machine_key, $local_key) ` -ErrorAction SilentlyContinue ` | ? { $_.DisplayName -like "$softwareName" } if ($key.Count -eq 1) { $key | % { $file = "$($_.UninstallString)" if ($installerType -eq 'MSI') { $silentArgs = "$($_.PSChildName) $silentArgs" $file = '' } Uninstall-ChocolateyPackage -PackageName $packageName ` -FileType $installerType ` -SilentArgs "$silentArgs" ` -ValidExitCodes $validExitCodes ` -File "$file" } } 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"} }