Comment gérer les services Windows via la ligne de commande

Je suis toujours à la recherche de moyens efficaces pour gérer les tâches système sans quitter le terminal, même lorsque j’utilise Windows. Sur Windows, les services s’exécutent en arrière-plan pour maintenir le bon fonctionnement du système et des applications. Au lieu d’ouvrir le Gestionnaire de services, je préfère gérer les services Windows via la ligne de commande. Dans ce guide, nous allons explorer ces méthodes et voir comment vous pouvez gérer les services Windows directement depuis le terminal.
1. Gérer les services Windows avec sc.exe
sc.exe est un outil en ligne de commande intégré pour gérer les services Windows. Il vous permet de configurer, interroger et contrôler les services directement depuis le terminal. Avec sc.exe, vous obtenez un contrôle total sur les services Windows sans avoir besoin du Gestionnaire de services graphique.
Vérifier l’état d’un service avec sc
Nous pouvons utiliser la commande sc query serviceName pour vérifier l’état d’un service spécifique. Par exemple, nous exécutons la commande sc query MySQL80 pour obtenir des détails sur le service MySQL80, y compris son état :

Actuellement, MySQL n’est pas en cours d’exécution sur notre machine.
Démarrer un service avec sc
Pour démarrer un service spécifique en utilisant sc.exe, nous pouvons utiliser la commande sc start ServiceName. Par exemple, nous exécutons sc start MySQL80 pour démarrer le service MySQL80. Pour vérifier si le service a démarré avec succès, nous pouvons vérifier son état à l’aide de la commande sc query MySQL80 :

Arrêter un service avec sc
Vous pouvez arrêter un service pour libérer des ressources système. Par exemple, la commande sc stop MySQL80 arrête MySQL, ce qui peut être vérifié en utilisant la commande sc query MySQL80 :

Créer un nouveau service avec sc
Nous pouvons créer un nouveau service en utilisant la commande sc create. Cela nécessite de spécifier le nom du service, le chemin de l’exécutable et le type de démarrage. Par exemple, pour créer un nouveau service nommé “mte” qui démarrera automatiquement au démarrage, tapez :
sc create mte binPath="C:\Users\HP\Desktop\Examples\Service.exe" start= autoMettre à jour un service avec sc
Nous pouvons utiliser la commande sc config pour configurer un service existant. Par exemple, pour changer le type de démarrage en manuel, exécutez la commande :
sc config serviceName start= demandSupprimer un service avec sc
Une fois qu’un service n’est plus nécessaire, nous pouvons le supprimer définitivement de Windows en utilisant la commande :
sc delete srviceName2. Gérer les services Windows avec la commande Net
La commande net dans Windows nous permet de gérer les services depuis la ligne de commande. Elle permet aux utilisateurs de démarrer, arrêter, mettre en pause, reprendre et interroger des services sans utiliser le Gestionnaire de services graphique.
Démarrer et arrêter un service avec la commande net
Nous pouvons démarrer ou arrêter des services Windows avec les commandes net start serviceName et net stop serviceName, respectivement :

Mettre en pause et reprendre des services avec la commande net
Certains services Windows prennent en charge la mise en pause et la reprise au lieu d’un arrêt complet. Dans ce cas, nous pouvons utiliser les commandes net pause ServiceName et net continue ServiceName, respectivement :

