ExpertWindows

Script PowerShell de redémarrage de services Windows

Pour des opérations de maintenance, alléger un serveur ou corriger un problème applicatif, on peut souhaiter redémarrer de manière régulière un service sur un serveur Windows. C’est peut-être le cas pour faire une sauvegarde à froid d’un dossier, programmer un arrêt de maintenance, alléger la mémoire utilisée par une application… Un script en PowerShell peut faciliter les choses.

Ce tutoriel montre comment écrire un script PowerShell avec arrêt et démarrage de services Windows. Il s’agit donc d’une utilisation sur des serveurs Windows (WS22, WS19, WS16…) mais également sur des postes de travail (Windows 11, Windows 10…).

L’exemple ci-dessous est donné avec l’arrêt et le démarrage de deux services, dont l’un dépend de l’autre. C’est une situation courante où le NomService2 dépend de NomServer1 et ne doit pas démarrer avant. Par exemple, s’il faut redémarrer plusieurs services d’un SGBD comme Oracle, ou si une application métier ne doit pas démarrer avant le service du serveur web.

###### Redémarrage des services NomService #####
Stop-Service -Name NomService2
sleep 30

Stop-Service -Name NomService1
sleep 30

Start-Service -Name NomService1
sleep 60

Start-Service -Name NomService2

Des « sleep » sont ajoutés pour patienter entre les différentes étapes, afin de laisser le temps aux services de bien démarrer ou s’arrêter. Une temporisation qui n’est pas obligatoire mais qui peut permettre d’éviter des erreurs, notamment après le démarrage d’un premier service et avant le déclenchement du second.

Il est aussi possible d’ajouter l’attribut « -force » pour forcer l’arrêt d’un service.

D’autres syntaxes pour « Start-Service » et « Stop-Service » sont détaillées sur cette page Microsoft.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page