これをC#から直接監視することはできないと思います。とにかくホストオペレーティングシステムの助けなしではありません。WindowsとNTFSを使用すると、特定のディレクトリを監査し、ホストマシンのセキュリティイベントログにアクセスを記録できます(したがって、共有をホストしているサーバーは、クライアントではなく監査する必要があります)。
KB310399から-WindowsXPでファイル、フォルダ、およびプリンタのユーザーアクセスを監査する方法
ファイル、フォルダー、およびプリンターのユーザーアクセスの監査
監査ログは、イベントビューアのセキュリティログに表示されます。この機能を有効にするには:
- [スタート]、[コントロールパネル]、[パフォーマンスとメンテナンス]、[管理ツール]の順にクリックします。
- [ローカルセキュリティポリシー]をダブルクリックします。
- 左側のペインで、[ローカルポリシー]をダブルクリックして展開します。
- 左側のペインで[ポリシーの監査]をクリックして、右側のペインに個々のポリシー設定を表示します。
- [オブジェクトアクセスの監査]をダブルクリックします。
- 指定したファイル、フォルダー、およびプリンターへのアクセスの成功を監査するには、[成功]チェックボックスをオンにします。
- これらのオブジェクトへのアクセスの失敗を監査するには、[失敗]チェックボックスをオンにします。
- 両方の監査を有効にするには、両方のチェックボックスを選択します。
- [OK]をクリックします。
監査するファイル、フォルダー、およびプリンターの指定
監査を有効にした後、監査するファイル、フォルダー、およびプリンターを指定できます。そうするために:
- Windowsエクスプローラーで、監査するファイルまたはフォルダーを見つけます。プリンタを監査するには、[スタート]をクリックし、[プリンタとFAX]をクリックしてプリンタを見つけます。
- 監査するファイル、フォルダー、またはプリンターを右クリックし、[プロパティ]をクリックします。
- [セキュリティ]タブをクリックし、[詳細]をクリックします。
- [監査]タブをクリックし、[追加]をクリックします。
- [選択するオブジェクト名を入力してください]ボックスに、アクセスを監査するユーザーまたはグループの名前を入力します。[詳細設定]をクリックし、[ユーザーまたはグループの選択]ダイアログボックスで[今すぐ検索]をクリックすると、コンピューターで名前を参照できます。
- [OK]をクリックします。
- 監査するアクションの[成功]または[失敗]チェックボックスをオンにして、[OK]をクリックします。
- [OK]をクリックし、[OK]をクリックします。
このプロセスは、サーバーオペレーティングシステムとWindows Vista / Windows 7でも同様です。この方法を使用すると、C#プログラムでイベントログ(EventLog
クラスを参照)を読み取って、必要なデータを探すことができます。
注:ビスタから始めて、コードからそれらを読み取るには、(必要に応じてUACを昇格させた)管理者である必要があります。