Files

73 lines
2.5 KiB
PowerShell

<#
Author: Gabe Kerntke
Date: 12-17-2024
.Synopsis
.Modified
2024-12-17 (GabeK) - Original script created
#>
# Variables #
# Functions #
Function Stop-PuTTYProcess {
$puttyProcess = Get-Process -Name "putty" -ErrorAction SilentlyContinue
if ($puttyProcess) {
Write-Output "Stopping PuTTY process..."
Stop-Process -Name "putty" -Force
}
}
Function Remove-PuTTY {
param (
[string]$path
)
$paths = "$env:ProgramFiles\PuTTY", "$env:ProgramFiles(x86)\PuTTY"
foreach ($path in $paths) {
if (Test-Path "$path\unins000.exe") {
Write-Output "Deleting $path\putty.exe..."
Remove-Item -Force "$path\putty.exe"
Write-Output "Uninstalling PuTTY EXE Found in $path ..."
Start-Process -FilePath "$path\unins000.exe" -ArgumentList "/SILENT" -Wait
}
elseif (Test-Path "$path\putty.exe") {
Write-Output "Deleting $path\putty.exe..."
Remove-Item -Force "$path\putty.exe"
}
}
}
Function Remove-PuttyMSI {
$AppName = "PuTTY"
#-------------------------------------------------------------------------------
Write-Output "Checking if there are any msi-based installations for $AppName..."
#-------------------------------------------------------------------------------
FOREACH ( $Architecture in "SOFTWARE", "SOFTWARE\Wow6432Node" ) {
$UninstallKeys = "HKLM:\$Architecture\Microsoft\Windows\CurrentVersion\Uninstall"
IF (Test-path $UninstallKeys) {
Write-Output "Checking for $AppName installation in $UninstallKeys"
$GUID = Get-ItemProperty -Path "$UninstallKeys\*" |
Where-Object -FilterScript { $_.DisplayName -like "$AppName*" } |
Select-Object PSChildName -ExpandProperty PSChildName
IF ( $GUID ) {
$GUID | ForEach-Object {
Write-Output "Uninstalling: $(( Get-ItemProperty "$UninstallKeys\$_" ).DisplayName) "
Start-Process -Wait -FilePath "MsiExec.exe" -ArgumentList "/X$_ /qn /norestart"
}
}
ELSE {
Write-Output "$AppName installation not found in $UninstallKeys"
}
}
}
}
# Start Script #
# Stop PuTTY process if running
Stop-PuTTYProcess
# Check and delete PuTTY installations
Write-Output "Checking for PuTTY EXE Installations..."
Remove-PuTTY
Write-Output "Checking for PuTTY MSI Installations..."
Remove-PuTTYMSI
# End Script #