1

Windows でファイルを作成したプロセス名を取得する良い方法はありますか?

Windows 2000 Server
C:\WINNT\Temp
に、 70618199
21834082 のような名前のファイルでいっぱいになっているディレクトリがあります。

サイズは常に 121,201 KB です。

この場所にファイルをドロップしているプログラム名またはサービス名をプログラムで「キャプチャ」できますか?

詳細情報:
これについてさらに調査を行いました。ファイルの名前を TIFF に変更し、開くことができました。
このマシンは、カスタム作成された ASP.NET アプリを介してドキュメント検索ツールとして機能します。このマシンには、E:\ ドライブに約 50,000 の TIFF ドキュメントが含まれています。このマシンでは、フルテキスト インデックスを有効にして SQL Server 2000 も実行しています。フルテキスト インデックス作成は TIFF にまったく影響を与えませんが、これは SQL であるため、そうすべきではありません。ただし、FTS ではインデックス サービスをオンにする必要があります。奇妙なことに、この TIFF は、Web サーバーから提供される最大のもののようです。IIS またはインデックス サービスは、ある種のキャッシュに C:\WINNT\Temp を使用しますか? 考え?

解決策 (多分?) これは、Microsoft Indexing Service のようです。
シャットダウンすると、これらのファイルは WINNT\Temp に作成されません。
見つけた最大のファイルを取得して、WINNT\Temp にコピーするようです。これは奇妙です。100MB 以上の TIFF ファイルを扱っている場合、これによりディスク容量が不足する可能性があります。とてもうるさい。
Indexing Services の "Web" ブランチをシャットダウンすると思います。

4

7 に答える 7

3

問題のファイルにアクセスしているプロセスを通知する FileMon に代わるプロセス モニターが常に存在します。

于 2009-01-09T17:06:58.207 に答える
3

Windows 用のフューザーに似たものが必要な場合は、Process Explorerをチェックしてください。

ファイルを監視することはできませんが、現在実行中のプロセスがその一時ディレクトリにアクセスして、同様の名前の一時ファイルを作成しているかどうかを確認できます。

于 2009-01-09T16:38:23.397 に答える
1

FileMon.exeを使用しましたが、XP でしか動作しません。

于 2009-01-09T16:45:05.800 に答える
1

プログラムで .NET からこれを行う唯一の方法は、Sysinternal のコマンド ライン ハンドル アプリを実行し、ファイル名を渡し、コンソール出力を読み取って、ファイルへのハンドルが開いているソース アプリケーションをキャッチしようとすることです。

そうでなければ、他の人が言及したユーティリティはうまくいくでしょう。

于 2009-01-09T19:35:43.740 に答える
0
\RECYCLER\S-1-5-21-1482476501-1644491937-682003330-1013\service.exe

これはリサイクラー ウイルスです。すべてのディスク パーティションに「Recycler」という隠しフォルダが作成され、Windows セーフ モードからそれらを削除できませんでした。ノートン、AVG カスペルスキーはそれを検出または削除できませんでした。

システムの復元をオフにし、ブート ディスクを使用して PC を再起動し、コマンド プロンプトに移動して、すべてのドライブから「Recycler」フォルダーを削除しました。コマンド rmdir/sc:\recycler を使用

これは、Windows XP で機能した唯一の方法です。

于 2009-04-03T19:58:38.790 に答える
-1

標準の Win32 API (NAPI) を使用するだけです。

詳細を参照してください。Win32 api ng news://comp.os.ms-windows.programmer.win32 のソース コード (C)

于 2009-01-09T17:06:52.213 に答える