Answers:
在Windows NT中,两个命令都访问相同的服务管理器。区别主要在于用户可见部分:
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将等待它开始进入完全启动状态的服务,然后在命令提示符下返回控制权。
...
[如] SC START,SC STOP不等待服务停止, 并且通常会在许多服务停止操作中返回STOP_PENDING。 另一方面,NET STOP将等待服务停止, 然后再返回到命令提示符。
...
NET和SC对于成功条件有不同的想法。 SC询问确定它是否成功的问题是:“我是否已成功向服务发送停止控制?”如果这样做,则不管服务是否停止,我都满足成功条件。NET提出一个问题,“我尝试停止的服务是否返回,它成功停止了?”如果这样做,则表示满足条件。如果不是,无论是什么原因,NET都不会成功