Uninstall.ps1


<#PSScriptInfo
 
.VERSION 1.0
 
.GUID 27c80b64-2c07-43ee-ae20-4d94965295eb
 
.AUTHOR dmitry.stadub
 
.COMPANYNAME
 
.COPYRIGHT
 
.TAGS uninstall msiexec
 
.LICENSEURI
 
.PROJECTURI https://github.com/stadub/PowershellScripts
 
.ICONURI
 
.EXTERNALMODULEDEPENDENCIES
 
.REQUIREDSCRIPTS
 
.EXTERNALSCRIPTDEPENDENCIES
 
.RELEASENOTES
 
 
#>
 


<#
.SYNOPSIS
   Uninstall Application
.DESCRIPTION
  Allows to Uninstall Application from system
.EXAMPLE
    Uninstall-Application "Microsoft*4.5*"
.PARAMETER SoftwareName
 Application name(Or application name format)
#>
 


function Uninstall-Application {
param(
  
  [Parameter(Mandatory=$True, ValueFromPipeline=$True,
  ValueFromPipelineByPropertyName=$True, HelpMessage='Enter the Application to uninstall.')]
  [Alias('Application')]
  [string] $SoftwareName

)

$uninstallX86RegPath="HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
$uninstallX64RegPath="HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"

$uninstallString=""

$uninstall32 = gci $(uninstallX64RegPath) | foreach { gp $_.PSPath } | ? { $_ -like $SoftwareName } | select UninstallString
$uninstall64 = gci $(uninstallX86RegPath) | foreach { gp $_.PSPath } | ? { $_ -like $SoftwareName } | select UninstallString

if($uninstall64) {$uninstallString=$uninstall64;}
if($uninstall32) {$uninstallString=$uninstall32;}

if(!$uninstallString) {
    Write-Error "Application was is not found"
}

    
$uninstallString = $uninstallString.UninstallString -Replace "msiexec.exe","" -Replace "/I","" -Replace "/X",""
$uninstallString = $uninstallString.Trim()
Write "Uninstalling..."

start-process "msiexec.exe" -arg "/X $uninstallString /qb" -Wait

}


export-modulemember -function Uninstall-Application