Relance automatique d’un service Windows

Pour ceux qui ne disposent pas d’outil de monitoring capable de relancer automatiquement un service (démarrage automatique bien sur) qui aurait connu une défaillance, Arnaud Petitjean propose une solution simple à mettre en œuvre.

Cette solution basée sur du PowerShell et WMI ne nécessite pas de logiciel additionnel, ne consomme pas spécialement de ressources et peut fonctionner sur toutes les éditions de Windows (pourvue de PowerShell). Si vous disposez d’un environnement cluster, les services en cluster sont automatiquement redémarrés en cas de panne (enfin, si vous le voulez).

image

Donc n’utilisez pas cette solution pour des services cluster SVP.

Jetez un œil au post d’Arnaud pour plus de détail.

Voici le bout de code permettant le redémarrage :

$serviceName = '[Placez ici le nom de votre service]'
$query = "Select * From __InstanceOperationEvent
          within 3 
          Where TargetInstance ISA 'Win32_service'
          AND TargetInstance.Name='$serviceName'" 
$action = 
{
    if ( (Get-Service $serviceName).Status -ne 'running' )
    {
        Write-Warning "Démarrage du service $serviceName"
        Start-Service $serviceName
    }
} 
Register-WMIEvent -query $query -sourceIdentifier "ArretService" -action $action 

A propos Christophe

Consultant SQL Server Formateur certifié Microsoft MVP SQL Server MCM/MCSM SQL Server
Cet article, publié dans PowerShell, Windows, est tagué . Ajoutez ce permalien à vos favoris.

Un commentaire pour Relance automatique d’un service Windows

  1. HICHAM.K dit :

    Merci pour l’article

    Crdt,

    HK

Laisser un commentaire