サービスのスタートアップ一覧

windowsを使っていると、たまにサービスの起動状態を見直したい場合があります。

不要なサービスを起動しないようにするのが主な目的でしょうか。

ただ、何を変更したかあとでわかるようにしたいとも思ったりして、、、

調べてみるとscというコマンドが使える、が、一発でサービス全列挙というのはできないようで。

そしたらこちらにまさしくズバリそのものがありました。

http://d.hatena.ne.jp/papermelt/20110918/1316341039

動作が少し遅いのと、自動(遅延)に対応してないとのことで少し改造しました。

@echo off
title サービス起動設定をエクスポートする
echo 調査中…
sc query state= all type= service|findstr SERVICE_NAME>TEMP.TXT
for /F “tokens=*” %%i in (‘hostname’) do set FILENAME=サービス起動設定ファイル_%%i_%DATE:/=%.txt
echo>%FILENAME% [サービス起動設定ファイル]
for /F “tokens=*” %%i in (TEMP.TXT) do call :SUB “%%i”
del TEMP.TXT
goto :EOF
:SUB
set SERVICE_NAME=%~1
for /F “tokens=*” %%x in (‘sc qc “%SERVICE_NAME:~14%”^|findstr START_TYPE’) do set START_TYPE=%%x
if “%START_TYPE:~25%”==”BOOT_START” set START_TYPE2=boot
if “%START_TYPE:~25%”==”SYSTEM_START” set START_TYPE2=system
if “%START_TYPE:~25%”==”AUTO_START” set START_TYPE2=auto
if “%START_TYPE:~25%”==”AUTO_START  (DELAYED)” set START_TYPE2=delayed-auto
if “%START_TYPE:~25%”==”DEMAND_START” set START_TYPE2=demand
if “%START_TYPE:~25%”==”DISABLED” set START_TYPE2=disabled
echo %SERVICE_NAME:~14% is %START_TYPE2%
echo>>%FILENAME% %START_TYPE2%/%SERVICE_NAME:~14%
goto :EOF

こんな感じで出力されます。

disabled/clr_optimization_v2.0.50727_32
delayed-auto/clr_optimization_v4.0.30319_32

動作確認はWindows7です。

インポートの方は作ってません。現状を残したいだけなので。

2014-7-7 追記

自動(遅延)の delayed-auto が出ませんという方、失礼しました。
16行目の「”AUTO_START (DELAYED)”」の間のスペースは2ヶなんです。
ちゃんと2ヶ入れてあったんですがHTMLで詰められるのを忘れていました。
修正しました。