"넷 시작 서비스" 및 "sc 시작". 차이점은 무엇입니까?

"넷 시작 서비스" 및 "sc 시작". 차이점은 무엇입니까?

명령 프롬프트 셸에서 두 가지 명령을 사용하여 서비스를 중지하고 시작할 수 있습니다.

  1. 넷 스타트 서비스 "일부 서비스"
  2. sc 시작 "일부 서비스"

이 명령의 차이점은 무엇입니까?

답변1

Windows NT에서는 두 명령 모두 동일한 서비스 관리자에 액세스합니다. 차이점은 주로 사용자가 볼 수 있는 부분에 있습니다.

  • net사실 MS-DOS와 OS/2 시대보다 오래되었습니다.

    scWindows NT에서만 나타남(어떤 버전인지는 확실하지 않음).

  • net서비스를 시작, 중지 및 일시 중지할 수만 있습니다.

    sc고급 제어 기능이 있고, 상태를 쿼리하고, 서비스를 생성 및 삭제하고, 구성 및 보안을 변경할 수 있습니다.sc config beep start= demand

  • net로컬에서만 작동합니다.

    sc네트워크를 통해 사용할 수 있습니다.sc \\snow start rpcapd

  • net표시 이름을 허용합니다:net start "Windows Firewall"

    sc항상 서비스 이름이 필요합니다.sc start SharedAccess

답변2

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은 성공 조건에 실패합니다.

답변3

그 가치에 대해 나는 sc 시작/중지가 net 시작/중지보다 더 안정적이라는 것을 알았습니다. 때때로 net start/stop으로 인해 서비스가 시작/중지 상태에 멈췄지만 sc 시작/중지에서는 아직 이런 일이 발생하지 않았습니다. net start/stop 증상은 taskkill을 통해 서비스가 종료된 경우(예: taskkill 이후 net start로 서비스를 시작하려고 시도하는 경우) 더 자주 발생하는 경향이 있습니다.

답변4

서비스의 OnStart() 루틴이 너무 오래 걸리는 경우 NET START서비스에 중지 명령을 보내고 다음 오류를 반환합니다.

ServiceName 서비스가 시작됩니다........

ServiceName 서비스를 시작할 수 없습니다.

서비스가 오류를 보고하지 않았습니다.

NET HELPMSG 3534를 입력하면 추가 도움말을 볼 수 있습니다.

서비스가 성공적으로 시작되고 중지되었음에도 불구하고 이런 일이 발생합니다!!

나는 또한 여기에서 이 게시물을 찾았는데, 그것은 흥미로울 것입니다: 서비스를 시작할 수 없습니다.

관련 정보