どのプロセスがファイルを移動しているかを判断するにはどうすればよいでしょうか?

どのプロセスがファイルを移動しているかを判断するにはどうすればよいでしょうか?

当社には、ファイルを生成する Web サイトがあり、そのファイルはフォルダーにドロップされ、別のプロセスによって取り出され、別のサーバーにコピーされます (これは私の設計ではありません)。

私たちの実稼働環境では、移動は 1 分ごとに実行されるスケジュールされたタスクによって実行され、バッチ ファイルを呼び出し、バッチ ファイルが PowerShell スクリプトを呼び出し、実際にファイルを移動します (これも私の設計ではありません)。

さて、質問です:

当社の UAT 環境では、Web サイトは同じように設定されています。ファイルはフォルダーにドロップされ、移動されます。しかし、そのボックスにはスケジュールされたタスクがないため、実際にファイルを移動しているプロセスを特定するのに非常に時間がかかっています。

フォルダーと同じマシン上で実行されていない可能性もあります。どのプロセスがファイルを移動しているのか、または少なくともどのマシンがそれを実行しているのかを判断する方法をご存知ですか?

答え1

SysInternals プロセス モニターを使用して、移動されたファイルのパスまたはファイル名でファイル システム エントリをフィルターできます。ローカル プロセスの場合は、これで明らかになります。ローカル プロセスでない場合は、「System」などによって移動されているファイルが表示されます。

残念ながら、移動が行われている瞬間にプロセス モニターを実行する必要があり、プロセス モニターは多少重いため、トラブルシューティング中にサーバー全体に影響が出る可能性があります。

ファイルがリモート プロセスによって移動されている場合は、SysInternals PsFile または同様のユーティリティを使用して、誰がファイルにアクセスしているかを確認できます。

SysInternals ホーム:https://technet.microsoft.com/ja-jp/sysinternals/default.aspx

答え2

問題のファイルとディレクトリ (「フォルダー」) のセキュリティ監査ログを使用してこれを実行できます。

まず、gpedit.msc管理者としてグループ ポリシー ( ) を実行します。左側のペインで、コンピューターの構成 | Windows の設定 | セキュリティの設定 | ローカル ポリシー | 監査ポリシーに移動します。右側のペインで、「オブジェクト アクセスの監査」と「プロセス追跡の監査」の両方を成功時に有効に設定します。(失敗したアクセス試行ではファイルが移動されないため、失敗時の監査はあまり意味がありません。)

または、Windows 7 以降を実行している場合は、次の方法で実行できます。左側のペインで、コンピューターの構成 | Windows の設定 | セキュリティの設定 | 詳細な監査ポリシー | システム監査ポリシーに移動します。「詳細な追跡」で、「プロセス作成の監査」を成功に有効にします。「オブジェクト アクセス」で、「ファイル システムの監査」を成功に有効にします。この方法により、イベント ログに生成される誤ったエントリが多少少なくなります。注:「詳細な監査ポリシー」で「未構成」以外に設定されているものがある場合は、ここで後続の変更も行うことをお勧めします。ここで設定を行うと、前の段落で説明した詳細度の低い「監査ポリシー」の両方で設定を行うと、予期しない結果が生じる可能性があります。

次に: エクスプローラーで、移動元のディレクトリに移動します。ディレクトリを右クリックし、[プロパティ] を選択してから [セキュリティ] タブをクリックし、[詳細設定] をクリックします (ほとんどすべての重要な項目は常に [詳細設定] タブまたはボタンの下にあります...)。[監査] タブをクリックし、[続行]、[追加] の順にクリックします。表示されるダイアログは、[アクセス許可リスト] にエントリを追加する場合のダイアログと似ていますが、この場合、作成するエントリによって、指定された操作が監査対象であることが決定されます。つまり、それらの操作に対して監査ログ エントリが作成されます。

「プリンシパル」の場合は、「Everyone」グループを使用します。「タイプ」にはおそらく「成功」のみが必要です (繰り返しますが、失敗した場合は当然ファイルは移動されません)。「適用先:」で「このフォルダー、サブファイル、およびファイル」を選択します。「高度なアクセス許可」をすべて選択します。

宛先ディレクトリに対して繰り返します。

問題のファイルがソース ディレクトリに既に存在する場合は、そのファイルが存在するディレクトリではなく、そのファイルに対してのみ監査を有効にすることができます (ただし、宛先ディレクトリに対しても監査を有効にします)。

ディレクトリ、またはそのレベルで監査を有効にしている場合はファイルへのアクセスの成功試行はすべて、セキュリティ ログに反映されるようになります。

監査エントリを表示するには、コンピューターの管理、システム ツール | イベント ビューアー、Windows ログに移動し、セキュリティ ログを選択します。ファイル/ディレクトリ アクセスのログ エントリをプロセス作成エントリと関連付けます。

監査エントリがイベント ビューアーに表示されるまでには、通常 1 ~ 2 分かかります。躊躇せずに、何度か更新を実行してください。

注: 「オブジェクトアクセス」(ファイルを含む)のセキュリティ監査ログエントリは、オブジェクトがアクセスされた時間のみを示します。開いたアクセス回数は、実際に操作された回数や具体的な操作回数ではありません。

たとえば、誰かがファイルを読み取りと書き込みアクセスで開くと、監査エントリが生成されます。その後のファイルへの実際の読み取りと書き込みは、ない監査エントリを生成します。監査ログからは、ファイルが実際に書き込まれたかどうかはわかりません。書き込みを許可するようにファイルが開かれたことだけがわかります。これらの詳細を取得するには、Mike Nakis が説明した Process Monitor を使用する必要があります。

関連情報