web-dev-qa-db-ja.com

コマンドプロンプトを使用してサービスを再起動する方法は?

Inno Setupを使用して[Icons]セクションのコマンドプロンプトを使用してWindowsサービスを再起動したい。問題を解決するのを手伝ってください。

24
Nithin

sc start [service]を使用してサービスを開始し、sc stop [service]を使用して停止できます。一部のサービスでは、net start [service]が同じことをしています。

ただし、同じバッチで使用する場合は、sc stopがサービスの停止を待たないことに注意してください。この場合、net stop [service]に続いてnet start [service]を使用する必要があります。これは同期的に実行されます。

32
Fischermaen

次の内容の.batファイルを作成できます。

net stop "my service name"
net start "my service name"
22
Seybsen
net.exe stop "servicename" && net.exe start "servicename"
5
oluies

実行中のサービスを再起動するには:

net stop "service name" && net start "service name"

ただし、サービスが最初に実行されているかどうかがわからず、再起動または開始する場合は、次を使用します。

net stop "service name" & net start "service name"

これは、サービスが既に実行されているかどうかにかかわらず機能します。

参考までに、条件処理シンボルの documentation を参照してください。

4
Jamie Cockburn

これは、SCコマンドを使用してWindowsサービスを開始/停止するための私のコードです。サービスの開始/停止に失敗すると、ログ情報が出力されます。 Inno Setupで試すことができます。

{ start a service }
Exec(ExpandConstant('{cmd}'), '/C sc start ServiceName', '',
     SW_HIDE, ewWaitUntilTerminated, ResultCode);
Log('sc start ServiceName:'+SysErrorMessage(ResultCode));
{ stop a service }
Exec(ExpandConstant('{cmd}'), '/C sc stop ServiceName', '',
     SW_HIDE, ewWaitUntilTerminated, ResultCode);
Log('sc stop ServiceName:'+SysErrorMessage(ResultCode));
2
LEo

[〜#〜] sc [〜#〜] コマンドを使用して、サービスの開始と停止、およびクエリを実行できます。 innosetupに関しては、よくわかりません。

1
rerun

PowerShellの機能は Restart-Service コマンドレット。必要に応じてサービスを開始または再起動します。

Restart-Serviceコマンドレットは、指定されたサービスのWindowsサービスコントローラーに停止メッセージを送信してから、開始メッセージを送信します。サービスがすでに停止している場合は、エラーを通知せずに開始されます。

サービスをサービス名または表示名で指定するか、InputObjectパラメーターを使用して、再起動する各サービスを表すオブジェクトを渡すことができます。

これは、2つの個別のコマンドを実行するよりも簡単です。

これを使用する最も簡単な方法は、サービス名または表示名を直接渡すだけです。

Restart-Service 'Service Name'

次のようなコマンドを使用して、標準のcmdプロンプトから直接使用できます。

powershell -command "Restart-Service 'Service Name'"
0
mwfearnley