web-dev-qa-db-ja.com

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

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は、自分のアンチウイルス(カスペルスキー)が自身の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)

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

編集:Kaspersky KLIFフィルターを無効にしましたが、ロックの問題が残っています。

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

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

25
DNS

以下をせよ:

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

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

それだ。

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

20
Kevin

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

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

ただし、最初に試すことができる別の方法があります。KLIFまたはキー名と同様の何かを探し、Startという名前のHKLM\SYSTEM\CurrentControlSet\Services値をREG_DWORDに設定することで(4の下で)ドライバーを無効にします(つまり、無効)、その後再起動します。これにより、KAVフィルタードライバーが読み込まれなくなります。その後、fltmcを使用して結果を確認できます。

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

編集: FYIだけluafvは、UACと連携したFS仮想化を担当します。つまり、配置されているファイルにアクセスできない場合FileInfoはSuperFetchに属します-これは実際には問題の一部である可能性がありますが、Windows 7でも同様の問題は発生していません。通常、SuperFetchを無効にすることはお勧めしません。できます。

6
0xC0000022L

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

1
David K

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

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

フォルダの名前を変更しようとすると、この問題が発生しました。名前の変更中にサーバーサービスを停止する必要がありました。サーバーサービスが再起動するとすぐにシステムプロセスがフォルダーを再度ロックしたため、再起動だけでは解決しませんでした。これはおそらく、言及された問題 here にも対処します。

0
BlackICE