FileSystemAuditRule クラス
アセンブリ: mscorlib (mscorlib.dll 内)


FileSystemAuditRule クラスは、ユーザー アカウント、提供するアクセスの種類 (読み取り、書き込みなど)、および監査を実行するかどうかなどを指定する、基になるアクセス制御エントリ (ACE) の抽象化を表します。このクラスでは、オブジェクトからの監査規則の継承方法およびオブジェクトへの監査規則の反映方法も指定できます。
Microsoft Windows NT 以降でファイル監査とディレクトリ監査を実行するには、使用しているマシンで Audit Access Security ポリシーを有効にする必要があります。既定では、このポリシーは No Auditing に設定されます。
Audit Access Security ポリシーを有効にするには、次の手順を実行します。
-
Administrative Tools フォルダにある Local Security Settings Microsoft 管理コンソール (MMC: Microsoft Management Console) スナップインを開きます。
-
MMC スナップインの右ペインで Audit object access エントリをダブルクリックするか、または右クリックで表示されるプロパティのオプションをクリックして Audit object access Properties dialog を表示します。
ユーザー アカウントの監査規則には、同じユーザー アカウントの対応するアクセス規則が必要です。
FileSystemAuditRule クラスを使用して、新しい監査規則を作成します。FileSecurity クラスまたは DirectorySecurity クラスを使用して、この規則を永続化できます。

FileSystemAuditRule クラスを使用して、ファイルに監査規則を追加し、次にファイルから監査規則を削除するコード例を次に示します。この例を実行するには、有効なユーザー アカウントまたはグループ アカウントを指定する必要があります。
Imports System Imports System.IO Imports System.Security.AccessControl Module FileExample Sub Main() Try Dim FileName As String = "test.xml" Console.WriteLine("Adding access control entry for " + FileName) ' Add the access control entry to the file. AddFileAuditRule(FileName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure) Console.WriteLine("Removing access control entry from " + FileName) ' Remove the access control entry from the file. RemoveFileAuditRule(FileName, "MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure) Console.WriteLine("Done.") Catch e As Exception Console.WriteLine(e) End Try Console.ReadLine() End Sub ' Adds an ACL entry on the specified file for the specified account. Sub AddFileAuditRule(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal AuditRule As AuditFlags) ' Get a FileSecurity object that represents the ' current security settings. Dim fSecurity As FileSecurity = File.GetAccessControl(FileName) ' Add the FileSystemAuditRule to the security settings. fSecurity.AddAuditRule(New FileSystemAuditRule(Account, Rights, AuditRule)) ' Set the new access settings. File.SetAccessControl(FileName, fSecurity) End Sub ' Removes an ACL entry on the specified file for the specified account. Sub RemoveFileAuditRule(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal AuditRule As AuditFlags) ' Get a FileSecurity object that represents the ' current security settings. Dim fSecurity As FileSecurity = File.GetAccessControl(FileName) ' Add the FileSystemAuditRule to the security settings. fSecurity.RemoveAuditRule(New FileSystemAuditRule(Account, Rights, AuditRule)) ' Set the new access settings. File.SetAccessControl(FileName, fSecurity) End Sub End Module
using System; using System.IO; using System.Security.AccessControl; namespace FileSystemExample { class FileExample { public static void Main() { try { string FileName = "test.xml"; Console.WriteLine("Adding access control entry for " + FileName); // Add the access control entry to the file. AddFileAuditRule(FileName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure); Console.WriteLine("Removing access control entry from " + FileName); // Remove the access control entry from the file. RemoveFileAuditRule(FileName, @"MYDOMAIN\MyAccount", FileSystemRights.ReadData, AuditFlags.Failure); Console.WriteLine("Done."); } catch (Exception e) { Console.WriteLine(e); } Console.ReadLine(); } // Adds an ACL entry on the specified file for the specified account. public static void AddFileAuditRule(string FileName, string Account, FileSystemRights Rights, AuditFlags AuditRule) { // Get a FileSecurity object that represents the // current security settings. FileSecurity fSecurity = File.GetAccessControl(FileName); // Add the FileSystemAuditRule to the security settings. fSecurity.AddAuditRule(new FileSystemAuditRule(Account , Rights, AuditRule)); // Set the new access settings. File.SetAccessControl(FileName, fSecurity); } // Removes an ACL entry on the specified file for the specified account. public static void RemoveFileAuditRule(string FileName, string Account, FileSystemRights Rights, AuditFlags AuditRule) { // Get a FileSecurity object that represents the // current security settings. FileSecurity fSecurity = File.GetAccessControl(FileName); // Add the FileSystemAuditRule to the security settings. fSecurity.RemoveAuditRule(new FileSystemAuditRule(Account , Rights, AuditRule)); // Set the new access settings. File.SetAccessControl(FileName, fSecurity); } } }

System.Security.AccessControl.AuthorizationRule
System.Security.AccessControl.AuditRule
System.Security.AccessControl.FileSystemAuditRule


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- FileSystemAuditRule クラスのページへのリンク