Automated Windows Service Monitoring with PowerShell

In this post, we will share a PowerShell script that automates the monitoring of Windows services on your system. Keeping track of service statuses is essential to ensure that critical applications are running smoothly. This script provides an easy way to check the status of specified services and can notify administrators if any services are stopped, enabling quick responses to potential issues.
Here is the PowerShell script for monitoring Windows services:

# Define the list of services to monitor
$servicesToMonitor = @("Spooler", "wuauserv", "MSSQLSERVER")
# Check the status of each service
foreach ($service in $servicesToMonitor) {
    $serviceStatus = Get-Service -Name $service
    # Display the status
    Write-Host "Service: $($serviceStatus.Name) - Status: $($serviceStatus.Status)"
    # Check if the service is stopped
    if ($serviceStatus.Status -eq 'Stopped') {
        Write-Host "Warning: The service '$service' is stopped. Attempting to start..."
        Start-Service -Name $service
        Write-Host "Service '$service' has been started."
    }
}