簡體   English   中英

子容器和對象上的 C# DirectorySecurity SetOwner

[英]C# DirectorySecurity SetOwner on subcontainers and objects

我正在嘗試更改 Windows 文件夾及其中所有內容的所有權。 基本上,如果您在顯示“替換子容器和對象的所有者”的窗口中手動執行此操作,我會嘗試選中該框。 這需要在網絡共享路徑上工作。 我能夠深入 1 個文件夾,但它就停在那里。 這也不包括更改基本文件夾。

 foreach (string directory in Directory.GetDirectories(dirPath))
            {
                var di = new DirectoryInfo(directory);
                IdentityReference user = new NTAccount(Login.authUserName.ToString());
                DirectorySecurity dSecurity = di.GetAccessControl();
                dSecurity.SetOwner(user);
                di.SetAccessControl(dSecurity);
            }

您可以將Directory.GetDirectoriesSearchOption.AllDirectories一起使用以進行遞歸。

但是使用DirectoryInfo.GetDirectories直接獲取DirectoryInfo di對象似乎更容易,它具有相同且更遞歸的選項。

IdentityReference user = new NTAccount(Login.authUserName.ToString());

var root = new DirectoryInfo(dirPath);
foreach (var di in root.GetDirectories("*", SearchOption.TopDirectoryOnly).Prepend(root))
{
    var dSecurity = di.GetAccessControl();
    dSecurity.SetOwner(user);
    di.SetAccessControl(dSecurity);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM