2011年10月30日日曜日

Windowsでサービスの状態を確認するコマンド

Windowsで動作しているサービスを操作する時、netコマンドで操作したことはありました。

net start サービス名


net stop サービス名


とかです。


端末にSQLServerとか入れているのですが、、普段は端末のリソースを少なからず喰うので、サービスを「自動」とかにはしておかず、「手動」にしています。利用したい時には、

net start mssqlserver

とか、打って起動したり、バッチファイルで、

cmd /c net start mssqlserver

とか作成しておいて、そのバッチファイルをダブルクリックして起動したり。


でも、いざという時、サービス名が思い浮かばなくて困るなんてことがありました。
そこで、サービス名を表示するコマンド。

sc query state= all | findstr /i "display_name state"


以下に、簡単にメモメモ。

sc query

だけでも動作しますが、それだと動作中のサービスだけが表示されるので、

sc query state= all

で停止中も含めて全サービスを確認。「=」と「all」の間にもスペースが必要なことがポイントです。
さらに各サービスの表示情報を絞り込まないと、えらい行になってしまうので、

sc query state= all | findstr /i "display_name state"

として表示用のサービス名と状態だけに絞り込みます。

net start サービス名

のサービス名は、上記のdisplay_nameになるんですね。
(ちなみに、sc自体にも、サービスの開始や停止を実施できるそうです)


で、これがまた、他の端末のも確認できるそうな。

sc \\192.168.1.XXX query state= all | findstr /i "display_name state"

みたいにする...とな。