ファイルが存在しない場合、どうすればWindowsサービスをアンインストールできますか?


570

サービスファイルが存在しない場合、どうすれば.NET Windowsサービスをアンインストールできますか?

InstallUtilを使用して.NET Windowsサービスをインストールしました。それ以来ファイルを削除しましたが、実行するのを忘れました

 InstallUtil /u

最初。そのため、サービスはまだサービスMMCにリストされています。

レジストリにアクセスする必要がありますか?それとももっと良い方法がありますか?



2
最初にサービスも停止しましたか?(-> net stop yourservice)
Jos

非常に密接に関連するスレッドここに
RBT 2017年

私と私の希望は、この問題のお手伝いをします。このサイトのヘルプhowtogeek.com/howto/windows-vista/...
アーメドElbendary

回答:


1130

少なくとも3つのオプションがあります。使用優先度の高い順に示しました。

方法1-リソースキットに含まれているSCツール(Sc.exe)を使用できます。(Windows 7/8に付属)

コマンドプロンプトを開き、次のように入力します。

sc delete <service-name>

ツールのヘルプスニペットは次のとおりです。

DESCRIPTION:
        SC is a command line program used for communicating with the
        NT Service Controller and services.

delete----------Deletes a service (from the registry).

方法2 -delservを使用する

delservコマンドラインユーティリティをダウンロードして使用します。これは、Windows 2000用に開発されたレガシーツールです。現在のWindow XPボックスでは、方法1で説明したscに置き換えられました。

方法3-レジストリエントリを手動で削除します(これはWindows 7/8では逆効果になることに注意してください)

Windowsサービスは、次のレジストリキーに登録されています。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

参照キーの下にあるサービス名のサブキーを検索して削除します。(サービスをサービスリストから完全に削除するには、再起動が必要になる場合があります)


23
方法3は、Windows 7上でのバック火災に思える
rmiesen

29
方法1では、MMCでサービスが表示されますが、「指定されたサービスはインストールされたサービスとして存在しません」というエラーが発生する場合があります!!! これは、表示される名前がDisplayNameであるためです。HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Servicesツリーで実際のサービス名を検索し、それをservice-nameとして渡すことができます。
denispyr 2014年

9
方法3はWindows 7でも私にとって逆効果でした。サービスは現在、説明付きです<Failed to Read Description. Error Code: 2>
Zugwalt

27
scでpowershellを使用している場合は注意してください。アプリケーションをset-contentコマンドレットでオーバーライドし、sc delete blahを実行すると、
警告なしに

10
注:方法3を実行した後、コンピューターを再起動する必要があります!次に、サービスのリストを確認します。それはおそらくもうなくなっています。まだリストにある場合は、方法1を実行してリストから削除します。
東のどこにも

170

コマンドプロンプトから、Windowsの「sc.exe」ユーティリティを使用します。次のように実行します。

sc delete <service-name>

21
サービス名にスペースがある場合は、二重引用符で囲みます。
geoffc 2013年

2
[SC] OpenService Failed 5:アクセスが拒否されました。
エイドリアンエンリケス

11
@AdrianEnriquez、管理者としてcmd.exeを実行すると、これが修正されました。
折りたたみレタス2014

3
コマンドを使用した後のWindows 8では、サービスはMMCリストに無効なステータスで表示されます。再起動すると、リストからサービスが削除されます。
ライアン

1
これの特権を昇格させる方法はありますか?上記のコマンドを入力した後も「アクセスが拒否されました」というメッセージが表示される
Nick

27

Windows 8で「sc delete」を使用する際の注意:

1)昇格された特権でCMDウィンドウを開きます。[オプション付きのメニューを表示するWindows Key-X; [コマンドプロンプト(管理者)]を選択します。]
2)サービスの一覧からかっこで囲まれた名前を使用します[たとえば、サービスで[Google Update(gupdate)]と表示されているときに "sc delete gupdate"を使用しました]


22

sc delete答えとして言及する人もいます。これは私がやった方法ですが、<service-name>パラメータを見つけるのにしばらく時間がかかりました。

コマンドsc query type= service(フォーマットは非常に特殊で、「サービス」が必要になる前のスペースに注意してください)は、インストールされたWindowsサービスのリストを出力しますsc delete <service-name>。コマンドで使用する修飾名も含まれています。

リストは非常に長いので、出力をテキストファイル(つまり>> C:\test.txt)にパイプ処理してから、それを検索することを検討できます。

SERVICE_NAMEで使用する1つであるsc delete <service-name>コマンド。


2
受け入れられた回答に関する私のコメントを参照してください。サービス名は、[Services]パネルでサービスの[Properties]シートを確認することですばやく判別できます。
donperk '15

