Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
snippets
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Andreas Lindemark
snippets
Commits
2cc7012b
Commit
2cc7012b
authored
2 months ago
by
Andreas Lindemark
Browse files
Options
Downloads
Patches
Plain Diff
Moved this script to an other folder dedicated to ZabbixAgent
parent
770b2174
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Windows/Chocolatey/RemoveZabbix.ps1
+0
-178
0 additions, 178 deletions
Windows/Chocolatey/RemoveZabbix.ps1
with
0 additions
and
178 deletions
Windows/Chocolatey/RemoveZabbix.ps1
deleted
100644 → 0
+
0
−
178
View file @
770b2174
<#=======================================================
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
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment