简体   繁体   English

变更股份拥有者C#

[英]Change share owner C#

I am writing a program which create some share folders on a 2012 server. 我正在编写一个在2012服务器上创建一些共享文件夹的程序。 I have a service account : 我有一个服务帐户:

NTAccount serviceAccount = new NTAccount("myDomain", "SA_LiPAM");

This initialization work well. 此初始化工作良好。

if (folder.IndexOf('\\') == 0)
{
    Directory.CreateDirectory("\\\\" + serveurName + "\\Test-Projects\\" + pPrjName.Text + folder);// Creation
    fs = Directory.GetAccessControl("\\\\" + serveurName + "\\Test-Projects\\" + pPrjName.Text + folder);
    fs.SetOwner(serviceAccount);// Set owner
    Directory.SetAccessControl("\\\\" + serveurName + "\\Test-Projects\\" + pPrjName.Text + folde, fs);
}

On execution evrything seems ok, but, when I look on Security>advanced of the folder the owner is the localadmin... 在执行时,evrything似乎可以,但是,当我查看“安全性”>“高级”文件夹时,所有者是本地管理员...

Which way to definetly change the owner of this folder ? 哪种方法可以明确更改此文件夹的所有者?

Edit : I was using "File" instead of "Directory" thats why it doesn't work. 编辑:我使用“文件”而不是“目录”,这就是为什么它不起作用。

Please try the following code. 请尝试以下代码。 I have used this link C# - How to use DirectorySecurity.SetOwner() ? 我已使用此链接C#-如何使用DirectorySecurity.SetOwner()? I'm having troubles to create it 我在创建它时遇到了麻烦

if (folder.IndexOf('\\') == 0)
{
    string dir = "\\\\" + serveurName + "\\Test-Projects\\" + pPrjName.Text + folder;
    Directory.CreateDirectory(dir);                    
    DirectoryInfo di = new DirectoryInfo(dir);
    DirectorySecurity ds = di.GetAccessControl();                    
    ds.SetOwner(serviceAccount);
    FileSystemAccessRule permissions = new FileSystemAccessRule(serviceAccount, FileSystemRights.FullControl, AccessControlType.Allow);
    ds.AddAccessRule(permissions);
    di.SetAccessControl(ds);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM