【问题标题】:Modifying an existing access control entry修改现有的访问控制条目
【发布时间】:2013-04-12 01:40:06
【问题描述】:

我在 FileSystemRights 解释中犯了一个逻辑错误,导致它始终应用读取权限,无论输入什么其他内容。

我正在制作一个 ps cmdlet,用于输入用户名列表并修改与用户同名的文件夹的权限。根据我的测试,此脚本将为用户创建新的特殊 acl 条目以允许或拒绝条目,但是如果条目已存在,它将不会修改该条目。 IE。如果用户已经具有读取权限并且我尝试授予写入权限,则它不会更改条目。我不确定如何在不完全删除旧权限的情况下修改现有权限。

        DirectoryInfo diDirInfo = new DirectoryInfo(FolderName);
        DirectorySecurity dsDirSecurity = diDirInfo.GetAccessControl();

       //These just interpet the objects for the rights and the allow/deny entries from the command line
        FileSystemRights FSR = genFSR();
        AccessControlType ACT = genAct();

        dsDirSecurity.AddAccessRule(new FileSystemAccessRule(UserName, FSR, ACT));
        diDirInfo.SetAccessControl(dsDirSecurity);

我尝试了 ModifyAccessRule 并得到了相同的行为。

  FileSystemAccessRule fsaRule = new FileSystemAccessRule(UserName, FSR, ACT);      
  dsDirSecurity.ModifyAccessRule(AccessControlModification.Add, fsaRule, out modified);

【问题讨论】:

  • 这个powershell怎么样?
  • 抱歉,如果标记错误。我正在用 c# 制作一个 pscmdlet
  • 阅读它看起来不是同一个问题。该脚本以管理员身份运行,并在第一次运行时应用权限。但是,如果我尝试更改,即首先运行授权读取,然后尝试更改以修改或写入,它不会改变它们的读取。
  • 好的。很抱歉,我的 FileSystemRights 定义中有一个拼写错误,导致无论我输入什么内容都会应用读取权限。如果这引起了任何混乱,我很抱歉。

标签: c# .net windows


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
相关资源
最近更新 更多