在Server 2008 R2中设置预先存在的文件夹的所有者时,有没有办法将其传播到对象下的所有子容器?您可以在属性诊断中执行此操作,但我没有看到此开关。
我正在寻找一种避免通过子容器重复执行此操作的方法。
此代码仅切换顶级目录的所有者。
DirectoryInfo myDirectoryInfo = new DirectoryInfo("PATH HERE");
DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl();
System.Security.Principal.IdentityReference myOwner =
new System.Security.Principal.NTAccount("TARGET OWNER ACCOUNT");
myDirectorySecurity.SetOwner(myOwner);
myDirectoryInfo.SetAccessControl(myDirectorySecurity);
答案 0 :(得分:0)
There is no overload将为您提供此功能。
但是下面的代码会这样做:
DirectoryInfo directoryInfo = new DirectoryInfo(path);
var directories = directoryInfo.EnumerateDirectories("*.*", SearchOption.AllDirectories);
foreach (var directory in directories)
{
// set owner
}
请注意,我使用EnumerateDirectories
代替Directory.GetDirectories
,即使有1000个目录,它也会立即返回。