|
分類:[Windows 全般]
フォルダのアクセス権限情報を調べるため、
string path = "D:\\Temp";
DirectorySecurity security = System.IO.Directory.GetAccessControl(path, AccessControlSections.All);
foreach (FileSystemAccessRule rule in security.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
{
Console.WriteLine(String.Join(" | ", new string[] { rule.AccessControlType.ToString(),
(rule.IdentityReference as NTAccount).Value,
(rule.FileSystemRights).ToString(),
rule.IsInherited .ToString(),
rule.InheritanceFlags .ToString(),
rule.PropagationFlags .ToString() }));
}
でアクセス権限を取得すると、
以下のように 1 つのアカウントorグループに対して結果が 2 件返ることがあります。
Allow | BUILTIN\Users | ReadAndExecute, Synchronize | True | None | None
Allow | BUILTIN\Users | -1610612736 | True | ContainerInherit, ObjectInherit | InheritOnly
後者は親フォルダからの継承値のようですが、
(rule.IdentityReference as NTAccount).Value に System.Security.AccessControl.FileSystemRights で表現できない値が入っています。
この値はどのように解釈すれば良いでしょうか?
|