답변:
Windows NT에서 두 명령은 동일한 Service Manager에 액세스합니다. 차이점은 주로 사용자가 볼 수있는 부분에 있습니다.
net
사실 MS-DOS와 OS / 2 시절보다 더 오래되었습니다.
sc
Windows NT에서만 나타납니다 (어떤 버전인지 확실하지 않음) .
net
서비스를 시작, 중지 및 일시 중지 만 할 수 있습니다.
sc
고급 제어 기능이 있으며 상태를 쿼리하고 서비스를 생성 및 삭제하고 구성 및 보안을 변경할 수 있습니다. sc config beep start= demand
net
로컬에서만 작동합니다.
sc
네트워크를 통해 사용할 수 있습니다 : sc \\snow start rpcapd
net
표시 이름을 허용합니다. net start "Windows Firewall"
sc
항상 서비스 이름이 필요합니다. sc start SharedAccess
Grawity의 답변은 확실히 도움이되지만 http://cbfive.com/command-line-service-management-net-v-sc/에 자세히 설명 된 이러한 명령의 근본적인 차이점을 발견했습니다 . 특히,이 페이지에서는이 두 명령의 타이밍이 다릅니다 . "net"은 동기식이고 "sc"는 비동기식입니다.
SC는 컨트롤을 서비스로 보낸 다음 명령 프롬프트로 돌아갑니다. 이로 인해 일반적으로 SC START가 START_PENDING 상태로 서비스를 반환합니다. NET START는 명령 프롬프트에서 제어를 반환하기 전에 서비스가 완전히 시작된 상태가되기를 기다립니다 .
...
[L] SC START와 마찬가지로 SC STOP은 서비스가 중지 될 때까지 기다리지 않으며 많은 서비스 중지 작업에 대해 종종 STOP_PENDING을 반환합니다. 반면에 NET STOP은 서비스가 중지 될 때까지 기다렸다가 명령 프롬프트로 돌아갑니다.
...
NET과 SC는 성공 조건으로 간주하는 것에 대한 아이디어가 다릅니다. SC가 성공했는지 여부를 묻는 질문은 "서비스에 중지 제어를 성공적으로 보냈습니까?"입니다. 서비스가 중지되었는지 여부에 관계없이 성공한 조건을 만족했습니다. NET에서 "중지하려고 시도한 서비스가 성공적으로 중지되었다고 반환 했습니까?"라는 질문을합니다. 그렇지 않은 경우 이유가 무엇이든 NET은 성공적인 조건에 실패합니다.
서비스의 OnStart () 루틴이 너무 오래 걸리면 서비스 NET START
에 중지 명령을 보내고 다음 오류를 리턴합니다.
ServiceName 서비스가 시작됩니다 ........
ServiceName 서비스를 시작할 수 없습니다.
서비스가 오류를보고하지 않았습니다.
NET HELPMSG 3534를 입력하면 추가 도움말을 볼 수 있습니다.
이것은 서비스가 시작되고 성공적으로 중지되었지만 발생합니다 !!
나는 또한이 게시물을 찾았습니다. 흥미 롭습니다 : 서비스를 시작할 수 없습니다