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