アプリが終了した後、SYSTEMが実行可能ファイルハンドルのロックを続けるのはなぜですか?


24

Windows 7マシンで奇妙な動作が見られます。実行可能ファイルが実行されると、SYSTEMはそのハンドルを1分ほど開いたままにするようです。これが私の最新の出会いです。

Steamをインストールしました。これにより、steam.exeのポストインストールが開始され、それ自体が更新されます。これを行うには、自分自身の一時コピーを作成し、それを起動してダウンロードを実行し、実行可能ファイルの元のコピーを上書きします。私の場合、これは失敗し、steam.exeを削除できないと主張しました。

フォルダーを開いて、steam.exeを手動で削除しようとしましたが、Windowsは権限がないと主張しました。私のアカウントは管理者であり、このマシン上の唯一のユーザーアカウントです。ただし、念のため、エクスプローラーを管理者として起動しましたが、それでもファイルを削除できませんでした。ファイルの[プロパティ]を[セキュリティ]タブに表示しましたが、アクセス許可を表示する権限がないというメッセージのみが表示されました。

次に、Process Explorerを呼び出して、ファイルにロックがかかっているかどうかを確認しました。SYSTEM(PID 4)は行いましたが、ファイルハンドルを閉じようとしたときに、ハンドルが無効であることを示すエラーが生成されました。ファイルハンドルプロパティを表示しようとしましたが、それを行う権限もありませんでした。

終了しないシステムプロセスを除くすべてを終了し、AVおよびファイアウォール関連のすべてを含む、可能なすべてのサービスを停止しましたが、問題は引き続き発生します。「takeown」を使用してファイルの所有権を取得しようとしましたが、それを行う権限がないと主張しています。他の人々は「Unlocker」というツールを使用して成功したと主張していますが、ファイルハンドルを閉じる際にProcess Explorerと同じ問題がありました。

私はずっと前にWindowsのインデックスと検索を無効にし、C:\をインデックスから除外したため、この質問に対する答えは私には当てはまりません。

毎分、およそ1分後、ハンドルは消え、ファイルはすぐに削除されます。どうやらアップデーターによる削除の試みはキューに入れられ、ファイルがロックされなくなると最終的に終了しました。残念ながら、更新は既に終了しており、再開できません。そして、私が再インストールすると、もちろん、steam.exeを再度実行しようとします。

私の質問は、これらのハンドルがぶら下がっているのはなぜですか?

編集:コメントから要求された追加情報は次のとおりです。

C:\>fltmc instances
Filter                Volume Name                              Altitude        Instance Name      Frame  VlStatus
--------------------  -------------------------------------  ------------  ---------------------  -----  --------
KLIF                  \Device\Mup                             320400       KLIF                     0
KLIF                  C:                                      320400       KLIF                     0
KLIF                                                          320400       KLIF                     0
luafv                 C:                                      135000       luafv                    0
FileInfo              \Device\Mup                              45000       FileInfo                 0
FileInfo              C:                                       45000       FileInfo                 0
FileInfo                                                       45000       FileInfo                 0

編集:GMERは、ウイルス対策(Kaspersky)が独自のGUIから無効にし、サービスが停止しているにもかかわらず、何らかの形でまだアクティブであることを示しています。

AttachedDevice  \Driver\tdx \Device\Ip     kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\Tcp    kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\Udp    kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\RawIp  kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)

しかし、これらはすべてネットワークサービス用のようです。ファイルシステムに関連するものは見当たりません。これらのいずれかが問題の原因になりますか?

編集:カスペルスキーKLIFフィルターを無効にしましたが、ロックの問題は残ります。

編集:Steam.exeを起動する前にインストーラーをインストールして強制終了し、セーフモードで再起動してそこで実行することで、Steamの特定の問題を解決しました。したがって、どうやら実行可能ファイルをロックしているものはすべてセーフモードでは存在しません。

この特定のケースは解決しましたが、問題は他の場所でも発生するため、何が起こっているのかを引き続き理解したいと思います。


3
「システム」は、(大まかに言えば)Windowsカーネルを表す擬似プロセスです。明確な回答を得るには、構成に関する詳細情報(たとえば、ユーザーのフィルタードライバーの種類)が必要です。
0xC0000022L

その追加情報を取得する最良の方法は何ですか?
DNS

それらがミニフィルターであるfltmc場合、それらがレガシーフィルターであるかどうかを確認してください。フィルター処理されたオブジェクトをリストするには、GMERなどのツールが必要です。GMERの主な目的ではないことを知っていますが、そのように使用できます。OSRのツールも使用されていましたが、その名前は思い出せません。覚えていれば再度返信します。
0xC0000022L

これは、ファイルを繰り返し閉じて再度開くプログラムの最適化です。「アプリケーションエクスペリエンス」サービスは、ハンドルがまだキャッシュされている間にWindowsエクスプローラーから削除しようとするような特別な場合の最適化を無効にします。
user165568

