"serviço net start" e "sc start". Qual é a diferença?

"serviço net start" e "sc start". Qual é a diferença?

Os serviços podem ser interrompidos e iniciados usando dois comandos no Command Prompt Shell.

  1. serviço net start "algum serviço"
  2. sc iniciar "algum serviço"

qual é a diferença entre esses comandos?

Responder1

No Windows NT, ambos os comandos acessam o mesmo Service Manager. A diferença está principalmente na parte visível ao usuário:

  • neté mais antigo – da época do MS-DOS e do OS/2, na verdade.

    scsó apareceu com o Windows NT(não tenho certeza de qual versão).

  • netsó pode iniciar, parar e pausar serviços.

    scpossui controles mais avançados, pode consultar estado, criar e excluir serviços, alterar sua configuração e segurança:sc config beep start= demand

  • netsó funciona localmente.

    scpode ser usado pela rede:sc \\snow start rpcapd

  • netaceita nomes de exibição:net start "Windows Firewall"

    scsempre requer um nome de serviço:sc start SharedAccess

Responder2

A resposta do Grawity é certamente útil, mas encontrei uma diferença fundamental entre esses comandos detalhados emhttp://cbfive.com/command-line-service-management-net-v-sc/. Em particular, esta página observa que esses dois comandos diferem em suastempo:"net" é síncrono e "sc" é assíncrono.

SC envia o controle para o serviço e depois retorna ao prompt de comando. Isso normalmente faz com que SC START retorne o serviço no estado START_PENDING. NET START aguardará que o serviço que está começando chegue a um estado totalmente iniciado antes de retornarcontrole no prompt de comando.

...

[Como] SC START,SC STOP não espera que o serviço pare e retornará frequentemente STOP_PENDING para muitas operações de parada de serviço. NET STOP, por outro lado, aguardará a parada do serviço antes de retornar ao prompt de comando.

...

NET e SC têm ideias diferentes sobre o que consideram condições de sucesso. A pergunta que o SC faz para determinar se foi bem-sucedido é: “Enviei com sucesso um controle de parada para o serviço?” Se isso acontecesse, independentemente de o serviço ter sido interrompido, eu satisfaria a condição de sucesso. NET faz a pergunta: “O serviço que tentei parar retornou que foi interrompido com sucesso?” Se sim, então satisfez a condição. Caso contrário, não importa o motivo, o NET falhará na condição de sucesso

Responder3

Pelo que vale, descobri que sc start/stop é mais confiável do que net start/stop. Às vezes, net start/stop fazia com que o serviço ficasse preso em um estado Iniciando/Parada, enquanto isso nunca me ocorreu com sc start/stop. O sintoma net start/stop tende a ocorrer com mais frequência se o serviço foi eliminado (via taskkill), por exemplo, tentativa de iniciar o serviço com net start após taskkill.

Responder4

Resta dizer que se a rotina OnStart() de um serviço demorar muito, NET STARTenvia um comando de parada para o serviço e retorna o seguinte erro:

O serviço ServiceName está iniciando........

O serviço ServiceName não pôde ser iniciado.

O serviço não relatou um erro.

Mais ajuda está disponível digitando NET HELPMSG 3534.

Isso acontece embora o serviço tenha sido iniciado e parado com sucesso!!

Também encontrei este post aqui, que pode ser interessante: Não foi possível iniciar o serviço

informação relacionada