Windows
 Computer >> コンピューター >  >> システム >> Windows

「遅延自動開始フラグを設定できませんでした」エラー87・エラー5の解決方法【Windowsサービス】

Windows 10でサービスのスタートアップの種類を「自動(遅延開始)」に変更しようとした際、「遅延自動開始フラグを設定できませんでした。エラー87:パラメーターが正しくありません」「エラー5:アクセスが拒否されました」といったエラーが表示されることがあります。本記事では、この問題の原因と具体的な解決方法を詳しく解説します。

なぜサービスの遅延開始が必要なのか

PCの性能に対する期待は年々高まっており、ユーザーはより速く効率的に動作するパソコンを求めています。起動時間を短縮するための有効な手段の一つが、Windows起動時に自動的に開始されるプログラムやサービスの数を減らすことです。

ただし、サービスを完全に無効化するとシステムの機能に支障をきたす場合があります。そこで役立つのが「遅延開始」です。これは、サービスの開始を完全に止めるのではなく、起動後しばらく経ってから開始させることで、起動速度と利便性を両立できる方法です。

しかし、ここで問題が発生することがあります。一部のユーザーからは、ブート時にサービスのスタートアップを遅延させようとしてもできないという報告があり、サービス管理ツール(services.msc)で変更を試みると、次のようなエラーが表示されます。

遅延自動開始フラグを設定できませんでした。エラー87:パラメーターが正しくありません。

または

遅延自動開始フラグを設定できませんでした。エラー5:アクセスが拒否されました。

これらのエラーは、特にOneSyncSvcサービスの設定変更時に発生しやすいことが知られています。以下では、エラーの意味と対処法を紹介します。

「遅延自動開始フラグを設定できませんでした」エラーの解決方法

同じ問題に直面しても、適切な手順を踏めば解決できます。主な対処方法は以下の3つです。

  1. レジストリエディターで遅延自動開始を設定する
  2. PowerShellを使用する
  3. サービスグループから除外する(非推奨)

注意:作業を始める前に、必ずシステムの復元ポイントを作成しておきましょう。万が一問題が発生しても元の状態に戻せるようにできます。

1. レジストリエディターで遅延開始を設定する

Windows + Rキーを同時に押して「ファイル名を指定して実行」ダイアログを開き、「regedit」と入力してEnterキーを押します。

レジストリエディターが開いたら、以下の場所へ移動します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

ここから、遅延開始に設定したいサービスを探します。例として、Windows Search(WSearch)を挙げます。DelayedAutostartの値を確認してください。

HKLM\SYSTEM\CurrentControlSet\services\WSearch\DelayedAutostart

各値の意味は以下の通りです。

  • 0 – 遅延開始に設定されていない
  • 1 – 自動(遅延開始)

遅延開始を有効にするには、この値を1に設定します。

次に、同じ場所にあるStartの値を確認します。

HKLM\SYSTEM\CurrentControlSet\services\WSearch\Start

Start DWORDの値は以下の通りです。

  • 2 – 自動
  • 3 – 手動
  • 4 – 無効

重要なのは、Startの値が2(自動)以外の場合、DelayedAutostartが1に設定されていてもその値は無視されるという点です。そのため、Startの値が2になっていることを確認してください。この設定により、エラーを回避して遅延開始を適用できます。

2. PowerShellを使用する

Windowsキーを押して「PowerShell」と検索し、結果に表示されたWindows PowerShellを右クリックして「管理者として実行」を選択します。

PowerShellウィンドウで以下のコマンドを入力し、Enterキーを押して実行します。

Get-Service -Name ServiceName | Set-Service -StartupType AutomaticDelayedStart

注意:上記コマンドの「ServiceName」部分は、実際に操作したいサービス名に置き換えてください。

3. サービスグループから削除する(非推奨)

多くのサービスはサービスグループのメンバーです。これらのグループの多くは、レジストリ内のServiceGroupListに登録されており、サービスが起動される順序を制御しています。特定の順序で起動しなければならないサービスも多く、そうしたグループに属するサービスは遅延開始に設定できません。

「アクセスが拒否されました」エラーが表示される場合、そのサービスは何らかのサービスグループに所属しており、特定の順序での読み込みが求められている可能性が高いです。こうしたサービスは他のサービスに依存しており、レジストリのServiceGroupListによって制御されているため、スタートアップの種類を変更しないことをお勧めします

それでも変更したい場合は、以下のレジストリの場所からGroupの値を削除することで対応できます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName

注意:「ServiceName」は対象のサービス名に置き換えてください。

作業完了後は、パソコンを再起動して変更を反映させましょう。

まとめ

サービスの遅延開始設定時のエラー87(パラメーターが不正)やエラー5(アクセス拒否)は、レジストリの値確認やPowerShellコマンドの活用で解決できることが多いです。ただし、サービスグループに属するサービスへの安易な変更はシステム不安定化の恐れがあるため、事前に復元ポイントを作成し、慎重に作業を行ってください。

  1. Windowsで「ネットワークのプロキシ設定を自動的に検出できませんでした」エラーが出たときの対処法

    Windowsのネットワーク接続アイコンに黄色い「!」マークが表示されたことはありませんか?これは非常にストレスの多いトラブルです。このエラーは、Windowsがインターネットに接続できなくなったときに発生することが多く、PC内のファイル破損が原因の場合もあります。Windowsには標準でトラブルシューティングツールが搭載されていますが、実行すると次のようなメッセージが表示されることがあります。 「Windowsがこのネットワークのプロキシ設定を自動的に検出できませんでした」 しかし、諦める必要はありません。Windowsのプロキシ設定の問題を解決する方法はいくつもあります。 この記事では、「

  2. Windows 10で「指定されたモジュールが見つかりません」エラー(0x0000007e)を修正する方法

    「指定されたモジュールが見つかりません」というエラーに悩んでいませんか?0x0000007eエラーの最適な解決方法をお探しの方は、まさにうってつけの記事です。本記事では、この問題の概要と具体的な解決策について詳しく解説します。 「指定されたモジュールが見つかりません」はDLLエラーの一種で、主にWindowsの起動時に表示されます。場合によっては、インターネットに接続したときや特定のアプリケーションを使用した際にも発生することがあります。幸い、この問題の修正はそれほど難しくありません。 無効なレジストリエントリの削除、マルウェアの駆除、破損したシステムファイルのチェックと修復を行うことで、この