Windowsで終わりを感じないことの1つは、古い共有違反エラーです。多くの場合、何が開いているのかを特定できません。通常、それは単に関連するディレクトリを指し示すエディターまたはエクスプローラーだけですが、時々マシンをリブートすることに頼らざるを得ませんでした。
犯人を見つける方法に関する提案はありますか?
Windowsで終わりを感じないことの1つは、古い共有違反エラーです。多くの場合、何が開いているのかを特定できません。通常、それは単に関連するディレクトリを指し示すエディターまたはエクスプローラーだけですが、時々マシンをリブートすることに頼らざるを得ませんでした。
犯人を見つける方法に関する提案はありますか?
回答:
Sysinternals Process Explorerで成功しました。これにより、ファイルを開いているプロセスを検索し、必要に応じてそれを使用してハンドルを閉じることができます。もちろん、プロセス全体を閉じる方が安全です。注意と判断を行います。
特定のファイルを見つけるにはFind->Find Handle or DLL...
、ファイルへのパスの一部に入力するメニューオプションを使用します。プロセスのリストが下に表示されます。
コマンドラインを使用する場合、Sysinternalsスイートには、開いているハンドルを一覧表示するコマンドラインツールHandleが含まれています。使用方法のいくつかの例:
c:\Program Files\SysinternalsSuite>handle.exe |findstr /i e:\
-ドライブEから開いたすべてのファイルを検索します。c:\Program Files\SysinternalsSuite>handle.exe |findstr /i file-or-path-in-question
これには、Windows 7、8、および10に組み込まれているリソースモニターを使用できます。
ハンドルが見つかったら、画像またはPID列、あるいはその両方を見てプロセスを特定できます。
その後、通常どおりにアプリケーションを閉じることができます。または、それが不可能な場合は、ハンドルを右クリックして、そこから直接プロセスを強制終了します。簡単!
私の元の答えからコピー:https : //superuser.com/a/643312/62
resmon
cmdから直接実行するだけ
openfilesコマンドを試してください。
openfiles /local on
して再起動することで「ローカルトラッキングを開く」サービスを有効にする必要があります。このため、この機能はあまり役に立ちません。
ハンドルを閉じるときは十分に注意してください。ハンドルリサイクルのため、思ったよりもさらに危険です。ファイルハンドルを閉じて、プログラムが別の何かを開くと、閉じた元のファイルハンドルがその「何か」に再利用される可能性があります。そして、実際にそのファイルハンドルが他の何かを指しているのに、プログラムが(ハンドルを閉じた)ファイルで動作していると考えて、プログラムが続行するとどうなるかを推測します。
このトピックに関するRaymond Chenの投稿を参照してください
検索インデックスサービスでインデックス作成のためにファイルを開いているが、一時的にスタックしていて、ファイルを削除したいので、(賢明ではないが)ハンドルを強制的に閉じたとします。検索インデックスサービスは、何らかの情報を記録するためにログファイルを開き、削除されたファイルへのハンドルは、ログファイルへのハンドルとしてリサイクルされます。スタック操作は最終的に完了し、検索インデックスサービスは最終的に、開いていたハンドルを閉じますが、ログファイルハンドルを無意識に閉じます。
検索インデックスサービスは、書き込み用の構成ファイルなどの別のファイルを開き、永続的な状態を更新できるようにします。ログファイルのハンドルは、構成ファイルのハンドルとしてリサイクルされます。検索インデックスサービスはいくつかの情報をログに記録するため、ログファイルに書き込みます。残念ながら、ログファイルハンドルは閉じられ、その構成ファイルでハンドルが再利用されました。ログに記録された情報は構成ファイルに入り、破損します。
一方、強制的に閉じられた別のハンドルは、データの破損を防ぐために使用されるミューテックスハンドルとして再利用されました。元のファイルハンドルが閉じられると、ミューテックスハンドルが閉じられ、データ破損に対する保護が失われます。サービスの実行時間が長くなるほど、そのインデックスはより破損します。最終的に、誰かがインデックスが誤った結果を返していることに気付きます。また、サービスを再起動しようとすると、構成ファイルが破損しているため失敗します。
検索インデックスサービスを行っている会社に問題を報告すると、インデックスが破損し、ログファイルのログ記録が不可解に停止し、構成ファイルがゴミで上書きされたと判断されます。貧しい技術者の中には、サービスがインデックスと構成ファイルを破損する理由を突き止めるという絶望的なタスクを割り当てられています。
Lockhunter(http://lockhunter.com/)は、32ビットおよび64ビットシステムで動作します。
明確にするために、これは、Windows自体にあるものよりも、CreateFile API呼び出しを正しく使用していないサードパーティアプリの誤動作の結果である可能性が高くなります。おそらく、それはCreateFileの設計の結果ですが、完了したので、戻ることはできません。
基本的に、Windowsプログラムでファイルを開くとき、共有アクセスを許可するフラグを指定するオプションがあります。フラグを指定しない場合、プログラムはファイルの排他的アクセスを取得します。
ここで、Explorerが犯人であると思われる場合、それは表面上のことであり、本当の犯人は、フォルダ内のすべてのファイルを独自の目的で開くシェル拡張機能をインストールするものである可能性がありますそうすることでガンホー、またはそれ自体が適切にクリーンアップしません。Symantec AVは以前にこれをやったことがありますが、他のAVプログラムが原因であるとしても驚かないでしょう。ソース管理プラグインにも問題がある可能性があります。
したがって、実際には答えではありませんが、誤って記述されたサードパーティプログラム(暗黙的なファイルロックを持っている他のOSでも発生する可能性がありますが、UnixベースのOSはデフォルト)。
リモートサーバーでは、ネットワーク共有を確認するときに、コンピューター管理コンソールのような単純なものでこの情報を表示し、ファイルを閉じることができます。
ファイルを開いたままにするApropos Explorer:「削除する必要があるファイルでこの問題が発生した場合、ハンドルを強制的に閉じるか、再起動するかを選択できます。」
Explorerを終了するだけです。
これが1回限りの場合(Explorerは通常、このファイルを開いたままにしない)、ログオフしてから再度ログオンするとうまくいくと思います。
それ以外の場合は、デスクトップエクスプローラープロセスを強制終了し、実行中に必要な操作を行います。最初にcmd.exeのコピーを開始します(目的のクリーンアップを行うにはUIが必要です)。デスクトップ以外のExplorerが実行されていないことを確認してください。次に、タスクマネージャーなどで最後のエクスプローラーを強制終了します。コマンドプロンプトで必要な操作を行います。最後に、コマンドプロンプトからエクスプローラーを実行すると、デスクトップになります。
一部のシステムトレイプログラムがシェルの再起動に対処できない場合、不快感が残る可能性があると思います。
ファイルは、ローカルプロセス(ロック解除ツールが使用するツールです)および共有を介したアクセスによりロックできます。
Windowsには、ローカルコンピューター上のどのファイルがリモートコンピューターによって開いている/ロックされているかを示すビルトイン関数があります(ファイル共有を介してファイルを開いています)。
* Select "Manage Computer" (Open "Computer Management")
* click "Shared Folders"
* choose "Open Files"
そこで、ファイルを強制的に閉じることもできます。
プロセスハッカーあなたはあなたのファイルを簡単に保持しているかのプロセスを識別することができます:
上記の回答は、プログラムプロセスがファイルハンドルを開いたままにしている状況をカバーしていますが、これは(幸いなことに)ほとんどの場合です-ただし、場合によっては(現時点でこのシステムで発生しているように)、システム自体がファイルハンドルを保持しています開いた。
この状況は、上記のプロセスエクスプローラーでファイルハンドル保持プロセスを見つけるための指示に従い、プロセス名が「システム」としてリストされていることを確認するか、リソースモニターを使用して画像が表示されないことを確認することにより、この状況を特定できます目的のファイルでファイルハンドルを開いてください(ただし、明らかにファイルを編集/削除できないなどの理由で何かが行われます)。
その場合は、(私が知る限り)再起動するか、そのファイルで何かをすることを忘れてください。
少し前にJeremy ZawodnyのブログでExteneded Task Managerをオンにしましたが、プロセスに関する詳細情報を追跡するのにも最適です。上記のProcess Explorerの場合も+1。特に、標準のタスクマネージャーが終了しないプロセスを強制終了する場合。
ツールFILEMONがあり、開いているファイルとハンドルが表示されます。ライブで見るとディスプレイに追いつくのが難しいので、すぐに表示されます。ただし、ライブ表示を停止して、すべてのファイルのオープン/書き込みアクティビティを監視できます。現在はMicrosoftが所有していますが、元はSysinternalsが所有しています