C#을 사용하여 공유 폴더의 파일을 수정하는 데 사용되는 사용자 계정을 확인하려고합니다.C#을 사용하여 공유 폴더에서 파일을 수정 한 계정 확인 방법
프로그램이 공유 폴더가있는 컴퓨터에서 실행되면 정상입니다.
C#을 사용하여 공유 폴더의 파일을 수정하는 데 사용되는 사용자 계정을 확인하려고합니다.C#을 사용하여 공유 폴더에서 파일을 수정 한 계정 확인 방법
프로그램이 공유 폴더가있는 컴퓨터에서 실행되면 정상입니다.
FileSystemWatcher
을 포함하는 Windows Service
을 만들어야합니다. 여기에서 당신은 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);
}
파일 시스템 변경 알림 수신 및 이벤트를 제기를 제기 한 파일을 수정하는 사용자를 확인 할 수 있습니다 때 디렉토리, 또는 디렉토리에 파일이 있으면 변경됩니다.
좋은 생각이지만,'FileSystemEventArgs'는 사용자가 누구인지 알려주지 않습니다. Windows OS는 파일을 마지막으로 수정 한 사용자를 추적하지 않습니다. 내가 생각할 수있는 OS도 없다. (리눅스, 맥 ...) – mattypiper
downvote? 정말? 이 대답은 정말로 그렇게 나쁜 것입니까? – hunter
@ 헌터 : ttymatty가 말했듯이,'FileSystemWatcher'는 파일이 변경되었다는 것을 알려주지 만 변경 한 사람은 알려주지 않습니다. 파일이 변경되었음을 알면 사용자를 판별하는 방법을 알 수 없습니다. 그것이 가능하다는 것이 분명하지 않기 때문에 이것은 중요합니다. – Gabe
파일 수정 계정을 결정하기 위해 내가 생각할 수있는 두 가지 옵션이 있습니다
가 감사 : 당신이 (로컬 보안 정책을 통해) 감사를 사용하는 경우, 당신은 감사 할 공유 폴더를 설정할 수는 성공적인 쓰기 액세스. 이렇게하면 사용자가 실제로 쓰기를 수행 한 사용자가 아닌 쓰기 액세스를 위해 파일을 열 었는지 알 수 있습니다. 그런 다음 모든 컴퓨터에서 공유 폴더가있는 컴퓨터의 보안 로그를 모니터링하고 해당 파일에 대한 사용자의 쓰기 권한을 확인할 수 있습니다.
프로세스 모니터링 : 공유 폴더가있는 컴퓨터에서 ProcMon을 실행하고 해당 로그를 파일에 기록 할 수 있습니다. 그런 다음 정기적으로 로그에서 파일에 대한 실제 기록을 확인할 수 있습니다. 이것은 어떤 프로세스가 쓰기를 수행했는지, 그리고 그 프로세스가 실행중인 사용자를 알려주지 만, 그 프로세스가 당시에 가장 한 사용자 일 필요는 없습니다.
조합 : 실제 기록을 수행 한 사용자를 확인하려면 감사 로그와 프로세스 모니터링 로그를 결합하여 쓰기 스레드가 기록시 가장 한 사용자를 확인해야 할 수 있습니다.
- 감사 정책 만 수행 할 수 있다고 생각합니다. 그리고 이후에 누가 액세스 파일에 대한 이벤트를 읽을 수 있습니다. –