Câu trả lời:
Trong Windows NT, cả hai lệnh truy cập cùng một Trình quản lý dịch vụ. Sự khác biệt chủ yếu ở phần hiển thị của người dùng:
net
cũ hơn - từ thời MS-DOS và OS / 2, trên thực tế.
sc
chỉ xuất hiện với Windows NT (không chắc là phiên bản nào) .
net
chỉ có thể bắt đầu, dừng và tạm dừng dịch vụ.
sc
có các điều khiển nâng cao hơn, có thể truy vấn trạng thái, tạo và xóa dịch vụ, thay đổi cấu hình và bảo mật của chúng: sc config beep start= demand
net
chỉ hoạt động tại địa phương.
sc
có thể được sử dụng qua mạng: sc \\snow start rpcapd
net
chấp nhận tên hiển thị: net start "Windows Firewall"
sc
luôn yêu cầu tên dịch vụ: sc start SharedAccess
Câu trả lời của Grawity chắc chắn rất hữu ích, nhưng tôi đã tìm thấy một sự khác biệt cơ bản giữa các lệnh này được nêu chi tiết trên http://cbfive.com/command-line-service-manloyment-net-v-sc/ . Cụ thể, trang này lưu ý rằng hai lệnh này khác nhau về thời gian của chúng : "net" là đồng bộ và "sc" là không đồng bộ.
SC gửi điều khiển đến dịch vụ và sau đó quay lại dấu nhắc lệnh. Điều này thường dẫn đến SC START trả lại dịch vụ trong trạng thái START_PENDING. NET START sẽ đợi dịch vụ bắt đầu đến trạng thái bắt đầu hoàn toàn trước khi trả lại quyền kiểm soát tại dấu nhắc lệnh.
...
[L] ike SC START, SC STOP không đợi dịch vụ dừng lại và sẽ thường trả lại STOP_PENDING cho nhiều hoạt động dừng dịch vụ. Mặt khác, NET STOP sẽ đợi dịch vụ dừng lại trước khi nó quay trở lại dấu nhắc lệnh.
...
NET và SC có những ý tưởng khác nhau về những gì họ coi là điều kiện thành công. Câu hỏi mà SC yêu cầu để xác định xem nó có thành công hay không, có phải tôi đã gửi thành công quyền kiểm soát dừng cho dịch vụ không? NET đặt câu hỏi, dịch vụ Tôi đã cố gắng dừng lại, trả lại rằng nó đã dừng thành công chưa? Nếu được, thì nó đã thỏa mãn điều kiện. Nếu không, dù lý do là gì, thì NET thất bại trong điều kiện thành công
Về giá trị của nó, tôi đã thấy sc start / stop đáng tin cậy hơn net start / stop. Đôi khi net start / stop khiến dịch vụ bị kẹt trong trạng thái Bắt đầu / Dừng trong khi điều này chưa bao giờ xảy ra với tôi khi bắt đầu / dừng sc. Triệu chứng bắt đầu / dừng mạng có xu hướng xảy ra thường xuyên hơn nếu dịch vụ bị giết (thông qua taskkill), ví dụ: cố gắng bắt đầu dịch vụ với khởi động mạng sau khi thực hiện nhiệm vụ.
Còn lại để nói rằng nếu thói quen OnStart () của dịch vụ mất quá nhiều thời gian, hãy NET START
gửi lệnh dừng đến dịch vụ và trả về lỗi sau:
Dịch vụ ServiceName đang bắt đầu ........
Dịch vụ ServiceName không thể khởi động.
Dịch vụ không báo lỗi.
Thêm trợ giúp có sẵn bằng cách gõ NET HELPMSG 3534.
Điều này xảy ra mặc dù dịch vụ đã được bắt đầu và dừng thành công !!
Tôi cũng tìm thấy bài đăng này ở đây, điều đó có thể thú vị: Không thể bắt đầu dịch vụ