From 73a7e7cb8fdedf339fe6da4ea0b2c8fb9a9b61e7 Mon Sep 17 00:00:00 2001 From: David Yoder Date: Fri, 29 Oct 2021 12:15:22 -0400 Subject: [PATCH] update --- Uninstall-MSI.ps1 | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/Uninstall-MSI.ps1 b/Uninstall-MSI.ps1 index cc0ea72..f9be12f 100644 --- a/Uninstall-MSI.ps1 +++ b/Uninstall-MSI.ps1 @@ -4,20 +4,17 @@ $UNINSTALL_KEYS = Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall $UNINSTALL_KEYS += Get-ChildItem -Path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall -Foreach ( $reg in $UNINSTALL_KEYS ) -{ - ## Get each uninstall key +Foreach ( $reg in $UNINSTALL_KEYS ) { + ## Get the uninstall key $REG_PROPERTY = Get-ItemProperty -Path $reg.PSPath ## Get the display name of the app $DISPLAY_NAME = $REG_PROPERTY.DisplayName ## Make sure the DisplayName matches what we're looking for - If ( $DISPLAY_NAME -ilike $APP_NAME ) - { + If ( $DISPLAY_NAME -ilike $APP_NAME ) { ## Make sure the software was installed using an MSI - If ( $REG_PROPERTY.WindowsInstaller -eq 1 ) - { + If ( $REG_PROPERTY.WindowsInstaller -eq 1 ) { ## Get the install location If ( $REG_PROPERTY.InstallLocation ) { $INSTALL_LOCATION = $REG_PROPERTY.InstallLocation } @@ -28,17 +25,16 @@ Foreach ( $reg in $UNINSTALL_KEYS ) ElseIf ( $REG_PROPERTY.ModifyPath ) { $PRODUCT_CODE = $REG_PROPERTY.ModifyPath.Replace('MsiExec.exe /X','') } ## Uninstall the app - If ( $PRODUCT_CODE ) - { - Write-Output "Uninstalling ${DISPLAY_NAME} ${PRODUCT_CODE}" - #Start-Process -FilePath "msiexec.exe" -ArgumentList "/X${PRODUCT_CODE} /qn /norestart" -Wait + If ( $PRODUCT_CODE ) { + LogMsg "Uninstalling ${DISPLAY_NAME} ${PRODUCT_CODE}" + Try { Start-Process -FilePath "msiexec.exe" -ArgumentList "/X${PRODUCT_CODE} /qn /norestart" -Wait } + Catch { LogErr $_.Exception.Message } - If ( $INSTALL_LOCATION ) - { - If ( Test-Path $INSTALL_LOCATION ) - { - Write-Output "Deleting install directory" - #Remove-Item $INSTALL_LOCATION -Recurse -Force + If ( $INSTALL_LOCATION ) { + If ( Test-Path $INSTALL_LOCATION ) { + LogMsg "Deleting install directory" + Try { Remove-Item $INSTALL_LOCATION -Recurse -Force } + Catch { LogErr $_.Exception.Message } } } }