指定されたサービスは削除するようにマークされました。
あるWindowsサービスを削除しようとして、sc delete <service name>
を実行したところ、次のようなエラーが発生しました:
SC] DeleteService FAILED 1072:
[SC] DeleteService FAILED 1072: >; 指定されたサービスは削除されました。
既にやったこと:
-
サービスを停止しました。sc queryex "<サービス名>"`を実行すると、以下の結果が得られます:
SERVICE_NAME:スタブサービス タイプ : 10 win32_own_process 状態 : 1 停止中 WIN32_EXIT_CODE : 1067 (0x42b) SERVICE_EXIT_CODE : 0 (0x0) チェックポイント : 0x0 WAIT_HINT : 0x0 PID : 0 FLAGS :
-
Microsoft Management Console が終了したことを確認]1 (
taskkill /F /IM mmc.exe
)、 -
イベントビューアが終了していることを確認]2、
-
レジストリからHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesキーを削除しました]3。
この削除により、
services.msc
はまだサービス(名前は表示されるが、ステータスやスタートアップの種類は表示されない)を表示するが、その説明は「<Failed to Read Description.エラーコード:2 >」となっている。プロパティを表示しようとすると、「システムが指定されたファイルを見つけられません」と5回表示されます。
問題は解決しない。
次のステップは何ですか?
534
17
サービスが "削除マーク "で止まってしまう原因はいくつか考えられます。
1.SysInternals' Process Explorerが開かれている。これを閉じると、サービスは自動的に削除されます。
1.タスクマネージャーを開く。
1.Microsoft管理コンソール(MMC)を開く。すべてのインスタンスが終了していることを確認するために、
taskkill /F /IM mmc.exe
を実行します。1.サービスコンソールを開く。サービスコンソールはMMCによってホストされているので、これは前のポイントと同じです。
1.イベントビューアを開く。これも3つ目と同じです。
1.キー HKEY_LOCAL_MACHINE}/SYSTEM}/CurrentControlSet}/Services}/{サービス名} が存在する。
1.他の誰かがサーバーにログインしていて、前述のアプリケーションのいずれかを開いている。
1.サービスのデバッグに使用するVisual Studioのインスタンスが開いている。
これは、サービスコンソールを開いたままにしておくことでも起こります。 Windowsはサービスを閉じるまで、実際にサービスを削除することはありません。
私の場合、「サービス」を閉じた後に機能しました。
Services.msc
が開いているかどうかを確認し、開いている場合は閉じて、サービスのプロセスがTask Manager
にあることを確認します。私も同じ問題を抱えていましたが、ついにサービスプロセスを殺すことにしました。
以下の手順を試してください。
-サービスのプロセスIDを取得します。
-プロセスを殺します。
つまり、サービスはservices.mscで無効としてリストされています。 services.mscを閉じて、管理者として再度開きます。.. サービスはリストされません。 次に、コマンドを使用してサービスをインストールします。
installutil「サービスの道」。
上記で提案したようにレジストリキーを削除すると、サービスが停止状態になりました。 次の手順でうまくいきました。
タスクマネージャーを開く> [サービス]タブを選択>サービスを選択>右クリックして[プロセスに移動]を選択します>プロセスを右クリックし、[終了プロセス]を選択します。
その後、サービスは終了する必要があります。
確認すべきもう1つのことを発見しました-タスクマネージャーを見てください-他のユーザーがこのボックスに接続されている場合、ユーザーが「切断」されている場合でも、実際にサインアウトしてサービスを最終的に削除する必要があります。
Windows 7より後のWindowsバージョン(未検証ですが、Windows Server 2012 R2の最新の経験により)では、Service Control Manager(SCM)がより厳格であるようです。
Windows 7では別のプロセスが生成されるだけですが、サービスプロセスがまだ残っているかどうかを確認しており、サービスが停止しているように見えても、CreateService / DeleteServiceへの後続の呼び出しに対してERROR_SERVICE_MARKED_FOR_DELETE(1072)を返す場合があります。
ここでWindows APIコードについて話していますが、何が起こっているのかを明確に概説したいので、このシーケンスが言及されたエラーにつながる可能性があります。
。
SERVICE_STOPPED状態がすでに報告された後も、サービスプロセスがまだ存在している理由は驚くに値しません。 これは通常のプロセスであり、メインスレッドは「StartServiceCtrlDispatcher」APIへの呼び出しで「スタック」されるため、最初にストップコントロールアクションに反応しますが、残りのコードシーケンスを実行する必要があります。
SCM / OSがこれを適切に処理していないのは残念です。 プログラムによる解決策は、シンプルで正確です。サービスを停止する前にサービス実行可能ファイルのプロセスハンドルを取得し、このハンドルが信号を受け取るのを待ちます。
システム管理の観点から問題に取り組む場合、解決策はサービスプロセスが完全に消えるのを待つことでもあります。
これが私にとってうまくいったことです。 -私は同じ問題にぶつかりました:私のサービスは「削除のマーク」で立ち往生していました。 -services.mscをオープンしました。 私のサービスは実行中として表示されましたが、すでにアンインストールされていました。 -ストップをクリックしました。 サービスが制御メッセージを受信する状態ではないというエラーメッセージを受信しました。 それにもかかわらず、サービスは停止されました。 -閉鎖services.msc。 -services.mscを再開しました。 -サービスが終了しました(サービスのリストに表示されなくなりました)。
(環境はWindows 7でした。)。
私の場合、「taskkill / f / im dongleserver.exe」を実行します。 ここで、「dongleserver.exe」は私のプログラムのexeファイルです。
その後、すでにプログラムを再インストールできます。
私の場合は、eventLogソースを作成する際に発生した未処理の例外が原因でした。try catchを使って原因を突き止めましょう。
現在開いているすべてのウィンドウを閉じてから、次のコマンドを実行すると、問題が解決しました。
Application Verifierを使用して勝利サービスを確認しているときに、この問題が発生していました。 App Verを閉じた後でも、サービスは削除されませんでした。 App Verからサービスを削除するだけで問題が解決し、サービスはすぐに削除されました。 削除を試みた後も、一部のプロセスがサービスをまだ使用しているようです。
従うべきステップ:。
step-1 場所C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319を取得しました。
step-2 runコマンド:installutil / u full-path / servicename.exe。
step-3 サービスパネルを閉じて、再度開きます。
step-4 runコマンド:installutil full-path / servicename.exe。
ほとんどの場合、サービスの削除は失敗します。
サービスを停止するときにエラーをスローします。 試してキャッチに物を包むと、削除エラーのマークが防止されます。
}。
@MainMaによって提供された手順がうまくいかなかった場合は、次の手順に従ってください。
ステップ1 Windowsタスクマネージャーからプロセスを終了するか、タスクキル/ F / PID< Service PID>を使用してみてください。 . コマンド 'sc queryex< service name>'でプロセスのpidを見つけることができます。 それでもアンインストールできない場合は、次のステップを試してください。
ステップ2上記の場合。
Autoruns for Windowsを実行します。名前でサービスを検索し、結果を削除します。
エラーの主な理由は、プロセスが停止しないことです。 それを解決するには、タスクマネージャーがサービスに移動し、そのサービスのプロセスと終了プロセスに移動するよりも、サービスを確認できるかどうかを確認します。 問題よりも完全に解決されます。