Vérifier l’état d’un service avec la commande net
La commande net elle-même ne fournit pas une méthode directe pour vérifier l’état d’un service spécifique, mais nous pouvons l’utiliser avec la commande findstr pour filtrer les résultats. Par exemple, pour vérifier si le service spécifié est en cours d’exécution, tapez :
net start | findstr "ServiceName"Si le service spécifié est en cours d’exécution, la commande renvoie son nom ; sinon, il n’y a pas de sortie.
Gérer des services à distance avec la commande net
Nous pouvons utiliser la commande net pour gérer des services sur des ordinateurs distants en spécifiant le nom de l’ordinateur. Par exemple, les commandes net start ServiceName /S RemotePC et net stop ServiceName /S RemotePC sont utilisées pour démarrer ou arrêter des services sur un ordinateur distant.
3. Gérer les services Windows avec les cmdlets PowerShell
PowerShell offre un contrôle plus avancé sur les services Windows avec des cmdlets intégrées comme Get-Service, Start-Service, Stop-Service et Restart-Service. Ces cmdlets permettent aux utilisateurs de vérifier l’état d’un service, de le démarrer ou de l’arrêter, et même de le redémarrer si nécessaire.
Les cmdlets PowerShell fournissent des sorties détaillées, y compris l’état du service, le nom d’affichage et les services dépendants. Ces cmdlets permettent le scripting et l’automatisation, ce qui les rend utiles pour gérer plusieurs services de manière efficace.
La flexibilité et les fonctionnalités puissantes de PowerShell en font l’outil privilégié pour les administrateurs gérant les services Windows.
Obtenir l’état d’un service avec les cmdlets
Nous pouvons utiliser le cmdlet Get-Service -Name ServiceName pour obtenir les détails sur le service spécifié. Par exemple, la commande suivante renvoie l’état du service MySQL80, indiquant s’il est en cours d’exécution ou arrêté :
Get-Service-Name MySQL80
Interroger les services avec les cmdlets PowerShell
Nous pouvons utiliser la commande Get-Service pour interroger les services en fonction de critères spécifiques. Par exemple, nous pouvons récupérer tous les services actuellement en cours d’exécution à l’aide de la commande :
Get-Service|Where-Object{$_.Status -eq'Running'}
Démarrer et arrêter des services avec les cmdlets PowerShell
Nous pouvons démarrer ou arrêter un service spécifique en utilisant les cmdlets Start-Service et Stop-Service, respectivement. Par exemple, nous utilisons des commandes PowerShell pour démarrer, arrêter et vérifier l’état du service MySQL80 :
Start-Service-Name MySQL80
Stop-Service-Name MySQL80
Get-Service-Name MySQL80
Changer le type de démarrage d’un service avec les cmdlets PowerShell
Les cmdlets PowerShell nous permettent de mettre à jour le type de démarrage d’un service. Par exemple, nous pouvons exécuter les cmdlets suivantes pour configurer un service pour qu’il démarre automatiquement avec le système, nécessite un démarrage manuel ou soit désactivé, respectivement :
Set-Service-Name ServiceName -StartupType Automatic
Set-Service-Name ServiceName -StartupType Manual
Set-Service-Name ServiceName -StartupType DisabledCes cmdlets aident les administrateurs à gérer efficacement le comportement des services, ce qui garantit que les services essentiels démarrent au besoin tout en empêchant ceux qui ne sont pas nécessaires de s’exécuter.
Gérer des services distants avec des cmdlets
PowerShell permet également de gérer des services sur des ordinateurs distants en spécifiant les noms des ordinateurs distants. Par exemple, la commande Get-Service -Name ServiceName -ComputerName RemotePC récupère l’état d’un service spécifique s’exécutant sur un ordinateur distant nommé RemotePC, permettant aux administrateurs de surveiller les services à distance.
De même, la commande Restart-Service -Name ServiceName -ComputerName serviceName essaie de redémarrer le service spécifié sur un ordinateur distant. Cela garantit que le service redémarre sans nécessiter un accès direct à la machine. Cependant, la gestion des services à distance nécessite des autorisations appropriées et l’activation de l’accès à distance PowerShell.
4. Automatiser les tâches de gestion des services
Les scripts PowerShell permettent d’automatiser la gestion des services, facilitant ainsi la surveillance et le contrôle des services Windows sans intervention manuelle. Nous pouvons créer un script qui vérifie en continu l’état d’un service spécifique et le redémarre s’il s’arrête de manière inattendue.
Par exemple, le script suivant vérifie si le service MySQL80 est en cours d’exécution et le redémarre s’il est arrêté :
$serviceName = "MySQL80"
$service = Get-Service-Name $serviceName
if($service.Status -ne"Running"){
Restart-Service-Name $serviceName -Force
Write-Output"$serviceName a été arrêté et a été redémarré."
}else{
Write-Output"$serviceName est déjà en cours d'exécution."
}Par défaut, Windows restreint l’exécution des scripts. Pour activer l’exécution, exécutez d’abord la commande :
Set-ExecutionPolicy RemoteSignedNaviguez maintenant jusqu’à l’emplacement du script et exécutez la commande .\serviceScript.ps1 pour exécuter le script :
Gérer les services Windows depuis la ligne de commande vous donne un contrôle total sans avoir à vous fier au Gestionnaire de services graphique. Que vous utilisiez sc.exe, net ou les cmdlets PowerShell, chaque méthode offre des moyens efficaces de démarrer, d’arrêter et de configurer des services.
Les capacités de script de PowerShell facilitent l’automatisation, vous permettant de surveiller et de gérer les services en toute transparence. En maîtrisant ces outils, vous pouvez résoudre des problèmes, optimiser les performances du système et garantir le bon fonctionnement des services critiques.
Pour plus de moyens d’optimiser votre système Windows et de résoudre des problèmes courants, consultez ces guides sur la résolution des problèmes Windows et l’optimisation de votre PC pour de meilleures performances.