C# を使用して共有フォルダー内のファイルを変更するために使用されるユーザー アカウントを特定しようとしています。
共有フォルダがあるコンピュータでプログラムが動作すれば問題ありません。
C# を使用して共有フォルダー内のファイルを変更するために使用されるユーザー アカウントを特定しようとしています。
共有フォルダがあるコンピュータでプログラムが動作すれば問題ありません。
どのアカウントがファイルを変更したかを判断するには、次の 2 つのオプションが考えられます。
監査: (ローカル セキュリティ ポリシーを介して) 監査を有効にすると、成功した書き込みアクセスを監査するように共有フォルダーを設定できます。これにより、実際に書き込みを実行したユーザーではなく、書き込みアクセスのためにファイルを開いたユーザーがわかります。次に、任意のコンピューターから、共有フォルダーがあるコンピューターのセキュリティ ログを監視し、それらのファイルへの書き込みアクセス権を持つユーザーを確認できます。
プロセスの監視:共有フォルダーがあるコンピューターでProcMonを実行し、そのログをファイルに書き込むことができます。その後、ログを定期的にチェックして、ファイルへの実際の書き込みを確認できます。これにより、書き込みを行ったプロセスとそのプロセスが実行されていたユーザーがわかりますが、その時点でプロセスがどのユーザーになりすましていたかはわかりません。
組み合わせ: どのユーザーが実際の書き込みを実行したかを知るために、監査ログとプロセス監視ログを組み合わせて、書き込み時に書き込みスレッドがどのユーザーになりすましていたかを確認する必要がある場合があります。
Windows Service
を含むを作成する必要がありますFileSystemWatcher
。OnChanged
ここから、イベントを発生させたファイルを変更したユーザーを特定できる場合があります
watcher.Changed += new FileSystemEventHandler(OnChanged);
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
ファイル システムの変更通知をリッスンし、ディレクトリまたはディレクトリ内のファイルが変更されたときにイベントを発生させます。