授予特定本地 Windows 用户组对文件夹及其子文件夹的读取权限

Give specific local Windows user group read access to a folder and its subfolders

我想以编程方式授予本地用户组 <MachineName>\IIS_IUSRS 访问文件夹及其子文件夹的权限。

我当前的代码如下所示:

DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();

var groupName = Environment.MachineName + @"\IIS_IUSRS";

directorySecurity.AddAccessRule(
    new FileSystemAccessRule(groupName,
    FileSystemRights.Read,
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
    PropagationFlags.None,
    AccessControlType.Allow));

directoryInfo.SetAccessControl(directorySecurity);

但是这是抛出一个System.Security.Principal.IdentityNotMappedException。将 groupName 替换为 new SecurityIdentifier(WellKnownSidType.WorldSid, null); 的 SID 有效。

我是否需要为团体申请 SecurityIdenfier?如果需要,我该怎么做?还是我需要为团体做完全不同的事情?

编辑: BUILTIN\IIS_IUSRS 也没有用,因为我在德语语言环境中使用 Windows。

你不需要使用SID,我曾经写过一个工作程序,它使用了"DOMAIN\GroupName"并且运行良好。而不是:

var groupName = Environment.MachineName + @"\IIS_IUSRS";

尝试:

var groupName = @".\IIS_IUSRS";