自動vs自動(遅延開始)サービスのスタートアップの種類

Windowsのサービスコンソール( services.msc )では、Windowsサービスのスタートアップの種類を構成できます。 ご存知のように、ドロップダウンからオプションの1つを選択できます: 自動(遅延開始)自動手動 、または無効

しかし、自動と自動(遅延開始)の違いを知っていますか。

自動vs自動(遅延開始)スタートアップの種類

サービスの起動が[ 自動]に設定されている場合、起動時に読み込まれます。 組み込みのWindowsサービスが多すぎるため、Microsoftは最初にWindows Vistaで「遅延起動」の概念を導入して、Windowsのブートとログインのパフォーマンスを向上させました。 自動(遅延開始)サービスは、他のすべての自動開始サービスの後まで開始されません。

サービスコントロールマネージャーは、自動開始(「自動」)サービスを処理した後、 ScInitDelayStart()関数を呼び出して、自動(遅延開始)として実行するように設定されているサービスの起動に進みます。

すべての自動開始サービスがロードされると、システムはデフォルトで「遅延開始」サービスを2分(120秒)キューに入れます。 この間隔は、 AutoStartDelayという名前のレジストリDWORD(32ビット)値を作成し、次のレジストリキーで遅延(基本:10進数)を秒単位で設定することによって変更できます。

 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control 

これ以外は、サービスコントロールマネージャーは、遅延のない自動開始サービスを開始するのと同じ方法で「遅延開始」サービスを読み込みます。 自動(遅延開始)と自動スタートアップの種類の間に他の違いはありません。

$config[ads_text6] not found

Microsoft Performance Teamブログの引用:起動プロセスと自動開始の遅延

システムサービスの自動開始の遅延。 自動的に開始するように設定されたサービスの数の増加と、その後のブートパフォーマンスへの悪影響に対処するために、ブートプロセスの早い段階で開始する必要のないサービスの新しい開始タイプ、遅延開始があります。 これにより、サービスを自動的に開始できますが、ブートパフォーマンスが向上するという利点もあります。 遅延として開始するように設定されたサービスは、ブート直後に開始されます。

これはどのように機能するのでしょうか? サービスコントロールマネージャーは、すべての自動開始スレッドの開始が完了した後、遅延自動開始用に構成されたサービスを開始します。 また、サービスコントロールマネージャーは、これらの遅延サービスの初期スレッドの優先度をTHREAD_PRIORITY_LOWESTに設定します。 これにより、スレッドによって実行されるすべてのディスクI / Oの優先度が非常に低くなります。 サービスの初期化が完了すると、サービスコントロールマネージャーによって優先順位が通常に戻ります。 遅延起動、低いCPUとメモリの優先度、およびバックグラウンドディスクの優先度の組み合わせにより、ユーザーのログオンへの干渉が大幅に減少します。

バックグラウンドインテリジェント転送サービス(BITS)、Windows Updateクライアント、Windows Media Centerなどの多くのWindowsサービスは、この新しい開始の種類を使用して、システムの起動後のログオンパフォーマンスを向上させます。 サービスの遅延自動開始を構成するには、 HKLM\SYSTEM\CurrentControlSet\Services下にあるサービスの構成レジストリキーにDelayedAutoStartというREG_DWORD値を作成しHKLM\SYSTEM\CurrentControlSet\Services

自動および自動(遅延開始)スタートアップの種類のレジストリ値

たとえば、Windows 10 v1903では、配信最適化サービス( DoSvc )が自動(遅延開始)に設定されています。 サービスのスタートアップの種類の設定を格納するこのサービスのレジストリ値は次のとおりです。

 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ DoSvc値の名前:DelayedAutostart値の種類:REG_DWORD値のデータ:1 

DelayedAutostart値のデータが1場合、サービスは遅延開始に設定されています。 値がないか、または0に設定されている場合、遅延開始に設定されていません。

 HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ DoSvc値の名前:開始値のタイプ:REG_DWORD値のデータ:2 

Start DWORD値の場合、可能なデータは次のとおりです。

  • 2は自動です
  • 3は手動です
  • 4は無効です
関連: Windowsサービス構成のバックアップと復元(スタートアップの種類)
  • Start DWORDが2 (自動)以外に設定されている場合、1に設定されていても、 DelayedAutoStart値は無視されます。
  • Start DWORDが2 (自動)に設定されていて、 DelayedAutoStart0設定されているか、値が指定されていない場合、サービスは自動開始に設定されています(遅延なし)。

編集者注:サービスのスタートアップの種類を任意に変更すると、システムに問題が発生する可能性があります。 ほとんどの場合、サービス構成はWindowsのデフォルト設定のままにしておくことをお勧めします。 サービス構成を変更する場合は、現在のサービスのスタートアップ構成をバックアップするか、復元ポイントを作成するか、完全なレジストリバックアップを事前に作成してください。

関連記事