回答:
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/で詳しく説明されているこれらのコマンドの根本的な違いを見つけました。特に、このページでは、これら2つのコマンドのタイミングが異なることに注意してください。「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と入力すると、さらにヘルプが利用できます。
これは、サービスが正常に開始および停止されたにもかかわらず発生します!!
私もここでこの投稿を見つけました、それは面白いかもしれません: サービスを開始できませんでした