Windows 10以前でサービスを削除する方法

ソフトウェアをアンインストールすると、サービスまたはドライバのエントリがレジストリに残り、Windowsは起動時にそれらをロードしようとして失敗し、起動するたびにシステムイベントログにエラーを記録しますか?

この投稿では、レジストリ、SC.exeコマンドライン、またはAutorunsを使用して、Windows 10、8、7、およびVistaで孤立したサービスを削除する方法について説明します。 先に進む前に、システムの復元ポイントや完全なレジストリバックアップを作成します。

Windowsでサービスを削除する方法

サービスに依存関係が存在しないことがわかった場合は、次のいずれかの方法を使用して、Windowsの残りのサービスまたは不要なサービスを削除できます。

方法1:SC.EXEコマンドを使用してサービスを削除する

WindowsのSCコマンドラインツールを使用して、サービスを作成、編集、または削除できます。 Windowsでサービスを削除するには、adminコマンドプロンプトから次のコマンドライン構文を使用します。

 sc delete service_name 

ここで、 service_nameは、表示名ではなく、サービスの短縮名またはキー名を指します。短縮名を見つけるには、Services MMCを開き、サービスをダブルクリックします。

  • 例1:自動更新の短縮名はwuauservで、表示名は「自動更新」です。
  • 例2:Google Updateサービス(gupdate)は表示名であり、 gupdateは短縮名です

サービスの短い名前を見つける別の方法は、次のコマンドラインを使用することです。

 sc getkeyname "サービス表示名" 

この例では次のとおりです。

 sc getkeyname "Google Update Service(gupdate)" 

上記の方法のいずれかを使用してサービスの短縮名を取得したら、次のコマンドを使用してサービスを削除します。

 sc削除テスト 

次の出力が表示されます: [SC] DeleteService SUCCESS

これにより、指定したサービス(この例では「テスト」サービス)がコンピューターから削除されます。

サービスが実行中の場合、または別のプロセスがサービスへのオープンハンドルを持っている場合、サービスは削除対象としてマークされ、次回の再起動時に削除されます。


方法2:Windows Sysinternalsから自動実行を使用してサービスを削除する

Microsoft Windows SysinternalsのAutorunsは、Windowsの起動、サービス、ドライバー、Winsockプロバイダー、Internet Explorerアドオン、シェル拡張などの管理に役立つ必須ツールです。

  1. Autorunsをダウンロードして実行する
  2. [オプション]タブで[ Microsoftエントリを非表示]を選択すると、サードパーティのエントリのみが表示されます。
  3. F5キーを押してリストを更新します。
  4. [ サービス ]タブをクリックします。ここから、不要なサービスや残ったサービスを削除できます。

  5. 自動実行を閉じます。

方法3:レジストリエディターを使用してサービスを削除する

Windowsレジストリからサービスを手動で削除するには、次の手順を実行します。

  1. Regedit.exeを起動し、次のブランチに移動します。
     HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services 

    サービスレジストリキー。

    上記のレジストリキーの下の各サブキーは、ドライバーまたはサービスを表します。 キー名は、サービスの短縮名でもあります。 また、レジストリエディタの右側のペインでDisplayNameImagePathの値を確認することで、エントリを簡単に識別できるはずです。

  2. 削除するエントリを見つけます。
  3. .regファイルにエクスポートして、適切なキーをバックアップします。
  4. エクスポートしたら、キーを右クリックし、[削除]を選択します。
  5. レジストリエディタを終了します。

方法4:PowerShellを使用してサービスを削除する

PowerShell管理者ウィンドウから、次のコマンドを使用してサービスを削除できます。

 $ service = Get-WmiObject -Class Win32_Service -Filter "Name = 'servicename'" $ service.delete() 

ReturnValue0 、操作が成功したことを示します。 サービスが削除され、サービスMMCに表示されるようになります。

戻り値の意味を知るには、Microsoftの記事Win32_ServiceクラスのDeleteメソッドを確認してください。

または、PowerShellでsc.exeコマンドを実行できます。 それもうまくいくでしょう。 ただし、PowerShellで実行する場合は、ファイル拡張子( sc.exe )を使用する必要があります。 これは、コマンドSC (拡張子.exeについては触れていません)が、PowerShellの組み込みコマンドレットであるSet-Contentとして解釈されるためです。

PowerShell 6.0をインストールすると、さらに簡単になります。 PowerShell 6以降では、次の構文を使用してサービスを削除できます。

 Remove-Service -Name ServiceName 

古いバージョンのPowerShell(6.0未満)でRemove-Serviceコマンドを実行すると、次のエラーが表示されます。 「Remove-Service」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。

サービスの依存関係を表示する

サービスを削除すると、そのサービスに依存する他のサービスが起動せず、エラー「 システムエラー1075が発生しました。 依存関係サービスが存在しないか、削除対象としてマークされています。」 ドライバまたはサービスのエントリがレジストリに残っているが、対応するファイルが見つからない場合、イベントログは、起動時に毎回ID:7000エントリを記録しID:7000

ログ名:システム

ソース:サービスコントロールマネージャー

日付:

イベントID:7000

レベル:エラー

説明:

次のエラーのため、DgiVecpサービスを開始できませんでした:

システムは、指定されたファイルを見つけることができません。

したがって、最初に依存関係があるかどうかを確認することをお勧めします。 削除するアイテムをダブルクリックして[依存関係]タブをクリックすると、サービスMMCでそのことを確認できます。 そのサービスに依存するコンポーネントのリストを以下に示します。 以下に例を示します。「Fax」は「Print Spooler」に依存して起動します。

ほとんどのサードパーティサービスには依存関係がありませんが、依存しているサービスもあります。 アイテムをクリアする前に、このタブを確認することを常にお勧めします。

依存関係を確認する別の方法は、コマンドプロンプトウィンドウからこのコマンドを実行することです。 (例、 印刷スプーラー

 sc enumdependスプーラー 

この記事の情報は、Windows 10を含むすべてのバージョンのWindowsに適用されます。

関連記事