Vous pouvez gérer les services Windows non seulement à partir du snap-in services.msc ou de l’outil de ligne de commande sc.exe, mais aussi en utilisant PowerShell. Dans cet article, nous examinerons différents scénarios de gestion des services Windows avec PowerShell.
Cmdlets PowerShell utilisés pour gérer les services Windows
Il existe huit cmdlets de base pour les services permettant de visualiser l’état des services Windows et de les gérer. Pour obtenir la liste complète des cmdlets de gestion des services, exécutez cette commande :
Get-Help \*-Service
- Get-Service – permet d’obtenir les services sur un ordinateur local ou distant à la fois dans l’état de fonctionnement ou d’arrêt ;
- New-Service – crée un service. Le cmdlet crée une nouvelle entrée pour un service Windows dans le registre et dans la base de données des services;
- Restart-Service – redémarre un service. Le cmdlet envoie le message de redémarrage par le biais du contrôleur de service Windows;
- Resume-Service – reprend un service. Le cmdlet envoie un message de reprise au gestionnaire de services Windows;
- Set-Service – modifie les paramètres d’un service local ou distant, notamment son état, sa description, son nom affiché ou son mode de démarrage. Vous pouvez également utiliser cette cmdlet pour démarrer, arrêter ou suspendre un service;
- Start-Service – démarre un service;
- Stop-Service – arrête un service (la cmdlet envoie un message d’arrêt au gestionnaire de services Windows);
- Suspend-Service – suspend un service. Un service suspendu est toujours en cours d’exécution, mais il ne fait rien jusqu’à ce qu’il soit repris en utilisant( par exemple, avec le cmdlet Resume-Service).
Vous pouvez obtenir une description détaillée et des exemples d’utilisation d’un cmdlet particulier avec Get-Help:
Get-Help Start-Service
Comment vérifier l’état des services Windows avec Get-Service ?
Vous pouvez obtenir la liste des services et leur état (Exécuté/Arrêté) sur un ordinateur local ou distant en utilisant la cmdlet Get-Service. Le paramètre -Name permet de sélectionner les services par leur nom. Le nom du service peut être spécifié en utilisant le caractère générique *
.
Si vous ne connaissez pas le nom exact du service, vous pouvez le trouver par son nom affiché en utilisant le paramètre -DisplayName. Vous pouvez utiliser la liste des valeurs et les caractères génériques.
Utilisez la cmdlet Get-Service avec le paramètre -ComputerName pour obtenir l’état du service sur un ordinateur distant. Vous pouvez interroger l’état du service sur plusieurs ordinateurs distants à la fois en spécifiant leurs noms séparés par des virgules. Par exemple, la commande présentée ci-dessous obtient l’état du service Spooler sur les ordinateurs distants ny-prnt1 et ny-prnt2.
Get-Service spooler –ComputerName ny-prnt1,ny-prnt2
Status Name DisplayName------ ---- -----------Running spooler Print SpoolerStopped spooler Print Spooler
Pour afficher toutes les propriétés d’un service, utilisez le cmdlet Select-Object:
Get-Service spooler | Select-Object *
Le cmdlet Select-Object permet d’obtenir des propriétés spécifiques d’un service. Par exemple, vous souhaitez visualiser le nom, l’état et les options disponibles du service Spooler :
Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*
La cmdlet Get-Service possède deux paramètres qui vous permettent de visualiser les dépendances du service :
- -DependentServices permet d’afficher les services dépendants du service donné
- -RequiredServices affiche les services dont dépend le service donné
La commande suivante affiche les services requis pour démarrer le service Spooler :
Get-Service –Name Spooler -RequiredServices
La commande suivante affiche les services qui dépendent de Spooler :
Get-Service –Name Spooler -DependentServices
.