回答:


20

以下をせよ:

  1. 問題のある場所でインデックス作成を無効にします。

  2. 「アプリケーションエクスペリエンス」サービスを有効にして、「自動」に設定します。

それだ。

それでも問題が解決しない場合は、Superfetchである可能性がありますが、無効にすることで私には運がありません。


5
#2(「アプリケーションエクスペリエンス」サービスの有効化)がうまくいきました、ありがとう!EXEを繰り返し再コンパイルする必要があるため、LIVEditor(ライブhtmlエディター)ソフトウェアをデバッグするときは本当に苦労しました。
エドウィンイップ

1
インデックス作成は無効にする必要はありませんでしたが、幸いなことにアプリケーションエクスペリエンスを自動に設定するだけで機能しました。修正がそんなに簡単だった過去5年間、私がこの問題を抱えていたとは信じられません。
モッドレッド

あなたを過ぎて、私はあなたを愛して!
enthus1ast

AeLookupSvcうまくいきましたが、なぜですか?この神秘的なサービスとは何ですか?
cdlvcdlv

6

KLIFはKaspersky AVドライバーです。むしろそれが関係している可能性が高いです。

このような場合の私の行動方針は、カスペルスキーに連絡して助言を求めることです。

ただし、最初に試すことができるもう1つの方法があります。キー名またはそれに類似したものをHKLM\SYSTEM\CurrentControlSet\Services探して(無効を意味する)値KLIFを設定してドライバを無効にし(無効)、再起動します。これにより、KAVフィルタードライバーが読み込まれなくなります。その後、結果の検証に使用できます。REG_DWORDStart4fltmc

指定したGMERからの出力は、ファイル操作ではなくネットワーク接続にのみ影響するため、目前のケースには関係ありません。カスペルスキーインターネットセキュリティのようなものがインストールされているようです(または、まだマシン上で休止しています)。

編集:ちょうどFYI luafvがUACと連携してFS仮想化を担当します。つまり、ファイルにアクセスできない場合は、プロファイル内の別のフォルダーに入れられます。FileInfoSuperFetchに属します-実際にはあなたの問題の一部である可能性がありますが、私はWindows 7でも同様の問題を抱えていません。通常、SuperFetchを無効にすることはお勧めしませんが、可能です。


そのキーの値を変更することはできませんので、セーフモードで再起動し、そこで変更を行いました。再起動すると、KLIFエントリはfltmc出力から消えますが、ロックの問題は残ります。
DNS

もう少し情報を追加しました。質問に対する最近の編集を参照してください。
DNS

@DNS:fltmcセーフモードで出力を取得しようとしましたか?SuperFetchがアクティブでない可能性は十分にあります。SuperFetchを読むと、ハンドルをもう少し長く持っているという説明がもっともらしいように思えます。
0xC0000022L

これは非常に良い考えですが、悲しいことにFileInfoとluafvはどちらもセーフモードでアクティブでした。
DNS

これらの最新の「インターネットセキュリティ」スイートは、大したことはほとんどありません。MSE +常識で十分です。
キノキジュフ

1

Java実行可能ファイルを開いたままにしてこの問題が発生し、アプリケーションエクスペリエンスを無効にしました... ありがとう!!! (ファイルが1分間保存されず、ファイルを閉じてから1分経過するまでファイルを削除できないという問題もありました...


アプリケーションエクスペリエンスを無効にする方法
サイモンシーハン

すべてのWindowsサービスコントロールポイントが実行します-[スタート] >> [実行] >> [services.msc](入力)>>右クリック[アプリケーションエクスペリエンス] >>左クリック[プロパティ] >>タブ[全般](デフォルト)を選択> >「スタートアップの種類」ドロップダウンリストボックス>>「適用」をクリックし、自動(左クリック)を選択
デビッド・K

1

これは私に一度起こり、共有フォルダーを開いたリモートコンピューターであることが判明しました。

  1. Handleを使用して、ファイルを保持しているプロセスを見つけます。
  2. (私の場合はシステムでした)
  3. ハンドルを閉じてください:handle.exe -c E14 -p 4。ファイルハンドルは、ファイルハンドルの検索結果に表示され、プロセスIDはシステムと同じになる可能性があります。
  4. 出力しました Error closing handle: T
  5. これをグーグルで検索すると、ネットワークに関連することがわかりました
  6. 別のマシンで見つけましたが、実際にはフォルダを開いていました。閉じた。すべて良い。

0

フォルダの名前を変更しようとしたときにこの問題が発生しました。名前変更の実行中にサーバーサービスを停止する必要がありました。サーバーサービスが再起動するとすぐにシステムプロセスがフォルダーを再ロックするため、再起動だけでは役に立ちませんでした。これにより、ここで説明した問題も解決される可能性があります。

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