2
0

Add Check_scripts/Win - Automatic Services and remidiation.ps1

This commit is contained in:
2023-09-06 15:36:37 +02:00
parent 83d37b3928
commit af15ba1aec

View File

@@ -0,0 +1,54 @@
<#
.SYNOPSIS
Check all Windows Services with automatic startup type.
.DESCRIPTION
This script will check all services on a machine that are configured with the automatic startup type,
This script should be deployed as a Check Script.
The first Variable in the script are explusion service names that won't be checked. Adjust this acording tot he environment.
.OUTPUTS
This script will check all services under a Windows machine with the startup type "Automatic starting".
Errorcodes:
0 - All OK
1 - Automatic Services are stopped and cannot be started automatically
.EXAMPLE
Win - Automatic Services and remidiation.ps1
.NOTES
Author: D.de Kooker <info@dcomputers.nl>
Source: n/a
.CHANGELOG
24-06-2022 - Initial script.
26-06-2022 - Added remediation to start stopped services
#>
#region Parameters, functions and global variables
$VAR_Excludes = "edgeupdate","RemoteRegistry","sppsvc","MapsBroker","gupdate","TrustedInstaller"
$Services = Get-Service | Where-Object { $_.Name -notin $VAR_Excludes -and $_.StartType -eq "Automatic" -and $_.Status -ne "Running" }
#endregion
#region script
if (!($Services)) {
Write-Output "No Stopped automatic services found"
exit 0
}
Else {
Write-Output "Some automatic services are stopped"
$Services
Write-Output "Trying to start stopped services"
foreach ($Service in $Services) {
Write-Output "Starting service $($Service.Name)..."
Start-Service -Name $Service.Name -ErrorAction Continue
}
$Services = Get-Service | Where-Object { $_.Name -notin $VAR_Excludes -and $_.StartType -eq "Automatic" -and $_.Status -ne "Running" }
if (!($Services)) {
Write-Output "No more stopped automatic services found"
exit 0
}
exit 1
}
#endregion