Les services peuvent être arrêtés et démarrés à l'aide de deux commandes dans l'invite de commandes.
- net start service "some service"
- sc start "some service"
Quelle est la différence entre ces commandes?
Les services peuvent être arrêtés et démarrés à l'aide de deux commandes dans l'invite de commandes.
Quelle est la différence entre ces commandes?
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 note que ces deux commandes diffèrent dans leur timing: "net" est synchrone et "sc" est asynchrone.
SC envoie le contrôle au service puis revient à l'invite de commande. Cela entraîne généralement un état de START_PENDING pour SC START. NET START attendra que le service qu'il démarre atteigne un état pleinement démarré avant de renvoyer le contrôle à l'invite de commande.
...
Comme SC START, SC STOP n'attend pas que le service s'arrête et renvoie souvent STOP_PENDING pour de nombreuses opérations d'arrêt de service. NET STOP, en revanche, attend que le service s'arrête avant de retourner à l'invite de commande.
...
NET et SC ont des idées différentes de ce qu'ils considèrent comme étant des conditions de réussite. La question que pose SC pour déterminer si elle a réussi est: "Ai-je réussi à envoyer avec succès un contrôle d'arrêt au service?" Si c'est le cas, peu importe si le service s'est arrêté, alors la condition de succès est satisfaite. NET pose la question : "Le service que j'ai essayé d'arrêter a-t-il retourné qu'il s'était arrêté avec succès?" Si c'est le cas, alors la condition est satisfaite. Sinon, peu importe la raison, NET échoue dans la condition de succès
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 - datant des jours de MS-DOS et OS/2, en fait.
sc
est apparu uniquement avec Windows NT (pas sûr de la version).
net
ne peut que démarrer, arrêter et mettre en pause des services.
sc
offre des commandes plus avancées, peut interroger l'état, créer et supprimer des services, changer leur configuration et leur sécurité: sc config beep start= demand
net
fonctionne uniquement 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
Pour ce que ça vaut, j'ai trouvé que sc start/stop est plus fiable que net start/stop. Parfois, net start/stop fait que le service reste bloqué dans un état de Démarrage/Arrêt alors que cela ne m'est encore jamais arrivé avec sc start/stop. Le symptôme de net start/stop a tendance à se produire plus souvent si le service a été arrêté de force (via taskkill), par exemple en essayant de démarrer le service avec net start après un taskkill.
Il 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 :
Le service ServiceName est en train de démarrer........
Le service ServiceName n'a pas pu démarrer.
Le service n'a pas signalé d'erreur.
Une aide supplémentaire est disponible en tapant NET HELPMSG 3534.
Cela se produit même si le service a été démarré et arrêté avec succès !!
J'ai également trouvé ce post ici, qui pourrait être intéressant : Le service n'a pas pu démarrer
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.