PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Gérer les services en PowerShell avec Set-Service

jeudi 1 septembre 2016 à 11:50

I. Présentation de Set-Service

Dans la suite des tutoriels sur la gestion des services Windows en PowerShell, nous allons aujourd’hui étudier l’utilisation de la commande Set-Service. Nous avons précédemment vue la commande Get-Service qui permet de récupérer des informations à propos des services Windows, Set-service permet de modifier ces informations. Nous pourrons notamment modifier :

Le tout peut être effectué sur le poste/serveur local (cas par défaut), mais également sur un ou plusieurs serveurs distants.

Note : Pour modifier l’état ou les propriétés d’un service, il faut avoir les droits d’administration sur la machine. Pour un poste/serveur local, pensez donc à ouvrir votre script ou console PowerShell en tant qu’administrateur.

II. Modifier un service

Comme vu précédemment, un service possède plusieurs attributs, nous allons dans cette section voir comment modifier le mode de démarrage et les propriétés du service nommé  « WebClient » :

Changer le mode de démarrage (valeur autorisée : « automatic », « manual » ou « disabled ») :

set-service -name WebClient -startuptype automatic

Pour changer le DisplayName (nom d’affichage)

set-service -name WebClient -DisplayName "DisplayName de WebClient"

Même syntaxe pour la description :

set-service -name WebClient -description "Description de WebClient"

Dans chaque cas, la valeur qui suit « -name » permet d’identifier le service à modifier, ce nom d’usage n’est pas modifiable. Dans la fenêtre graphique « Services » de Windows, c’est le DisplayName qui est contenu dans la colonne « Nom » et non le nom d’usage :

set-service03

Fenêtre « Services » en vue graphique sous Windows

Via l’interface graphique, ce nom d’usage peut être trouvé en faisait un clic droit « Propriétés » sur le service ciblé :

set-service02

Trouver le nom d’usage d’un service Windows via l’interface graphique.

Une petite astuce d’utilisation, l’ajout de l’option « -PassThru » permet d’afficher les attributs du service modifié pour constater le changement opéré :

set-service01

Utilisation de l’option « -PassThru » pour afficher les changements opérés.

III. Changer l’état d’un service

Un service peut avoir trois états :

Nous pouvons donc modifier l’état d’un service grâce à la cmdlet Set-service, par exemple pour le service nommé « WebClient » qui est en « Running », il faut exécuter la commande suivante pour l’arrêter :

set-service -name WebClient -Status "Stopped"

A l’inverse, pour le démarrer :

set-service -name WebClient -Status "Running"

A noter que la même opération et faisable sur un serveur distant :

set-service -name WebClient -Status "Running"  -computerName server01

Dans ce cas, il faut bien entendu que « server01 » soit un nom DNS resolvable.

Des commandes dédiées à l’arrêt, démarrage et redémarrage des services existent également :

# Redémarrer le service
restart-service WebClient
# Démarrer le service
start-service WebClient
# Arrêter le service
stop-service WebClient
# Mettre le service en pause
suspend-service WebClient
# Reprendre le service après une mise en pause
resume-service WebClient

J’espère que ce tutoriel vous aura été utile. La commande set-service est très souvent utilisée dans le cadre de scripting PowerShell, notamment lorsque l’on peut l’appliquer à plusieurs serveurs en une seule exécution via « -ComputerName« . N’hésitez pas à poser vos questions et vos avis dans les commentaires ou sur notre forum !