Redémarrez un service Windows à partir de la ligne de commande

82

Est-il possible de redémarrer un service Windows à partir de l'invite de commande?

Joe
la source

Réponses:

92

Vous pouvez utiliser net stop [service name]pour arrêter et net start [service name]de commencer à le reprendre essentiellement redémarrer le service.

Pour les combiner, faites ceci - net stop [service name] && net start [service name].


Il existe également une commande spécialement conçue pour jouer avec les services: sc

LA DESCRIPTION:
        SC est un programme en ligne de commande utilisé pour communiquer avec le
        Service Control Manager et services.
USAGE:
        sc [commande] [nom du service] ...


        L'option a la forme "\\ NomServeur"
        Une aide supplémentaire sur les commandes peut être obtenue en tapant: "sc [commande]"
        Commandes:
          query ----------- Demande le statut d'un service, ou
                          énumère le statut des types de services.
          queryex --------- Demande le statut étendu pour un service, ou
                          énumère le statut des types de services.
          start ----------- Démarre un service.
          pause ----------- Envoie une demande de contrôle PAUSE à un service.
          interrogate ----- Envoie une demande de contrôle INTERROGATE à un service.
          continue -------- Envoie une demande de contrôle CONTINUE à un service.
          stop ------------ Envoie une demande STOP à un service.
          config ---------- Modifie la configuration d'un service (persistant).
          description ----- Modifie la description d'un service.
          failure --------- Change les actions entreprises par un service en cas d'échec.
          failureflag ----- Change l'indicateur d'actions d'échec d'un service.
          sidtype --------- Change le type de SID de service d'un service.
          privs ----------- Modifie les privilèges requis d'un service.
          managedaccount - Modifie le service pour marquer le compte de service
                          mot de passe géré par LSA.
          qc -------------- Interroge les informations de configuration d'un service.
          qdescription ---- Interroge la description d'un service.
          qfailure -------- Interroge les actions entreprises par un service en cas d'échec.
          qfailureflag ---- Interroge l'indicateur d'actions en cas d'échec d'un service.
          qsidtype -------- Interroge le type de SID de service d'un service.
          qprivs ---------- Interroge les privilèges requis d'un service.
          qtriggerinfo ---- Interroge les paramètres de déclenchement d'un service.
          qpreferrednode - Interroge le nœud NUMA préféré d'un service.
          qrunlevel ------- Demande le niveau d'exécution d'un service.
          qmanagedaccount-Demande si un service utilise un compte avec un
                          mot de passe géré par LSA.
          qprotection ----- Demande le niveau de protection de processus d'un service.
          delete ---------- Supprime un service (du registre).
          create ---------- crée un service. (l'ajoute au registre).
          contrôle --------- Envoie un contrôle à un service.
          sdshow ---------- Affiche le descripteur de sécurité d'un service.
          sdset ----------- Définit le descripteur de sécurité d'un service.
          showsid --------- Affiche la chaîne SID du service correspondant à un nom arbitraire.
          triggerinfo ----- Configure les paramètres de déclenchement d'un service.
          preferrednode --- Définit le nœud NUMA préféré d'un service.
          runlevel -------- Définit le niveau d'exécution d'un service.
          GetDisplayName - Obtient le nom d'affichage pour un service.
          GetKeyName ------ Obtient le ServiceKeyName pour un service.
          EnumDepend ------ Enumère les dépendances de service.

        Les commandes suivantes ne nécessitent pas de nom de service:
        Caroline du Sud   
          boot ------------ (ok | bad) Indique si le dernier démarrage doit
                          être sauvegardé en tant que configuration de démarrage connue en dernier
          Lock ------------ Verrouille la base de données de service
          QueryLock ------- Interroge LockStatus sur la base de données SCManager.
EXEMPLE:
        sc démarrer MyService

OPTIONS QUERY et QUERYEX:
        Si la commande de requête est suivie d'un nom de service, le statut
        pour ce service est retourné. Les autres options ne s'appliquent pas
        ce cas. Si la commande de requête est suivie de rien ou de l'un des
        les options énumérées ci-dessous, les services sont énumérés.
    type = Type de services à énumérer (pilote, service, tous)
             (défaut = service)
    state = Etat des services à énumérer (inactif, tous)
             (défaut = actif)
    bufsize = La taille (en octets) du tampon d'énumération
             (défaut = 4096)
    ri = Le numéro d'index de reprise auquel commencer l'énumération
             (défaut = 0)
    groupe = groupe de services à énumérer
             (par défaut = tous les groupes)

EXEMPLES DE SYNTAXE
sc query - Enumère le statut des services et des pilotes actifs
sc query eventlog - Affiche l'état du service eventlog
sc queryex eventlog - Affiche le statut étendu du service eventlog
sc query type = driver - Énumère uniquement les pilotes actifs
sc query type = service - Énumère uniquement les services Win32
sc query state = all - Énumère tous les services et pilotes
sc query bufsize = 50 - Énumère avec un tampon de 50 octets
sc query ri = 14 - Énumère avec resume, index = 14
sc queryex group = "" - Énumère les services actifs ne faisant pas partie d'un groupe
sc query type = interact - Énumère tous les services interactifs
type de requête sc = groupe de pilotes = NDIS - Énumère tous les pilotes NDIS
paradd0x
la source
5
La question suivante consiste à savoir comment rechercher le bon [service name].
Iszi
4
Mettez dans net startet il liste tous les services en cours d'exécution.
paradd0x
3
@Iszi Eh bien, s'il veut redémarrer un service, celui-ci doit être en cours d'exécution pour pouvoir être redémarré. :)
paradd0x le
4
@lszi: lancez "sc query" à partir de la ligne de commande. Regardez SERVICE_NAME
jftuga le
8
'restart! =' stop '&&' start '. J'ai un service qui est redémarré assez rapidement via une applet GUI, mais très lent, arrêté par la GUI et la CLI. Toujours à la recherche d'un moyen CLI pour effectuer un redémarrage réel ...
Van Jone
16

