Les services peuvent être arrêtés et démarrés à l'aide de deux commandes dans Shell d'invite de commande.
- service net start "un service"
- sc démarrer "un service"
Quelle est la différence entre ces commandes?
la source
Les services peuvent être arrêtés et démarrés à l'aide de deux commandes dans Shell d'invite de commande.
Quelle est la différence entre ces commandes?
Sous Windows NT, les deux commandes accèdent au même gestionnaire de service. La différence réside principalement dans la partie visible par l'utilisateur:
net
est plus ancien - à partir de l'époque de MS-DOS et OS / 2, en fait.
sc
est apparu seulement avec Windows NT (pas sûr de quelle version) .
net
ne peut que démarrer, arrêter et suspendre les services.
sc
dispose de contrôles plus avancés, peut interroger l’état, créer et supprimer des services, modifier leur configuration et leur sécurité: sc config beep start= demand
net
ne fonctionne que localement.
sc
peut être utilisé sur le réseau: sc \\snow start rpcapd
net
accepte les noms d'affichage: net start "Windows Firewall"
sc
nécessite toujours un nom de service: sc start SharedAccess
La réponse de Grawity est certainement utile, mais j'ai trouvé une différence fondamentale entre ces commandes détaillées sur http://cbfive.com/command-line-service-management-net-v-sc/ . En particulier, cette page indique que la synchronisation de ces deux commandes est différente : "net" est synchrone et "sc" est asynchrone.
SC envoie le contrôle au service, puis retourne à l'invite de commande. Cela a généralement pour résultat que SC START renvoie le service dans un état START_PENDING. NET START attendra que le service commence à être complètement démarré avant de rendre le contrôle à l'invite de commande.
...
[L] ike SC START, SC STOP n’attend pas l’arrêt du service et y retournera souvent STOP_PENDING pour de nombreuses opérations d’arrêt du service. Par ailleurs, NET STOP attend que le service s’arrête avant de revenir à l’invite de commande.
...
NET et SC ont des idées différentes sur ce qu’ils considèrent être des conditions de réussite. La question que le SC demande pour déterminer s’il a réussi est la suivante: «Ai-je bien envoyé un contrôle d’arrêt au service?» Si oui, que le service ait été arrêté ou non, j’ai satisfait à la condition réussie. NET pose la question suivante: «Le service que j'ai tenté de stopper a-t-il indiqué qu'il s'était arrêté correctement? Si tel n’est pas le cas, quelle que soit la raison, NET échoue à la condition de réussite
Pour ce que ça vaut, j’ai trouvé que sc start / stop était plus fiable que net start / stop. Parfois, le démarrage / arrêt du réseau entraînait le blocage du service dans un état de démarrage / arrêt, alors que cela ne m’était pas encore arrivé avec sc start / stop. Le symptôme de démarrage / d'arrêt du réseau a tendance à se produire plus souvent si le service a été tué (via taskkill), par exemple, lors d'une tentative de démarrage du service avec net start après taskkill.
la source
Reste à dire que si la routine OnStart () d'un service prend trop de temps,
NET START
envoie une commande d'arrêt au service et renvoie l'erreur suivante:Cela se produit bien que le service ait été démarré et arrêté avec succès !!
J'ai aussi trouvé ce post ici, cela pourrait être intéressant: le service n'a pas pu être démarré
la source