2
それは全く不要だった:彼らはサービスのリストに表示すれば、あなただけの、あなたがサービスリストから削除したいサービスのプロパティを開くことができるサービスのリスト、そしてそれはあなたのサービス名が表示されます。プロパティに記載されている「サービス名」も同じサービス名です。:)
ネミネム2017

2
ええ、私はあなたが他の方法で名前に到達できることを知っています。これを追加したのは、コマンドで使用する名前を特定するのに苦労したためです。サービスのプロパティにリストされている名前を見たことがありますが、そのときにコマンドで使用する名前を知りませんでした。コマンドラインを使用することは、削除に使用する<service_name>を含め、インストールされているすべてのサービスをダンプするための良い方法でした。これを必要とするサービスがいくつかあったので、リスト全体をファイルにダンプする方が簡単だったので、サービススナップインでリストを調べなくても、サービスにアクセスできました。
ロビンフランス語

sc queryデフォルトでそのまま実行できtype= serviceます。
Ian Kemp

11

レジストリ経由でWindowsサービスを削除する

正しいパスを知っている場合、レジストリからサービスを削除するのは非常に簡単です。ここに私がそれをした方法があります:

  1. RegeditまたはRegedt32を実行します。

  2. レジストリエントリ「HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services」に移動します。

  3. 削除するサービスを探して削除します。キーを見て、サービスが使用していたファイルを確認し、それらを削除することもできます(必要な場合)。

コマンドウィンドウからWindowsサービスを削除する

または、コマンドプロンプトを使用し、次のコマンドを使用してサービスを削除することもできます。

sc削除

次のコマンドを使用してサービスを作成することもできます

sc create "MorganTechService" binpath = "C:\ Program Files \ MorganTechSPace \ myservice.exe"

注:Service Managerでリストを更新するには、システムを再起動する必要がある場合があります。


9

そのためのツールを使用したい場合は、Process Hackerを使用できます。

サービスを作成するためのフォーム:

プロセスハッカー作成サービス

削除するサービスのコンテキストメニュー:

プロセスハッカー削除サービス

Process Hackerは、WindowsのTaskmgr.exeよりもWindowsのプロセスとサービスを管理するためのより便利なツールだと思います。特にWindows XPでは、タスクマネージャーからサービスにまったくアクセスできません。


4

Tomcatサービスを再インストールする必要がありました。つまり、最初にそれを削除しました。これは私のために働きました:

Start a command prompt window using run as administrator

sc query type= service >t.txt

(ファイルt.txtを編集し、リストを検索してtomcatサービスを見つけます。Tomcat7と呼ばれます)

sc delete Tomcat7

ただし、tomcatサービスが実行されていなかったため、クエリコマンドは最初は機能しませんでした。実行中のサービスのみが表示されているようです。サービスを開始して、もう一度queryコマンドを実行する必要がありました。


停止したサービスを表示する場合は、stateパラメータを使用します。
ハリージョンストン、

3

元のService .InstallLogファイルと.InstallStateファイルがフォルダーに残っている場合は、実行可能ファイルを再インストールしてファイルを置き換え、InstallUtil / uを使用してプログラムをアンインストールできます。少し複雑ですが、私にとっては特定の場合に機能しました。



0

最初のステップ:サービスが存在するディレクトリに移動します

コマンド:cd c:\ xxx \ yyy \ service

2番目のステップ:以下のコマンドを入力します

コマンド:C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe service.exe \ u

ここでservice.exeはサービスexeであり、\ uはサービスをアンインストールします。「アンインストールが完了しました」というメッセージが表示されます。

サービスをインストールする場合は、サービスをインストールする上記のコマンドで\ uを削除します


3
OPは、元のファイルが削除されたことを明確に述べています。
AFract

0

を実行してもsc_delete、サービスのレジストリにエントリが残っている可能性があるため、サービスを再インストールすると、レジストリエントリのセットが破損します(一致しません)。私たちが行ったのは、regeditこの残りのエントリを手作業で削除することです。

注:Ship_unkServiceはsc_deleteの後もまだ表示されます!

その後、再インストールすると、サービスが正しく実行されます。幸運をお祈りします。力があなたと共にありますように。


0

コマンドプロンプトでWindowsサービスをアンインストールすることもできます。このコマンドを入力するだけです。

cd\                                                                   

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(or version in which you developed your service)                                           

installutil c:\\xxx.exe(physical path of your service) -d

0

-Windows+r cmdを開きます。

-sc YourSeviceName このコードはサービスを削除します。

-Uninstal "YourService Path" このコードはサービスをアンインストールします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.