Veuillez noter que s’il existe d’autres services qui dépendent de ce service, net stop & net startils ne seront généralement pas redémarrés. net stop /yva arrêter toutes les dépendances

Exemple le plus courant - SQL Server et SQL Agent.

Je recommande l'applet de commande PowerShell pour résoudre ceci:

powershell -command "Restart-Service MSSQLSERVER -Force"

Après le démarrage de MSSQLSERVER, l'applet de commande démarre toutes les dépendances précédemment arrêtées.

PS: Assurez-vous que vous exécutez la commande en tant qu'administrateur

Dmitry Gusarov
la source
2
+1 C'est la meilleure réponse. Arrêter et démarrer des services avec des dépendances échouera avec les autres réponses. Vous devez ajouter que pour que cela fonctionne, vous devez vous lancer en tant qu'administrateur.
egur
10

Vous pouvez également utiliser PowerShell:

stop-Service
devlife
la source
18
PowerShell propose également Restart-Service (il suffit de le mentionner depuis que le PO a spécifiquement demandé de redémarrer des services)
mercredi
10

Pour redémarrer un service Windows à partir de l'invite de commande ou de tâches planifiées, utilisez ceci:

cmd /c "net stop "Service Name" & sc start "Service Name""
Kiki
la source
4
Vous voudriez probablement une double esperluette. Cela fait attendre que la première commande se termine (avec succès) avant de passer à la seconde.
Adam Plocher
4

Pour résoudre le pilote Wacom Intuous agaçant qui ne fonctionne pas, je reçois une erreur à chaque redémarrage.

Windows key+ R, colle, Bam!

sc stop WTabletServicePro && sc start WTabletServicePro
George
la source
2

L' utilitaire PsService de PsTools fournit une restartcommande pour les services, avec des paramètres supplémentaires pour l'exécuter sur une autre machine.

psservice [-accepteula] [\\Computer [-u Username [-p Password]]] restart <service-name>

Le -accepteuladrapeau vous enregistre la fenêtre CLUF au cas où vous utiliseriez cet utilitaire pour la première fois avec l'utilisateur actuel.

cdlvcdlv
la source
-2

Si vous connaissez le chemin d’emplacement exécutable du service, vous pouvez utiliser

"[service name.exe] console"

Sur la ligne de commande.

Cela vous aidera réellement à résoudre le problème si le service ne parvient pas à démarrer.

sup4eli
la source
Bienvenue sur Super User! Veuillez relire attentivement la question. Votre réponse ne répond pas à la question initiale.
DavidPostill