From 2cc7012b98c15057952133063278cc5f211d5170 Mon Sep 17 00:00:00 2001 From: Andreas Lindemark <andreas.lindemark@liu.se> Date: Wed, 2 Apr 2025 18:33:15 +0200 Subject: [PATCH] Moved this script to an other folder dedicated to ZabbixAgent --- Windows/Chocolatey/RemoveZabbix.ps1 | 178 ---------------------------- 1 file changed, 178 deletions(-) delete mode 100644 Windows/Chocolatey/RemoveZabbix.ps1 diff --git a/Windows/Chocolatey/RemoveZabbix.ps1 b/Windows/Chocolatey/RemoveZabbix.ps1 deleted file mode 100644 index c05e2d3..0000000 --- a/Windows/Chocolatey/RemoveZabbix.ps1 +++ /dev/null @@ -1,178 +0,0 @@ -<#======================================================= - Remove Zabbix Agent and Zabbix Agent 2 and clean up -=======================================================#> - -# Start the Script -Write-Host "Starting script execution..." - -# Determine the name of the currently executing script without the extension -$scriptName = [System.IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) - -# Set the log file path based on the script name -$transcriptPath = "C:\Install Logs\$scriptName.log" - -# Start Transcript -Start-Transcript -Path $transcriptPath - -# Initialize a flag to track if any uninstallation or removal has occurred -$changesMade = $false - -# Function to check if a Chocolatey package is installed -function Test-PackageInstalled { - param ( - [string]$PackageName - ) - $installedPackages = choco list --exact $PackageName - return $installedPackages -match "^$PackageName" -} - -# Function to check if a service exists -function Test-Service { - param ( - [string]$ServiceName - ) - return $null -ne (Get-Service -Name $ServiceName -ErrorAction SilentlyContinue) -} - -# Function to stop a service if it exists -function Stop-ServiceIfExists { - param ( - [string]$ServiceName, - [ref]$changesMade - ) - if (Test-Service -ServiceName $ServiceName) { - Write-Output "Stopping service: $ServiceName" - Stop-Service -Name $ServiceName -Force -ErrorAction SilentlyContinue - $changesMade.Value = $true - } else { - Write-Output "Service $ServiceName not found. No action taken." - } -} - -# Function to uninstall a Chocolatey package if it exists -function Uninstall-ChocoPackageIfExists { - param ( - [string]$PackageName, - [ref]$changesMade - ) - if (Test-PackageInstalled -PackageName $PackageName) { - Write-Output "Uninstalling package: $PackageName" - choco uninstall -y $PackageName - $changesMade.Value = $true - } else { - Write-Output "Package $PackageName not found. No action taken." - } -} - -# Function to remove remaining files and registry entries -function Remove-ZabbixAgentRemnants { - param ( - [string]$AgentName, - [string]$InstallPath, - [string]$ServiceName, - [ref]$changesMade - ) - - # Stop and remove the service - Stop-ServiceIfExists -ServiceName $ServiceName -changesMade ([ref]$changesMade) - if (Test-Service -ServiceName $ServiceName) { - Write-Output "Removing service: $ServiceName" - sc.exe delete $ServiceName - $changesMade.Value = $true - } - - # Remove installation directory - if (Test-Path -Path $InstallPath) { - Write-Output "Removing directory: $InstallPath" - Remove-Item -Path $InstallPath -Recurse -Force - $changesMade.Value = $true - } - - # Remove registry entries - $registryPaths = @( - "HKLM:\SOFTWARE\$AgentName", - "HKLM:\SYSTEM\CurrentControlSet\Services\$ServiceName", - "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Application\$AgentName" - ) - foreach ($path in $registryPaths) { - if (Test-Path -Path $path) { - Write-Output "Removing registry path: $path" - Remove-Item -Path $path -Recurse -Force - $changesMade.Value = $true - } - } -} - -# Function to search for Zabbix files in specified paths -function Search-ZabbixFiles { - param ( - [string]$searchPath, - [string]$searchPattern - ) - Write-Output "Searching for Zabbix files in $searchPath..." - $files = Get-ChildItem -Path $searchPath -Recurse -Filter $searchPattern -ErrorAction SilentlyContinue - foreach ($file in $files) { - Write-Output "Found file: $($file.FullName)" - } -} - -# Remove Zabbix Agent -Write-Output "Stop Zabbix Agent service and uninstall." -Stop-ServiceIfExists -ServiceName "Zabbix Agent" -changesMade ([ref]$changesMade) -Uninstall-ChocoPackageIfExists -PackageName "zabbix-agent" -changesMade ([ref]$changesMade) -Remove-ZabbixAgentRemnants -AgentName "Zabbix Agent" -InstallPath "C:\Program Files\Zabbix Agent" -ServiceName "Zabbix Agent" -changesMade ([ref]$changesMade) - -# Remove Zabbix Agent 2 -Write-Output "Stop Zabbix Agent 2 service and uninstall." -Stop-ServiceIfExists -ServiceName "Zabbix Agent 2" -changesMade ([ref]$changesMade) -Uninstall-ChocoPackageIfExists -PackageName "zabbix-agent2" -changesMade ([ref]$changesMade) -Remove-ZabbixAgentRemnants -AgentName "Zabbix Agent 2" -InstallPath "C:\Program Files\Zabbix Agent 2" -ServiceName "Zabbix Agent 2" -changesMade ([ref]$changesMade) - -# Search for Zabbix files in specified paths -Search-ZabbixFiles -searchPath "C:\ProgramData\chocolatey\.chocolatey" -searchPattern "*zabbix*" -Search-ZabbixFiles -searchPath "C:\ProgramData\chocolatey" -searchPattern "*zabbix*" -Search-ZabbixFiles -searchPath "C:\ProgramData\ChocolateyHttpCache" -searchPattern "*zabbix*" - -# Inform that a reboot should be done if any changes were made -if ($changesMade) { - Write-Host "" - Write-Host "A reboot should be done before reinstalling any of the Zabbix agents." -ForegroundColor Yellow - Write-Host "" - - # Windows GUI popup to remind about reboot - Add-Type -AssemblyName System.Windows.Forms - $popup = New-Object System.Windows.Forms.Form - $popup.Text = "Reboot Reminder" - $popup.Size = New-Object System.Drawing.Size(300,150) - $popup.StartPosition = "CenterScreen" - - $label = New-Object System.Windows.Forms.Label - $label.Text = "A reboot should be done before reinstalling any of the Zabbix agents." - $label.AutoSize = $true - $label.Location = New-Object System.Drawing.Point(10,20) - $popup.Controls.Add($label) - - $rebootButton = New-Object System.Windows.Forms.Button - $rebootButton.Text = "Reboot" - $rebootButton.Location = New-Object System.Drawing.Point(50,70) - $rebootButton.Add_Click({ - Restart-Computer -Force - }) - $popup.Controls.Add($rebootButton) - - $cancelButton = New-Object System.Windows.Forms.Button - $cancelButton.Text = "Cancel" - $cancelButton.Location = New-Object System.Drawing.Point(150,70) - $cancelButton.Add_Click({ - $popup.Close() - }) - $popup.Controls.Add($cancelButton) - - $popup.ShowDialog() -} - -# Stop Transcript -Write-Host "Stopping transcript..." -Stop-Transcript - -Write-Host "Script execution completed." \ No newline at end of file -- GitLab