From 19463ed68ebddee2fff32638cc88f0ce4032a515 Mon Sep 17 00:00:00 2001 From: Gabe Date: Wed, 6 Aug 2025 23:43:48 +0000 Subject: [PATCH] Upload files to "App Uninstall Scripts" --- .../App - GoToMeeting - Uninstall.ps1 | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 App Uninstall Scripts/App - GoToMeeting - Uninstall.ps1 diff --git a/App Uninstall Scripts/App - GoToMeeting - Uninstall.ps1 b/App Uninstall Scripts/App - GoToMeeting - Uninstall.ps1 new file mode 100644 index 0000000..b1a59a9 --- /dev/null +++ b/App Uninstall Scripts/App - GoToMeeting - Uninstall.ps1 @@ -0,0 +1,114 @@ +<# +Author: Gabe Kerntke +Date: 05-30-2024 + +.Synopsis +Script checks to see if GoToMeeting is installed, if installed it will uninstall + +.Modified +2024-02-21 (GabeK) - Original script created + +#> + +###################### +### Variables ### +###################### +$Name = "GoToMeeting" + +###################### +### Functions ### +###################### + +#Function checks for 32 or 64 bit processor and then pulls list of applications accordingly +Function Get-Software ($CPU = $ENV:PROCESSOR_ARCHITECTURE) { + If ($CPU -eq 'AMD64') { + $64bit = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* + $32bit = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* + $32bit + $64bit + } + Else { Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* } +} + +#Function to uninstall via WMIobject (control panel) +Function UninstallGoToMeeting1 { + $Uninstall = Get-WmiObject Win32_Product -filter "name like '%$Name%'" | ForEach-Object { $_.Uninstall() } + $Value = $Uninstall | Select-Object -ExpandProperty ReturnValue + + If ($Value -eq "0") { + Write-Host "$Name uninstalled successfully" + UninstallGoToMeeting5 + } + else { + UninstallGoToMeeting2 + } +} + +Function UninstallGoToMeeting3 { + $UninstallString3 = $Applist | Select-Object -ExpandProperty UninstallString | Where-Object ($_.UninstallString -like "*MsiExec*") + $A = $UninstallString3 -replace "/I", "/X" + $A + " /qn" | cmd + If ($Applist.DisplayName -like "*$Name*") { + UninstallGoToMeeting4 + } + Else { + Write-Host "$Name uninstalled successfully" + } +} +Function UninstallGoToMeeting2 { + $UninstallString2 = $Applist | Select-Object -ExpandProperty UninstallString | Where-Object ($_.UninstallString -like "*C:\*") + $UninstallString2 + " -silent" | cmd + If ($Applist.DisplayName -like "*$Name*") { + UninstallGoToMeeting3 + } + Else { + Write-Host "$Name uninstalled successfully" + } +} + +Function UninstallGoToMeeting4 { + $UninstallString4 = $Applist | Select-Object -ExpandProperty PSPath + $B = $UninstallString4 -replace "Microsoft.PowerShell.Core", "" + $C = $B.Substring(1) + Remove-Item -Path $C -Force -Verbose + + If ($Applist.DisplayName -like "*$Name*") { + Write-Host "$Name uninstall failed" + UninstallGoToMeeting5 + } + Else { + Write-Host "$Name uninstalled successfully" + } +} + +Function UninstallGoToMeeting5 { + New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS + $RegistyPath = Get-ChildItem -Path HKU:\ | Select-Object -ExpandProperty Name + $Registy = $RegistyPath.Substring(10) + + Foreach ($Reg in $Registy) { + Get-ChildItem HKU:$Reg | Where-Object { $_.Name -like "*gotomeeting*" } | Remove-Item -Force -Verbose -Recurse + Get-ChildItem HKU:$Reg | Where-Object { $_.Name -like "*G2M*" } | Remove-Item -Force -Verbose -Recurse + } + DeleteFolder + Write-Host "$Name removed successfully" +} + +Function DeleteFolder { + $Path = "C:\Program Files (x86)\GoToMeeting" + If (Test-Path $Path) { + Remove-Item -Path $Path -Recurse -Force -Verbose + } +} + +###################### +### Script start ### +###################### + +$Applist = Get-Software | Where-Object { $_.DisplayName -like "*$Name*" } +If ($Applist.DisplayName -like "*$Name*") { + UninstallGoToMeeting1 +} +Else { + Write-Host "$Name is not installed" + UninstallGoToMeeting5 +} \ No newline at end of file