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

时间:2018-01-03 10:03:19

标签: c# .net windows file-permissions

我想以编程方式为本地用户组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,如果是,我该怎么做?或者我是否需要为群组完全不同?

修改: "/bin/bash -c 'sshpass -p root1234 ssh -o StrictHostKeyChecking=no root@ipaddrs qconf -ah $hostname'"无效,因为我使用的是带有德语区域设置的Windows。

1 个答案:

答案 0 :(得分:3)

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

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

尝试:

var groupName = @".\IIS_IUSRS";