Respostas:
No Windows NT, os dois comandos acessam o mesmo Service Manager. A diferença está principalmente na parte visível ao usuário:
net
é mais antigo - desde os dias do MS-DOS e OS / 2, de fato.
sc
apareceu apenas no Windows NT (não tenho certeza de qual versão) .
net
só pode iniciar, parar e pausar serviços.
sc
possui controles mais avançados, pode consultar o estado, criar e excluir serviços, alterar sua configuração e segurança: sc config beep start= demand
net
só funciona localmente.
sc
pode ser usado através da rede: sc \\snow start rpcapd
net
aceita nomes para exibição: net start "Windows Firewall"
sc
sempre requer um nome de serviço: sc start SharedAccess
A resposta do Grawity é certamente útil, mas eu encontrei uma diferença fundamental entre esses comandos detalhados em http://cbfive.com/command-line-service-management-net-v-sc/ . Em particular, esta página observa que esses dois comandos diferem em seu tempo : "net" é síncrono e "sc" é assíncrono.
O SC envia o controle ao serviço e retorna ao prompt de comando. Isso normalmente resulta em SC START retornando o serviço em um estado de START_PENDING. O NET START aguardará o serviço que está começando a entrar em um estado totalmente iniciado antes de retornar o controle no prompt de comando.
...
[L] ike SC START, SC STOP não espera o serviço parar e sempre retornará STOP_PENDING para muitas operações de parada de serviço. NET STOP, por outro lado, aguardará a interrupção do serviço antes de retornar ao prompt de comando.
...
NET e SC têm idéias diferentes do que consideram condições de sucesso. A pergunta que o SC pede para determinar se foi bem-sucedida é: "Enviei com êxito um controle de parada para o serviço?" A NET faz a pergunta: “O serviço que eu tentei parar, retornou que parou com êxito?” Se o fez, satisfez a condição. Caso contrário, não importa qual seja o motivo, o NET falhará na condição bem-sucedida
Pelo que vale, achei sc start / stop mais confiável que o net start / stop. Às vezes, o net start / stop fazia com que o serviço ficasse travado no estado de partida / parada, enquanto isso nunca me ocorreu com sc start / stop. O sintoma de início / parada da rede tende a ocorrer com mais frequência se o serviço foi interrompido (via habilidade), por exemplo, tentar iniciar o serviço com partida líquida após a tarefa.
Falta dizer que, se a rotina OnStart () de um serviço demorar muito, NET START
envia 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 interrompido com sucesso!
Também encontrei este post aqui, que pode ser interessante: O serviço não pôde ser iniciado